ONE - On-device Neural Engine
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
RawPaddingBuilder Class Reference

Construct a raw padding from each Layer parameter. More...

#include <PaddingUtils.h>

Public Member Functions

RawPadding with (const ::caffe::ConvolutionParameter &) const
 
RawPadding with (const ::caffe::PoolingParameter &) const
 

Friends

RawPaddingBuilder build_raw_padding (void)
 

Detailed Description

Construct a raw padding from each Layer parameter.

Note
This class is an auxiliary class for build_raw_padding function below

Definition at line 29 of file PaddingUtils.h.

Member Function Documentation

◆ with() [1/2]

RawPadding RawPaddingBuilder::with ( const ::caffe::ConvolutionParameter &  param) const

Definition at line 24 of file PaddingUtils.cpp.

25{
26 RawPadding res;
27
28 if (param.has_pad_h() || param.has_pad_w())
29 {
30 assert(param.pad().size() == 0);
31 assert(param.has_pad_h() && param.has_pad_w());
32
33 res.resize(2);
34 res.value(0) = param.pad_h();
35 res.value(1) = param.pad_w();
36 }
37 else
38 {
39 // NOTE pad and pad_h/pad_w cannot be specified at the same time
40 //
41 // Reference: BaseConvolutionLayer<Dtype>::LayerSetUp in base_conv_layer.cpp
42 assert(!param.has_pad_h() && !param.has_pad_w());
43
44 uint32_t rank = param.pad().size();
45
46 res.resize(rank);
47 for (uint32_t axis = 0; axis < rank; ++axis)
48 {
49 res.value(axis) = param.pad(axis);
50 }
51 }
52
53 return res;
54}
uint32_t & value(uint32_t n)
Definition Padding.h:39
void resize(uint32_t len)
Definition Padding.h:43
A RawPadding denotes padding values stored in Caffe model.
Definition Padding.h:55

Referenced by PoolingSpec::horizontal_pad(), ConvolutionSpec::pad(), and PoolingSpec::vertical_pad().

◆ with() [2/2]

RawPadding RawPaddingBuilder::with ( const ::caffe::PoolingParameter &  param) const

Definition at line 56 of file PaddingUtils.cpp.

57{
58 RawPadding res;
59
60 if (param.has_pad_h() || param.has_pad_w())
61 {
62 assert(!param.has_pad());
63 assert(param.has_pad_h() && param.has_pad_w());
64
65 res.resize(2);
66 res.value(0) = param.pad_h();
67 res.value(1) = param.pad_w();
68 }
69 else
70 {
71 // NOTE pad and pad_h/pad_w cannot be specified at the same time
72 //
73 // Reference: PoolingLayer<Dtype>::LayerSetUp in pooling_layer.cpp
74 assert(!param.has_pad_h() && !param.has_pad_w());
75
76 if (param.has_pad())
77 {
78 res.resize(1);
79 res.value(0) = param.pad();
80 }
81 }
82
83 return res;
84}

Friends And Related Symbol Documentation

◆ build_raw_padding

RawPaddingBuilder build_raw_padding ( void  )
friend

RawPaddingBuilder is introduced to support the following code pattern:

auto raw_padding = build_raw_padding().with(conv_param); ...

Definition at line 86 of file PaddingUtils.cpp.

86{ return RawPaddingBuilder{}; }
Construct a raw padding from each Layer parameter.

The documentation for this class was generated from the following files: