编程语言
首页 > 编程语言> > python-了解PyTorch CNN频道

python-了解PyTorch CNN频道

作者:互联网

对于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))

解决方法:

检查不同模块的状态指示.除非您正在做一些您没有告诉我们的事,否则PyTorch会随机初始化权重.具体来说,请尝试以下操作:

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

他们会有所不同.

标签:pytorch,machine-learning,neural-network,deep-learning,python
来源: https://codeday.me/bug/20191025/1927491.html