【发布时间】:2020-08-15 08:45:52
【问题描述】:
我在 Pytorch 中创建了一个全连接网络,其输入层形状为 (1,784),第一个隐藏层形状为 (1,256)。
简而言之:nn.Linear(in_features=784, out_features=256, bias=True)
方法1:model.fc1.weight.data.shape给我torch.Size([128, 256]),而
方法 2:list(model.parameters())[0].shape 给我torch.Size([256, 784])
事实上,在大小为 784 的输入层和大小为 256 的隐藏层之间,我期待一个形状为 (784,256) 的矩阵。
所以,在第一种情况下,我看到了下一个隐藏层 (128) 的形状,这对于输入和第一个隐藏层之间的权重没有意义,在第二种情况下,看起来 Pytorch 进行了变换的权重矩阵。
我不太了解 Pytorch 如何塑造不同的权重矩阵,以及如何在训练后访问各个权重。我应该使用方法1还是2?当我显示相应的张量时,显示看起来完全相似,但形状不同。
【问题讨论】:
-
可以为模型类添加代码吗?
标签: deep-learning neural-network pytorch tensor