pytorch使用DataParallel并行化保存和加载模型(单卡、多卡各种情况讲解)

话不多说,直接进入正题。

!!!不过要注意一点,本文保存模型采用的都是只保存模型参数的情况,而不是保存整个模型的情况。一定要看清楚再用啊!

1 单卡训练,单卡加载

复制代码
#保存模型
torch.save(model.state_dict(),'model.pt')

#加载模型
model=MyModel()#MyModel()是你定义的创建模型的函数,就是先初始化得到一个模型实例,之后再将模型参数加载到该实例上
model.load_state_dict(torch.load('model.pt'))

2 单卡训练,多卡加载

保存模型的过程同第一种情况一样,但是要注意,多卡加载模型时, 是先加载模型参数,再对模型做并行化处理。

复制代码
#保存模型
torch.save(model.state_dict(),'model.pt')


#加载模型
model=MyModel()
model.load_state_dict(torch.load('model.pt'))

model=nn.DataParallel(model)#将模型进行并行化处理

3 多卡保存,单卡加载

方法一:

考虑到之后可能需要单卡加载你多卡训练的模型,所以建议在保存的时候,要去除模型参数字典里面的module,即使用model.module.state_dict()代替model.state_dict()来进行去除。

因为是单卡加载,所以还是要先加载 模型参数,再对模型做并行化处理。

复制代码
#保存模型
torch.save(model.module.state_dict(),'modle.pt')


#加载模型
model=MyModel()
model.load_state_dict(torch.load('model.pt'))

model=nn.DataParallel(model)

方法二:

仍然使用model.state_dict()保存,但是单卡加载的时候,要把模型做并行化(在单卡上并行),加载的时候要注意:由于我们保存到 方式是以多卡方式保存的,所以无论加载之后的模型是 在答案卡上运行还是在多卡上运行,都要先把模型并行化处理,然后再去加载模型。

复制代码
#保存模型
torch.save(model.state_dict(),'model.pt')


#加载模型
model=MyModel()

model=nn.DataParallel(model)

model.load_state_dict(torch.load('model.pt'))

4 多卡保存,多卡加载

这里保存模型采用"多卡保存,单卡加载"的第二种方法,加载的时候,要先把模型做并行化(在多卡上并行),然后再加载。

复制代码
#保存模型
torch.save(model.state_dict(),'model.pt')

#加载模型
model=MyModel()

model=nn.DataParallel(model)

model.load_state_dict(torch.load('model.pt'))

希望以上内容能够帮助到你,这里是希望你能越来越好的 小白冲鸭 ~~~

相关推荐
冬奇Lab5 分钟前
开源项目第177期:Apache Airflow — 用 Python 写出来的工作流调度器,数据工程师的标配工具
人工智能·开源·资讯
她说可以呀15 分钟前
Spring-ai-alibaba文生图
java·人工智能·spring
营养充电站1 小时前
KMP全栈开发:从Android到AI Agent的技术演进与实践
人工智能·算法·docker·jupyter
程序员cxuan1 小时前
速度太快了!本地可以跑 DeepSeek-V4-Flash 了
人工智能·后端·程序员
Claire_881 小时前
AI 辅助 PPT 生成工具横向测评:从模板库到多模态生成的选型参考
人工智能·powerpoint
半亩码田1 小时前
AI周报 | DeepSeek-V4-Flash 正式版(7-31)、Wan2.6 全链路、GPT-5.6 降价 80%(上周 07.27-08.02)
人工智能·gpt
山东布谷网络科技1 小时前
靠“社交+游戏”突围:中东语聊APP前景预测与低成本运营案例
人工智能·游戏
技术小黑1 小时前
RNN算法实战系列05 | 天气预测
人工智能·rnn·算法
带娃的IT创业者2 小时前
GitHub 热门项目解析:当 AI 编码助手遭遇“上下文爆炸”
人工智能·github·代码优化·ai编程助手·上下文窗口·上下文压缩
SimLine芯见2 小时前
以可靠性为中心的RCM KVM远程管控在多行业高端制造中的应用
大数据·人工智能·制造