MCPcopy
hub / github.com/OpenPPL/ppq / parse

Method parse

ppq/parser/caffe/caffe_export_utils.py:293–324  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

291 self.layer.eltwise_param.coeff[:] = [1.0] * len(self.op.inputs)
292
293 def parse(self):
294 parameter_layers, extend_bottom = [], []
295 for i, var in enumerate(self.op.parameters):
296 param_layer = ppl_caffe_pb2.LayerParameter(type='Parameter', name=self.op.name + '_param_' + str(i))
297 param_layer.top[:] = [var.name]
298 extend_bottom.append(var.name)
299
300 blob = ppl_caffe_pb2.BlobProto()
301 value = convert_any_to_numpy(var.value)
302
303 shape = var.shape
304 dtype = DataType.to_numpy(var.dtype)
305
306 blob.shape.dim.extend(shape)
307 blob.data.extend(value.astype(dtype).flat)
308 param_layer.blobs.extend([blob])
309
310 shape_param = param_layer.parameter_param
311 if len(shape) == 3:
312 shape_param.batch, shape_param.m, shape_param.n = shape
313 elif len(shape) == 4:
314 shape_param.batch, shape_param.channel, shape_param.height, shape_param.width = shape
315 else:
316 raise AttributeError(f'Cannot convert {self.op.name} to Eltwise op.')
317
318 parameter_layers.append(param_layer)
319
320 super(Add, self).parse()
321 if len(extend_bottom) != 0:
322 self.layer.bottom.extend(extend_bottom)
323 self.layer.eltwise_param.coeff.extend([1.0] * len(extend_bottom))
324 return [*parameter_layers, self.layer]
325
326
327@register_class

Callers

nothing calls this directly

Calls 4

convert_any_to_numpyFunction · 0.90
to_numpyMethod · 0.80
appendMethod · 0.45
parseMethod · 0.45

Tested by

no test coverage detected