网易首页 > 网易号 > 正文 申请入驻

解说pytorch中的model=model.to(device)

0
分享至

这篇文章主要介绍了pytorch中的model=model.to(device)使用说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

这代表将模型加载到指定设备上。

其中,device=torch.device("cpu")代表的使用cpu,而device=torch.device("cuda")则代表的使用GPU。

当我们指定了设备之后,就需要将模型加载到相应设备中,此时需要使用model=model.to(device),将模型加载到相应的设备中。

将由GPU保存的模型加载到CPU上。

将torch.load()函数中的map_location参数设置为torch.device('cpu')

device = torch.device('cpu') model = TheModelClass(*args, **kwargs) model.load_state_dict(torch.load(PATH, map_location=device))

将由GPU保存的模型加载到GPU上。确保对输入的tensors调用input = input.to(device)方法。

device = torch.device("cuda") model = TheModelClass(*args, **kwargs) model.load_state_dict(torch.load(PATH)) model.to(device)

将由CPU保存的模型加载到GPU上。

确保对输入的tensors调用input = input.to(device)方法。map_location是将模型加载到GPU上,model.to(torch.device('cuda'))是将模型参数加载为CUDA的tensor。

最后保证使用.to(torch.device('cuda'))方法将需要使用的参数放入CUDA。

device = torch.device("cuda") model = TheModelClass(*args, **kwargs) model.load_state_dict(torch.load(PATH, map_location="cuda:0")) # Choose whatever GPU device number you want model.to(device)

补充:pytorch中model.to(device)和map_location=device的区别

一、简介

在已训练并保存在CPU上的GPU上加载模型时,加载模型时经常由于训练和保存模型时设备不同出现读取模型时出现错误,在对跨设备的模型读取时候涉及到两个参数的使用,分别是model.to(device)和map_location=devicel两个参数,简介一下两者的不同。

将map_location函数中的参数设置 torch.load()为 cuda:device_id。这会将模型加载到给定的GPU设备。

调用model.to(torch.device('cuda'))将模型的参数张量转换为CUDA张量,无论在cpu上训练还是gpu上训练,保存的模型参数都是参数张量不是cuda张量,因此,cpu设备上不需要使用torch.to(torch.device("cpu"))。

二、实例

了解了两者代表的意义,以下介绍两者的使用。

1、保存在GPU上,在CPU上加载

保存:

torch.save(model.state_dict(), PATH)

加载:

device = torch.device('cpu') model = TheModelClass(*args, **kwargs) model.load_state_dict(torch.load(PATH, map_location=device))

解释:

在使用GPU训练的CPU上加载模型时,请传递 torch.device('cpu')给map_location函数中的 torch.load()参数,使用map_location参数将张量下面的存储器动态地重新映射到CPU设备 。

2、保存在GPU上,在GPU上加载

保存:

torch.save(model.state_dict(), PATH)

加载:

device = torch.device("cuda") model = TheModelClass(*args, **kwargs) model.load_state_dict(torch.load(PATH)) model.to(device) # Make sure to call input = input.to(device) on any input tensors that you feed to the model

解释:

在GPU上训练并保存在GPU上的模型时,只需将初始化model模型转换为CUDA优化模型即可model.to(torch.device('cuda'))。

此外,请务必.to(torch.device('cuda'))在所有模型输入上使用该 功能来准备模型的数据。

请注意,调用my_tensor.to(device) 返回my_tensorGPU上的新副本。

它不会覆盖 my_tensor。

因此,请记住手动覆盖张量: my_tensor = my_tensor.to(torch.device('cuda'))

3、保存在CPU,在GPU上加载

保存:

torch.save(model.state_dict(), PATH)

加载:

device = torch.device("cuda") model = TheModelClass(*args, **kwargs) model.load_state_dict(torch.load(PATH, map_location="cuda:0")) # Choose whatever GPU device number you want model.to(device) # Make sure to call input = input.to(device) on any input tensors that you feed to the model

解释:

在已训练并保存在CPU上的GPU上加载模型时,请将map_location函数中的参数设置 torch.load()为 cuda:device_id。

这会将模型加载到给定的GPU设备。

接下来,请务必调用model.to(torch.device('cuda'))将模型的参数张量转换为CUDA张量。

最后,确保.to(torch.device('cuda'))在所有模型输入上使用该 函数来为CUDA优化模型准备数据。

请注意,调用 my_tensor.to(device)返回my_tensorGPU上的新副本。

它不会覆盖my_tensor。

因此,请记住手动覆盖张量:my_tensor = my_tensor.to(torch.device('cuda'))

原文来自:https://www.jb51.net/article/213127.htm
本文地址:https://www.linuxprobe.com/pytorch-model-todevice.html编辑:吴向平,审核员:逄增宝
Linux命令大全:https://www.linuxcool.com/

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
33岁章泽天风格大变!穿艳俗纱裙、副乳突出,比实际年龄成熟10岁

33岁章泽天风格大变!穿艳俗纱裙、副乳突出,比实际年龄成熟10岁

阿讯说天下
2026-04-18 14:53:39
美国至少10名科研人员离奇死亡或神秘失踪引发广泛关注!大都接触UFO、航空航天、原子能等涉密项目,白宫承诺:彻查

美国至少10名科研人员离奇死亡或神秘失踪引发广泛关注!大都接触UFO、航空航天、原子能等涉密项目,白宫承诺:彻查

大风新闻
2026-04-20 09:35:11
蓝眼北京人控诉陈丽华20余年,比女首富更该铭记

蓝眼北京人控诉陈丽华20余年,比女首富更该铭记

老蝣说体育
2026-04-19 17:40:22
两性关系:女人可以搂着睡,亲她的嘴,但千万别信她说的话

两性关系:女人可以搂着睡,亲她的嘴,但千万别信她说的话

游戏收藏指南
2026-04-20 14:55:01
CBA最新排名!深圳北京争第3,广东无缘前4,广州北控拼最后一席

CBA最新排名!深圳北京争第3,广东无缘前4,广州北控拼最后一席

篮球资讯达人
2026-04-21 01:50:47
我今年55了,想用血泪教训告诉你:不要跟任何人,包括你的父母、子女、枕边人,分享这4件事

我今年55了,想用血泪教训告诉你:不要跟任何人,包括你的父母、子女、枕边人,分享这4件事

东林夕亭
2026-03-27 09:07:57
阿联酋没美元了

阿联酋没美元了

凯利经济观察
2026-04-20 12:17:23
“把大女儿养成这样,还敢说没偏心?”一张母女三人合照,被群嘲

“把大女儿养成这样,还敢说没偏心?”一张母女三人合照,被群嘲

妍妍教育日记
2026-04-20 18:51:58
郑栅洁主持召开民营企业座谈会,围绕准确把握当前经济形势、积极应对外部环境变化听取意见建议

郑栅洁主持召开民营企业座谈会,围绕准确把握当前经济形势、积极应对外部环境变化听取意见建议

界面新闻
2026-04-20 17:54:34
以牙还牙!中国052D直接冲入横当水道,从日本导弹眼皮底下过!

以牙还牙!中国052D直接冲入横当水道,从日本导弹眼皮底下过!

阿龙聊军事
2026-04-20 19:13:31
美国在霍尔木兹截停中国油轮 中方回应

美国在霍尔木兹截停中国油轮 中方回应

极目新闻
2026-04-20 15:50:46
离奇!大师赛的冠军奖金比八年前还低,球员集体上诉求涨奖金

离奇!大师赛的冠军奖金比八年前还低,球员集体上诉求涨奖金

网球之家
2026-04-20 22:22:28
活久见!赵樱子回应与杨子恋情,直言不怕黄圣依反击,想红想疯了

活久见!赵樱子回应与杨子恋情,直言不怕黄圣依反击,想红想疯了

八卦王者
2026-04-20 14:10:53
苏州一对情侣,谈了7年,女子提了18次分手,分手后在街头痛哭!

苏州一对情侣,谈了7年,女子提了18次分手,分手后在街头痛哭!

川渝视觉
2026-04-17 22:13:14
美政府将发布首批UFO文件

美政府将发布首批UFO文件

参考消息
2026-04-20 10:51:15
普京访华敲定,特朗普已下命令,中国全球通告:无惧美国

普京访华敲定,特朗普已下命令,中国全球通告:无惧美国

浠浠热评
2026-04-21 00:20:44
神秘消失数月后突然现身!美国最头疼的人,悄悄到了巴格达

神秘消失数月后突然现身!美国最头疼的人,悄悄到了巴格达

菁菁子衿
2026-04-19 19:41:04
王毅通告全世界,53国获零关税特权,唯独一国没得到,中方选边站

王毅通告全世界,53国获零关税特权,唯独一国没得到,中方选边站

触摸史迹
2026-04-20 03:39:03
关注丨刚刚,全线跳水!伊朗,突然宣布

关注丨刚刚,全线跳水!伊朗,突然宣布

钱眼
2026-04-20 20:12:47
西贝转型!贾国龙上海连开三家焖面店:单店超2000平米

西贝转型!贾国龙上海连开三家焖面店:单店超2000平米

快科技
2026-04-20 19:07:44
2026-04-21 03:28:49
孙有匪 incentive-icons
孙有匪
科技
1595文章数 2008关注度
往期回顾 全部

科技要闻

HUAWEI Pura X Max发布 售价10999元起

头条要闻

19岁女孩挪用自家1700万当"榜一大姐" 亲爹带女儿自首

头条要闻

19岁女孩挪用自家1700万当"榜一大姐" 亲爹带女儿自首

体育要闻

阿森纳已拼尽全力,但你早干嘛去了...

娱乐要闻

《八千里路云和月》田家泰暗杀

财经要闻

利润暴跌7成,字节到底在做什么

汽车要闻

把天门山搬进厂?开仰望U8冲上45度坡的那刻 我腿软了

态度原创

数码
时尚
教育
健康
军事航空

数码要闻

REDMI 显示器 G Pro 27U 2026轻体验:电竞利器 桌面上的“小钢炮”

春天衣服不用准备太多!这几大单品提前备好,百搭实用又不过时

教育要闻

大降温:来澳洲留学的中国学生,创近12年新低!

干细胞抗衰4大误区,90%的人都中招

军事要闻

特朗普:美舰向伊朗货船开火炸出个洞

无障碍浏览 进入关怀版