假设我在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 )