40 const uint32_t ifm_W,
const uint32_t ofm_H,
const uint32_t ofm_W,
41 const uint32_t vertical_stride,
const uint32_t horizontal_stride,
42 const uint32_t ker_H,
const uint32_t ker_W)
49 if (padding_name ==
"VALID")
51 top = bottom = left = right = 0;
53 else if (padding_name ==
"SAME")
55 const int32_t vertical_needed_input = (ofm_H - 1) * vertical_stride + ker_H;
56 const int32_t vertical_total_padding = std::max(0, vertical_needed_input - (int32_t)ifm_H);
58 const int32_t horizontal_needed_input = (ofm_W - 1) * horizontal_stride + ker_W;
59 const int32_t horizontal_total_padding = std::max(0, horizontal_needed_input - (int32_t)ifm_W);
61 top = vertical_total_padding / 2;
62 bottom = (vertical_total_padding + 1) / 2;
63 left = horizontal_total_padding / 2;
64 right = (horizontal_total_padding + 1) / 2;