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

Method set_attr

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

Source from the content-addressed store, hash-verified

153
154class _Pooling(CaffeOpExporter):
155 def set_attr(self):
156 kernel_h, kernel_w = refine_value(self.op.attributes.get('kernel_shape'))
157 stride_h, stride_w = refine_value(self.op.attributes.get('strides', [1, 1]))
158 ceil_mode = refine_value(self.op.attributes.get('ceil_mode', 0))
159 pads = refine_value(self.op.attributes.get('pads', [0, 0]))
160 if len(pads) == 2:
161 pad_h, pad_w = pads
162 elif len(pads) == 4:
163 begin_pad = pads[:2]
164 end_pad = pads[2:]
165 if begin_pad == end_pad:
166 pad_h, pad_w = begin_pad
167 else:
168 logger.error('Caffe only support begin_pad == end_pad in layer')
169 else:
170 logger.error(f'Unsupported pads attributes with the length of {len(pads)} in Caffe')
171
172 self.layer.pooling_param.kernel_h = kernel_h
173 self.layer.pooling_param.kernel_w = kernel_w
174 self.layer.pooling_param.pad_h = pad_h
175 self.layer.pooling_param.pad_w = pad_w
176 self.layer.pooling_param.stride_h = stride_h
177 self.layer.pooling_param.stride_w = stride_w
178 if ceil_mode == 0:
179 # ceil_mode is True by CaffeOpExporter in caffe
180 self.layer.pooling_param.ceil_mode = False
181
182
183@register_class

Callers

nothing calls this directly

Calls 2

refine_valueFunction · 0.85
errorMethod · 0.80

Tested by

no test coverage detected