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

解说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.

相关推荐
热点推荐
批斗郭德纲,续写60年前未竟的事业

批斗郭德纲,续写60年前未竟的事业

家传编辑部
2026-08-15 09:23:05
《牛来》票房破50万!母子2人纯手搓5年,烂片背后竟是感人至深的母爱

《牛来》票房破50万!母子2人纯手搓5年,烂片背后竟是感人至深的母爱

露珠聊影视
2026-08-15 18:52:17
热闻|无缘WTT欧洲大满贯瑞典站8强,国乒男单又一次被“团灭”!

热闻|无缘WTT欧洲大满贯瑞典站8强,国乒男单又一次被“团灭”!

齐鲁壹点
2026-08-15 07:03:28
悲催!同济大学博士学投中兴、大疆等多家头部企业,简历初筛就被刷落,网友:第一学历是原罪

悲催!同济大学博士学投中兴、大疆等多家头部企业,简历初筛就被刷落,网友:第一学历是原罪

火山詩话
2026-08-15 19:16:26
仅仅一年,苏超的热度断崖式下跌!去年累计22.2亿人次观看,今年观看人数暴跌,网友吐槽:没了草根球员,自然就没了草根观众!

仅仅一年,苏超的热度断崖式下跌!去年累计22.2亿人次观看,今年观看人数暴跌,网友吐槽:没了草根球员,自然就没了草根观众!

谭谈社会
2026-08-15 00:14:17
菲总统小马斯科宣布:若台海打仗,不允许任何人从菲律宾发动攻击

菲总统小马斯科宣布:若台海打仗,不允许任何人从菲律宾发动攻击

健身狂人
2026-08-15 13:21:35
郭德纲改的《弹起我心爱的土琵琶》,在“文革”中曾被批为大毒草

郭德纲改的《弹起我心爱的土琵琶》,在“文革”中曾被批为大毒草

陈鹰
2026-08-15 10:44:49
胖东来走了,腾讯也走了:留下空铺子和降下来的房租,谁赢了?

胖东来走了,腾讯也走了:留下空铺子和降下来的房租,谁赢了?

石辰搞笑日常
2026-08-15 12:45:36
王思聪携懒懒巴黎坐游船,懒懒生图曝光,与精修照差别巨大,判若两人

王思聪携懒懒巴黎坐游船,懒懒生图曝光,与精修照差别巨大,判若两人

情感大头说说
2026-08-15 10:41:15
将美国赶出阿富汗五年后,塔利班邀请美国回来:可以带着外交官和资金回来,但不能带军队

将美国赶出阿富汗五年后,塔利班邀请美国回来:可以带着外交官和资金回来,但不能带军队

第一财经资讯
2026-08-15 15:12:29
“满脸都是放纵的痕迹”,母亲晒大三儿子面相变化,被知情人说中了

“满脸都是放纵的痕迹”,母亲晒大三儿子面相变化,被知情人说中了

熙熙说教
2026-08-15 13:50:35
中方下达“拖船令”后,马科斯态度大转变:没想疏远,我们想合作

中方下达“拖船令”后,马科斯态度大转变:没想疏远,我们想合作

讲者普拉斯
2026-08-15 09:08:36
西安一家五口吃烤肉未付款离开,店家公开监控希望对方回去买单

西安一家五口吃烤肉未付款离开,店家公开监控希望对方回去买单

映射生活的身影
2026-08-15 17:20:33
Mate 90 Pro Max 公布的新技术,我心动了!

Mate 90 Pro Max 公布的新技术,我心动了!

科技堡垒
2026-08-15 11:14:14
太疯狂了!一张网传南京8‑11月演出排期表刷屏,演唱会密集井喷,娱乐圈正在上演“穷凶恶极”地收割

太疯狂了!一张网传南京8‑11月演出排期表刷屏,演唱会密集井喷,娱乐圈正在上演“穷凶恶极”地收割

火山詩话
2026-08-15 06:37:27
贵州从外省引进的15名县委书记,半数已落马

贵州从外省引进的15名县委书记,半数已落马

记录刘杰
2026-08-14 23:13:34
郭德纲《济公活佛》事件升级!其老照片被扒,网友:这下完犊子了,这金龙毯也是你铺的吗?

郭德纲《济公活佛》事件升级!其老照片被扒,网友:这下完犊子了,这金龙毯也是你铺的吗?

火山詩话
2026-08-15 14:08:34
深度|这么糙的《牛来》为什么能公映?听专业人士详解

深度|这么糙的《牛来》为什么能公映?听专业人士详解

澎湃新闻
2026-08-15 15:56:07
《牛来》票房破130万,影院经理在排片决策上分化了

《牛来》票房破130万,影院经理在排片决策上分化了

澎湃新闻
2026-08-15 21:43:03
67岁许家印当庭认罪,背后3座“靠山”也全倒了:一死一病一死缓

67岁许家印当庭认罪,背后3座“靠山”也全倒了:一死一病一死缓

标体
2026-08-15 10:49:37
2026-08-16 00:19:00
孙有匪 incentive-icons
孙有匪
科技
1595文章数 2007关注度
往期回顾 全部

科技要闻

600亿美元收购落地 马斯克正式杀入

头条要闻

"榜一大哥"打赏女主播超千万要求陪睡 女方拒绝被起诉

头条要闻

"榜一大哥"打赏女主播超千万要求陪睡 女方拒绝被起诉

体育要闻

体系球员与体系本身

娱乐要闻

宋慧乔晒自拍照 微笑拍照心情佳

财经要闻

便利蜂加盟遭立案:"0元加盟"生意被查

汽车要闻

杨洋成001号车主 岚图追光S正式上市

态度原创

时尚
亲子
家居
房产
游戏

12年才总结出这5个小习惯,真的让我的生活更轻松

亲子要闻

怀了个财神是什么体验?网友:我女儿没出生就带了60万过来

家居要闻

2026建博会(广州) 公装联探展交流活动

房产要闻

金茂、招商,海南多个岗位招人!

《暗黑血统4》喜迎锁档新消息!玩家担忧:别是类魂

无障碍浏览 进入关怀版