了解PyTorch CNN频道

问题描述 投票:2回答:1

我对CNN和频道如何运作有点困惑。具体来说,为什么这两个实现不相等?输出通道的数量不仅仅是应用了多少个滤波器吗?

    self.conv1 = nn.Conv2d(1, 10, kernel_size=(3, self.embeds_size))
    self.conv2 = nn.ModuleList([nn.Conv2d(1, 1, kernel_size=(3, self.embeds_size)) for f in range(10)])
    ...


    conv1s = self.conv1(x)
    conv2s = [conv(x) for conv in self.conv2]
    conv2s = torch.stack(conv2s, 1).squeeze(2)
    print(torch.equal(conv1s, conv2s))
python machine-learning neural-network deep-learning pytorch
1个回答
3
投票

检查不同模块的状态。除非你做的事情没有告诉我们,否则PyTorch会随机初始化权重。具体来说,试试这个:

print(self.conv1.state_dict()["weight"][0])
print(self.conv2[0].state_dict()["weight"][0])

他们将是不同的。

© www.soinside.com 2019 - 2024. All rights reserved.