栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

pytorch训练好的模型在加载和保存过程中的问题

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

pytorch训练好的模型在加载和保存过程中的问题

在gpu上训练完成,在cpu上加载
torch.save(model.state_dict(), PATH)# 在gpu上训练后保存

# 在cpu的模型上加载使用
model.load_state_dict(torch.load(PATH, map_location='cpu'))
在cpu上训练完成,在gpu上加载
torch.save(model.state_dict(), PATH)# 在gpu上训练后保存

# 在cpu的模型上加载使用
model.load_state_dict(torch.load(PATH, map_location='cuda:0'))
在使用中需要注意的加载内容

当数据放入GPU,需要训练的模型也要放入GPU

'''
data_loader:pytorch中加载数据
'''
 for i, sample in enumerate(data_loader):  # 对数据进行按批次遍历
     image, target = sample  #  每一批次加载返回值
     if CUDA:
         image = image.cuda()   # 输入输出传入gpu
         target = target.cuda()
     # print(target.size)
     optimizer.zero_grad()     # 优化函数
     output = mymodel(image)

mymodel.to(torch.device("cuda"))

多个gpu训练时的加载

参考:https://blog.csdn.net/weixin_43794311/article/details/120940090

import torch.nn as nn
mymodel = nn.DataParallel(mymodel)

pytorch中的nn模块使用nn.DataParallel将模型加载到多个GPU,需要注意,这种加载方式保存的权重参数会比不使用nn.DataParallel加载模型保存的权重参数的关键字前多一个"module."。是否使用nn.DataParallel加载模型,会导致下次再加载模型的时候可能会出现下图的问题,

当权重参数前面多一个“module."时,最简单的方式就是使用nn.DataParallel对模型加载,

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/997625.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号