{
assert(spatial_axis < num_spatial_axes());
- // TODO Support pad_h/pad_w parameters
- assert(!_param.has_pad_h());
- assert(!_param.has_pad_w());
-
if (_param.pad().size() == 0)
{
+ if (_param.has_pad_h() || _param.has_pad_w())
+ {
+ assert(num_spatial_axes() == 2);
+ return (spatial_axis == 0) ? _param.pad_h() : _param.pad_w();
+ }
// NOTE default pad is 0
return 0;
}
+ // NOTE pad and pad_h/pad_w cannot be specified at the same time
+ // Please refer to Caffe for details. You may find the relevant implementation
+ // from BaseConvolutionLayer<Dtype>::LayerSetUp in base_conv_layer.cpp.
+ assert(!_param.has_pad_h());
+ assert(!_param.has_pad_w());
+
if (_param.pad().size() == 1)
{
return _param.pad(0);