问题描述
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)