mmcv/tests/test_cnn/test_conv2d_adaptive_padding.py
Xiaojie Li 49e32c2688
Implementation of 2D convolution in tensorflow with padding as "same" (#529)
* update impad

* fix docstring

* add shape for impad

* fix unit test

* remove old version & fix doc

* fix linting

* fix doc

* add linear decay learning rate scheduler

* fix impad

* fix setup.cfg

* fix linting

* add yapf

* add swish

* fix lr_updater

* fix lr_updater.py

* update swish

* add swish

* fix inplace

* fix typo

* update

* add same padding

* fix docstring

* add unittest

* fix register

* change name

Co-authored-by: lixiaojie <lixiaojie@sensetime.com>
2020-09-09 23:57:48 +08:00

28 lines
900 B
Python

import torch
from mmcv.cnn.bricks import Conv2dAdaptivePadding
def test_conv2d_samepadding():
# test Conv2dAdaptivePadding with stride=1
inputs = torch.rand((1, 3, 28, 28))
conv = Conv2dAdaptivePadding(3, 3, kernel_size=3, stride=1)
output = conv(inputs)
assert output.shape == inputs.shape
inputs = torch.rand((1, 3, 13, 13))
conv = Conv2dAdaptivePadding(3, 3, kernel_size=3, stride=1)
output = conv(inputs)
assert output.shape == inputs.shape
# test Conv2dAdaptivePadding with stride=2
inputs = torch.rand((1, 3, 28, 28))
conv = Conv2dAdaptivePadding(3, 3, kernel_size=3, stride=2)
output = conv(inputs)
assert output.shape == torch.Size([1, 3, 14, 14])
inputs = torch.rand((1, 3, 13, 13))
conv = Conv2dAdaptivePadding(3, 3, kernel_size=3, stride=2)
output = conv(inputs)
assert output.shape == torch.Size([1, 3, 7, 7])