【发布时间】:2018-09-13 09:39:16
【问题描述】:
我在 PyTorch 中编写了两种类型的线性分类器:
torch.manual_seed(0)
fc = []
for i in range(n):
fc.append(nn.Linear(feature_size, 1))
另一个:
torch.manual_seed(0)
fc = nn.Linear(feature_size, n)
并且在a中使用这两种类型的fc得到了不同的结果 多标签分类模型。
实际上,那些 fc 的初始化方式不同,导致的结果也不同。哪一个是正确的,如果我想要使用两种类型的 fc 得到相似的结果,我应该怎么做。
附加信息:
我找出导致不良结果的原因:
第一种FC在训练中没有更新!
但是不知道为什么没有更新,我的代码如下:
x = self.features(input)
res = []
for i in range(self.num_classes):
res.append(self.fc[i](x.cpu()))
res = torch.cat(res, 1)
return res.cuda()
对此有什么想法吗?
【问题讨论】:
标签: python machine-learning neural-network deep-learning pytorch