Conv2D 在 Pytorch 中执行的操作

Operations made by Conv2D in Pytorch

提问人:Dazckel 提问时间:9/21/2022 更新时间:9/21/2022 访问量:74

问:

根据 Conv2D(c_in,c_out) 的 Pytorch 文档(其他参数与此问题无关):

  • c_in是输入图像的通道数。
  • c_out是卷积层产生的通道数

我不明白的是有多少个内核/过滤器。在许多帖子中,我看到 c_out 确实是内核的数量,这意味着如果我有 3 个通道的输入图像,并且我设置了 c_out=10,输出将是 30 个通道,但实际上我得到了 10 个通道。

PyTorch 计算机视觉 卷积神经网络

评论


答:

0赞 Shai 9/21/2022 #1

卷积运算是通过将内核“滑动”到输入上,并计算内核与相应输入之间的相关性来执行的。此计算为每个“窗口”生成一个标量数。
因此,如果输入的形状为 xx,则单个内核具有 xx 参数。将此内核滑到输入上将产生形状为 xx 的输出(假设填充正确)。如您所见,输入通道的数量 不会影响输出形状,而是影响内核的大小。因此,如果要有输出通道,则需要每个过滤器都具有形状为 xx。
c_inhwc_ink_hk_w1hwc_inc_outc_outc_inhw