Example #1
0
    def __init__(self, kernel_size, stride, pad_mode):
        name = self.__class__.__name__
        super(_PoolNd, self).__init__()
        validator.check_type('kernel_size', kernel_size, [int, tuple])
        validator.check_type('stride', stride, [int, tuple])
        self.pad_mode = validator.check_string('pad_mode', pad_mode.upper(),
                                               ['VALID', 'SAME'])

        if isinstance(kernel_size, int):
            validator.check_integer("kernel_size", kernel_size, 1, Rel.GE)
        else:
            if (len(kernel_size) != 2 or (not isinstance(kernel_size[0], int))
                    or (not isinstance(kernel_size[1], int))
                    or kernel_size[0] <= 0 or kernel_size[1] <= 0):
                raise ValueError(
                    f'The kernel_size passed to cell {name} should be an positive int number or'
                    f'a tuple of two positive int numbers, but got {kernel_size}'
                )
        self.kernel_size = kernel_size

        if isinstance(stride, int):
            validator.check_integer("stride", stride, 1, Rel.GE)
        else:
            if (len(stride) != 2 or (not isinstance(stride[0], int))
                    or (not isinstance(stride[1], int)) or stride[0] <= 0
                    or stride[1] <= 0):
                raise ValueError(
                    f'The stride passed to cell {name} should be an positive int number or'
                    f'a tuple of two positive int numbers, but got {stride}')
        self.stride = stride
Example #2
0
    def __init__(self, kernel_size=1, stride=1, pad_mode="VALID", padding=0):
        max_pool = P.MaxPool(ksize=kernel_size,
                             strides=stride,
                             padding=pad_mode)
        self.is_autodiff_backend = False
        if self.is_autodiff_backend:

            # At present, pad mode of max pool is not unified, so it is a temporarily avoided
            pad_mode = validator.check_string('pad_mode', pad_mode.lower(),
                                              ['valid', 'same'])

            max_pool = P.MaxPoolWithArgmax(window=kernel_size,
                                           stride=stride,
                                           pad_mode=pad_mode,
                                           pad=padding)
        super(MaxPool2d, self).__init__(kernel_size, stride, pad_mode, padding,
                                        max_pool)