PyTorch:从另一个模型加载权重而不保存



假设我在PyTorch中有两个模型,我如何通过模型2的权重加载模型1的权重而不保存权重?

:

model1.weights = model2.weights

在TensorFlow中我可以这样做:

variables1 = model1.trainable_variables
variables2 = model2.trainable_variables
for v1, v2 in zip(variables1, variables2):
v1.assign(v2.numpy())

假设您有两个相同模型的实例(必须是子类nn.Module),那么您可以使用nn.Module.state_dict()nn.Module.load_state_dict()。你可以在这里找到对州字典的简要介绍。

model1.load_state_dict(model2.state_dict())

有两种方法。

# Use load state dict
model_source = Model()
model_dest = Model()
model_dest.load_state_dict(model_source.state_dict())
# Use deep copy
model_source = Model()
model_dest = copy.deepcopy(model_source )

相关内容

  • 没有找到相关文章

最新更新