提问人:Dazckel 提问时间:9/21/2022 更新时间:9/21/2022 访问量:74
Conv2D 在 Pytorch 中执行的操作
Operations made by Conv2D in Pytorch
问:
根据 Conv2D(c_in,c_out) 的 Pytorch 文档(其他参数与此问题无关):
- c_in是输入图像的通道数。
- c_out是卷积层产生的通道数
我不明白的是有多少个内核/过滤器。在许多帖子中,我看到 c_out 确实是内核的数量,这意味着如果我有 3 个通道的输入图像,并且我设置了 c_out=10,输出将是 30 个通道,但实际上我得到了 10 个通道。
答:
0赞
Shai
9/21/2022
#1
卷积运算是通过将内核“滑动”到输入上,并计算内核与相应输入之间的相关性来执行的。此计算为每个“窗口”生成一个标量数。
因此,如果输入的形状为 xx,则单个内核具有 xx 参数。将此内核滑到输入上将产生形状为 xx 的输出(假设填充正确)。如您所见,输入通道的数量 不会影响输出形状,而是影响内核的大小。因此,如果要有输出通道,则需要每个过滤器都具有形状为 xx。c_in
h
w
c_in
k_h
k_w
1
h
w
c_in
c_out
c_out
c_in
h
w
评论