示例#1
0
def test_average_pool_invalid(
        device, x_shape, ksize, stride, pad, pad_mode, float_dtype):
    with pytest.raises(chainerx.DimensionError):
        chainerx.average_pool(
            **_create_average_pool_args(
                chainerx, device, x_shape, ksize, stride, pad, pad_mode,
                float_dtype))
示例#2
0
def test_average_pool_invalid(
        device, x_shape, ksize, stride, pad, pad_mode, float_dtype):
    x = numpy.random.uniform(-1, 1, x_shape).astype(float_dtype)
    x = chainerx.array(x)
    pad_mode_kwargs = _get_pad_mode_kwargs(pad_mode, True)
    with pytest.raises(chainerx.DimensionError):
        chainerx.average_pool(
            x, ksize=ksize, stride=stride, pad=pad, **pad_mode_kwargs)
示例#3
0
def test_average_pool_invalid(device, x_shape, ksize, stride, pad, pad_mode,
                              float_dtype):
    x = numpy.random.uniform(-1, 1, x_shape).astype(float_dtype)
    x = chainerx.array(x)
    pad_mode_kwargs = _get_pad_mode_kwargs(pad_mode, True)
    with pytest.raises(chainerx.DimensionError):
        chainerx.average_pool(x,
                              ksize=ksize,
                              stride=stride,
                              pad=pad,
                              **pad_mode_kwargs)
示例#4
0
 def forward_chainerx(self, inputs):
     x, = inputs
     pad_mode_kwargs = _get_pad_mode_kwargs(self.pad_mode, True)
     y = chainerx.average_pool(
         x, ksize=self.ksize, stride=self.stride, pad=self.pad,
         **pad_mode_kwargs)
     return y,
示例#5
0
 def forward_chainerx(self, inputs):
     x, = inputs
     pad_mode_kwargs = _get_pad_mode_kwargs(self.pad_mode, True)
     y = chainerx.average_pool(x,
                               ksize=self.ksize,
                               stride=self.stride,
                               pad=self.pad,
                               **pad_mode_kwargs)
     return y,
示例#6
0
    def __call__(self, x):
        h = self.bn1(self.conv1(x))
        h = chx.max_pool(chx.maximum(0, h), 3, stride=2)
        h = self.res2(h)
        h = self.res3(h)
        h = self.res4(h)
        h = self.res5(h)
        h = chx.average_pool(h, 7, stride=1)
        h = self.fc(h)

        return h
示例#7
0
    def __call__(self, x):
        h = self.bn1(self.conv1(x))
        h = chx.max_pool(chx.maximum(0, h), 3, stride=2)
        h = self.res2(h)
        h = self.res3(h)
        h = self.res4(h)
        h = self.res5(h)
        h = chx.average_pool(h, 7, stride=1)
        h = self.fc(h)

        return h
示例#8
0
def test_average_pool(
        device, x_shape, ksize, stride, pad, pad_mode, float_dtype):
    if device.backend.name == 'cuda' and len(ksize) != 2 and len(ksize) != 3:
        # cuDNN supports only 2 and 3 spatial dimensions.
        return chainerx.testing.ignore()

    def create_args(xp):
        return _create_average_pool_args(
            xp, device, x_shape, ksize, stride, pad, pad_mode, float_dtype)

    chainerx.testing.assert_allclose(
        chainerx.average_pool(**create_args(chainerx)),
        chainer.functions.average_pooling_nd(**create_args(numpy)).data)
示例#9
0
def test_average_pool(device, x_shape, ksize, stride, pad, pad_mode,
                      float_dtype):
    if device.backend.name == 'cuda' and len(ksize) != 2 and len(ksize) != 3:
        # cuDNN supports only 2 and 3 spatial dimensions.
        return chainerx.testing.ignore()

    def create_args(xp):
        return _create_average_pool_args(xp, device, x_shape, ksize, stride,
                                         pad, pad_mode, float_dtype)

    chainerx.testing.assert_allclose(
        chainerx.average_pool(**create_args(chainerx)),
        chainer.functions.average_pooling_nd(**create_args(numpy)).data)
示例#10
0
    def forward_chainerx(self, inputs):
        x, = inputs
        if x.device.backend.name == 'cuda' and self.ndim not in (2, 3):
            return chainer.Fallback

        if self.pad_value == 0:
            pad_mode = 'zero'
        elif self.pad_value is None:
            pad_mode = 'ignore'
        else:
            assert False

        return chainerx.average_pool(
            x, self.ksize, self.stride, self.pad, pad_mode),
示例#11
0
    def forward_chainerx(self, inputs):
        x, = inputs
        if x.device.backend.name == 'cuda' and self.ndim not in (2, 3):
            return chainer.Fallback

        if self.pad_value == 0:
            pad_mode = 'zero'
        elif self.pad_value is None:
            pad_mode = 'ignore'
        else:
            assert False

        return chainerx.average_pool(x, self.ksize, self.stride, self.pad,
                                     pad_mode),
示例#12
0
def test_average_pool_invalid(device, x_shape, ksize, stride, pad, pad_mode,
                              float_dtype):
    with pytest.raises(chainerx.DimensionError):
        chainerx.average_pool(
            **_create_average_pool_args(chainerx, device, x_shape, ksize,
                                        stride, pad, pad_mode, float_dtype))