关于pytorch中nn.conv中的参数
之前一直是用的tensor flow +keras,最近刚转为pytorch,发现torch中的卷积参数和tensorflow中的有点不同,特来记录下,以下是官网中的解释:

关于pytorch中nn.conv中的参数
和tensorflow不同,in_channels和out_channels分别是输入和输出的通道数,stride步长以及padding填充和keras是一样的,groups 这个参数很有意思,主要是做了类似分组卷积的工作,借助另一篇博客的解释:
如果你的input_size = [1,6,1,1], 如果你令
conv = nn.Conv2d(in_channels=6, out_channels=6, kernel_size=1, stride=1, padding=0, groups=?,
bias=False)
当groups=1时,即为默认的卷积层,则conv.weight.data.size为[6,6,1,1],实际上共有6 * 6=36个参数,若group=3时,则每组计算只有out_channel/groups = 2个channel参与,故每一组卷积层的参数大小为[6,2,1,1],每一组共有6 * 2=12个参数,相当于每一组被重复用了3次(即group)次,最后再contact.
另外,在实际实验中,同样的网络结构下,这种分组的卷积效果是好于未分组的卷积的效果的。

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-09-29
  • 2021-05-15
  • 2022-12-23
  • 2021-11-09
  • 2021-09-07
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-02-10
  • 2021-12-05
  • 2021-05-21
  • 2021-12-29
  • 2023-02-02
  • 2021-04-18
相关资源
相似解决方案