def get_concrete_padding(auto_padding, custom_padding, upscaled_shape, filter_shape, stride, dilation): if auto_padding in [None, '', 'NOTSET']: if custom_padding is None: return [(0, 0)] * len(upscaled_shape) return to_nnef_padding(custom_padding) else: assert custom_padding is None if auto_padding == 'SAME_UPPER': return infer.same_padding(upscaled_input=upscaled_shape, filter=filter_shape, stride=stride, dilation=dilation, left_bigger=False) elif auto_padding == 'SAME_LOWER': return infer.same_padding(upscaled_input=upscaled_shape, filter=filter_shape, stride=stride, dilation=dilation, left_bigger=True) elif auto_padding == 'VALID': return infer.valid_padding(rank=len(upscaled_shape)) else: assert False, "Unexpected padding type: {}".format(auto_padding)
def test_valid_padding(self): self.assertEqual([], infer.valid_padding(0)) self.assertEqual([(0, 0)], infer.valid_padding(1)) self.assertEqual([(0, 0), (0, 0), (0, 0), (0, 0)], infer.valid_padding(4))