深拷贝copy.deepcopy()拷贝多个深度学习(对象实例化)模型

在深度学习的训练和测试过程中,可能会涉及到对同一个模型进行多次拷贝,分别进行不同的训练或者加载不同的checkpoint参数,这时候不能使用等号进行简单的拷贝,而是需要使用copy.deepcopy()进行深拷贝。

例如:

采用同样的模型分别训练了三个不同的任务,当然也就保存了三个不同的模型参数。在测试的时候,需要同时加载这三个不同的模型,那该如何做呢?

import copy

## ...
## 模型的对象实例化
model = prosody(参数)
model = model.cuda()
## ...

## 深拷贝三个模型,并分别加载模型
pw_model = copy.deepcopy(model)
pph_model = copy.deepcopy(model)
iph_model = copy.deepcopy(model)

pw_checkpoint_path = ''
pph_checkpoint_path = ''
iph_checkpoint_path = ''

pw_model.load_state_dict(torch.load(pw_checkpoint_path))
pph_model.load_state_dict(torch.load(pph_checkpoint_path))
iph_model.load_state_dict(torch.load(iph_checkpoint_path))

你可能感兴趣的:(python,pytorch,深度学习,pytorch,python)