在MusicNet的这个模型中,他们将神经网络的初始权重设置为全零。
self.linear = torch.nn.Linear(regions*k, m, bias=False).cuda()
torch.nn.init.constant(self.linear.weight, 0)
但是,人们通常会随机化初始权重,如以下线程中所述。
基本上,这意味着我们不应该将初始权重设置为全零。
但是,当我通过注释一行尝试在 MusicNet 模型中使用随机权重时
self.linear = torch.nn.Linear(regions*k, m, bias=False).cuda()
# torch.nn.init.constant(self.linear.weight, 0
该模型不再学习,准确率非常低(0.02 与原始模型中的 0.6 相比)
我发现了什么
如果初始权重是随机的,则网络似乎无法学习任何有意义的权重。但是当我们将初始权重设置为零时,网络可以学到一些有意义的东西。
