Pytorch: почему порядки весов в ConvTranspose2d и Conv2d различны? - PullRequest
0 голосов
/ 15 ноября 2018

Код Pytorch:

up = nn.ConvTranspose2d(3, 128, 2, stride=2)
conv = nn.Conv2d(3, 128, 2)

inputs = Variable(torch.rand(1, 3, 64, 64))
print('up conv output size:', up(inputs).size())

inputs = Variable(torch.rand(1, 3, 64, 64))
print('conv output size:', conv(inputs).size())

print('up conv weight size:', up.weight.data.shape)
print('conv weight size:', conv.weight.data.shape)

Результат:

up conv output size: torch.Size([1, 128, 128, 128])
conv output size: torch.Size([1, 128, 63, 63])
up conv weight size: torch.Size([3, 128, 2, 2])
conv weight size: torch.Size([128, 3, 2, 2])

Почему заказы отличаются между ConvTranspose2d (3,128) и Conv2d (128, 3)?

Должен ли он вести себя так?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...