【发布时间】:2021-09-09 12:58:27
【问题描述】:
我试图了解 nn.conv2d 在内部做什么。
假设我们将 Conv2d 应用于 32*32 RGB 图像。
torch.nn.Conv2d(3, 49, 4, bias=True)
所以:
- 当我们初始化 conv 层时,它会有多少权重和形状,请告诉这是否存在偏差?
- 在应用它之前,图像的形状为 3 * 32 * 32,应用后为 49 * 29 * 29,那么两者之间会发生什么?
我将“滑动”操作(不知道真名)定义为首先将内核元素乘以图像形状的框的第一个元素,直到内核的最后一个元素对应,从而计算出 1of29 * 1of29。 并在水平和垂直方向上“全部滑动”,直到计算出所有 29 * 29。
所以我了解内核的行为方式,但我不了解torch.nn.Conv2d(3, 49, 4, bias=True) 将创建多少个内核以及它们中的哪些将应用于 R、G、B 通道。
【问题讨论】:
-
见this
-
@Shai thanx 所以我认为我的第一个问题的答案是 49*4*4 权重 + 49 个偏差。
-
不,正如 Ivan 所说,49*(4*4*3 + 1) 将是权重。
-
@FarhangAmaji 确实 49*4*4*3 权重 + 49 个偏差。
-
@Ivan 我还有另一个问题,我在“交叉验证”中问过,但他们关闭了这个问题,这对我来说是不可接受的stats.stackexchange.com/questions/543809/…,因为提供的所有替代链接都是用于交叉验证而不是数据分裂。
标签: pytorch conv-neural-network convolution