def test_random_shapes_and_kernel_sizes(self): shapes = [(6, 5), (5, 6), (6, 6), (11, 1), (1, 11), (0, 1), (1, 0), (0, 0)] kernel_sizes = [1, 2, 3, 5] nb_channels_lst = [None, 1, 3, 4] # 8*(4*4)*4 = 512 subtests gen = itertools.product(shapes, nb_channels_lst) for shape_nochan, nb_channels in gen: shape = shape_nochan if nb_channels is not None: shape = tuple(list(shape) + [nb_channels]) image = np.zeros(shape, dtype=np.uint8) for ksize_h, ksize_w in itertools.product(kernel_sizes, kernel_sizes): with self.subTest(shape=shape, ksize_h=ksize_h, ksize_w=ksize_w): image_pooled = ia.avg_pool(image, (ksize_h, ksize_w)) shape_expected = image_pooled.shape shape_observed = iapooling._compute_shape_after_pooling( shape, ksize_h, ksize_w) assert shape_observed == shape_expected
def _pool_image(self, image, kernel_size_h, kernel_size_w): return ia.avg_pool(image, (kernel_size_h, kernel_size_w))
def _pool_image(self, image, kernel_size_h, kernel_size_w): # TODO extend avg_pool to support pad_mode and set it here # to reflection padding return ia.avg_pool(image, (max(kernel_size_h, 1), max(kernel_size_w, 1)), cval=128)
def _pool_image(self, image, kernel_size_h, kernel_size_w): return ia.avg_pool(image, (max(kernel_size_h, 1), max(kernel_size_w, 1)))