(self)
| 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 |
nothing calls this directly
no test coverage detected