如何解决重置pytorch中的神经网络参数
我有一个具有以下结构的神经网络:
var calendar = new FullCalendar.Calendar(calendarEl,{
timeZone: 'UTC',headerToolbar: {
left: 'prev,next today',center: 'title',right: 'dayGridMonth,timeGridWeek,timeGridDay'
},editable: true,dayMaxEvents: true,// when too many events in a day,show the popover
events: 'https://fullcalendar.io/demo-events.json?overload-day',eventMouseEnter: function(info ){ // when mouse over
console.log('eventMouseEnter')
$(info.el).trigger('mousedown').trigger('mousemove') // it not worked
}
我需要通过重置神经网络的参数将模型恢复为未学习状态。我可以使用以下方法对class myNetwork(nn.Module):
def __init__(self):
super(myNetwork,self).__init__()
self.bigru = nn.GRU(input_size=2,hidden_size=100,batch_first=True,bidirectional=True)
self.fc1 = nn.Linear(200,32)
torch.nn.init.xavier_uniform_(self.fc1.weight)
self.fc2 = nn.Linear(32,2)
torch.nn.init.xavier_uniform_(self.fc2.weight)
层执行此操作:
nn.Linear
但是,要重置def reset_weights(self):
torch.nn.init.xavier_uniform_(self.fc1.weight)
torch.nn.init.xavier_uniform_(self.fc2.weight)
图层的权重,我找不到任何这样的代码段。
我的问题是,如何重置nn.GRU
层?任何其他重置网络的方法也都可以。任何帮助表示赞赏。
解决方法
您可以在图层上使用reset_parameters
方法。如here
for layer in model.children():
if hasattr(layer,'reset_parameters'):
layer.reset_parameters()
或者另一种方法是先保存模型,然后重新加载模块状态。使用torch.save
和torch.load
see docs for more或 Saving and Loading Models
pytorch 新手,我想知道这是否可以成为解决方案 :)
假设模型来自 torch.nn.module,
将其重置为零:
dic = Model.state_dict()
for k in dic:
dic[k] *= 0
Model.load_state_dict(dic)
del(dic)
随机重置
dic = Model.state_dict()
for k in dic:
dic[k] = torch.randn(dic[k].size())
Model.load_state_dict(dic)
del(dic)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。