FighterLYL / GraphNeuralNetwork

《深入浅出图神经网络:GNN原理解析》配套代码
1.73k stars 460 forks source link

关于图3-12 b #11

Closed hunauchenym closed 4 years ago

hunauchenym commented 4 years ago

当步长s=2时,卷积之后的输出是否应该为3x3?

FighterLYL commented 4 years ago

我确认了下应该为 5 x 5,你可以参考pytorch的文档 ConvTranspose2d, 一个简单的测试代码:

import torch
import torch.nn as nn
conv_transpose = nn.ConvTranspose2d(1, 1, 3, stride=2, dilation=1)
x = torch.rand(1, 1, 2, 2)
y = conv_transpose(x)
print(y.size())   # [1, 1, 5, 5]
hunauchenym commented 4 years ago

是不是通过填充元素后,步长变为1了?

FighterLYL commented 4 years ago

首先转置卷积中的stride的概念与卷积中有所不同,另一方面转置卷积就是要增加输出的大小,因此卷积的步长应该都是1,否则没法保证输出的大小

hunauchenym commented 4 years ago

好像padding的概念也不一样,真正的padding大小为k-1-p?h'=k+2(k-1-p)?

FighterLYL commented 4 years ago

是的,真正padding的大小为k-1-p,具体的计算公式参考上面的pytorch文档。