我有一个具有以下结构的神经网络:
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
层的权重,我找不到任何这样的片段。
我的问题是如何重置 nn.GRU
层?任何其他重置网络的方式也可以。任何帮助表示赞赏。
原文由 learner 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以在图层上使用
reset_parameters
方法。正如 这里 给出的或者另一种方法是先保存模型,然后重新加载模块状态。使用
torch.save
和torch.load
查看文档了解更多 或 保存和加载模型