问题描述
我想测试在训练期间随机重置某些神经元的影响,在基于 Pytorch 的模型中,具有许多这样的线性层:
class Net(nn.Module):
def __init__(self):
super(Net,self).__init__()
self.linear1 = nn.Linear(D,M)
self.linear2 = nn.Linear(M,M)
self.linear3 = nn.Linear(M,M)
self.linear4 = nn.Linear(M,K)
def forward(self,x):
x = F.relu(self.linear1(x))
x = F.relu(self.linear2(x))
x = F.relu(self.linear3(x))
x = self.linear4(x)
x = F.log_softmax(x,dim=1)
return x
理想情况下,我想实现一个函数/代码片段,在每个时期开始时重置每层中 1 个或多个随机神经元的权重。
我尝试通过调用参数或 state_dict 来实现此功能,但到目前为止,我仅在尝试此操作时获得许可和异常错误。我也不确定这应该在模块本身还是在培训部分中实现。
非常欢迎任何建议!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)