位置: IT常识 - 正文

在GPU上运行pytorch程序(指定单/多显卡)(用gpu运行python)

编辑:rootadmin
在GPU上运行pytorch程序(指定单/多显卡) 目录

1. 使用CUDA_VISIBLE_DEVICES

2. 使用cuda()和torch.cuda.set_device()

3. 使用device

4. 使用torch.nn.DataParallel


1. 使用CUDA_VISIBLE_DEVICES使用CUDA_VISIBLE_DEVICES设置显卡https://blog.csdn.net/qq_43307074/article/details/1276599672. 使用cuda()和torch.cuda.set_device()

推荐整理分享在GPU上运行pytorch程序(指定单/多显卡)(用gpu运行python),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:在gpu上运行的程序,pytorch gpu不可用,pytorch gpu运行,pytorch gpu运行,在GPU上运行MATLAB程序,gpu版本的pytorch可以用cpu跑吗,如何在gpu上运行python,如何在gpu上运行python,内容如对您有帮助,希望把文章链接给更多的朋友!

torch.cuda常用指令https://blog.csdn.net/qq_43307074/article/details/127628498?spm=1001.2014.3001.5501方法1和方法2可以同时使用,比如在运行代码时使用:

CUDA_VISIBLE_DEVICES=2,3 python test.py

而在代码内部又指定:

model.cuda(1)

那么model会在GPU3上运行。原理是CUDA_VISIBLE_DEVICES遍历当前可见的设备,并从零开始为可见设备编号。CUDA_VISIBLE_DEVICES使得只有GPU2,3可见,程序就会把这两张显卡编号为GPU0,1,2,3,cuda(1)把model加载到了GPU1上,则实际使用的显卡是GPU3。

如果利用.cuda()或torch.cuda.set_device()把模型加载到多个显卡上,而实际上只使用一张显卡运行程序的话,那么程序会把模型加载到第一显卡上,在运行代码时使用:

CUDA_VISIBLE_DEVICES=2,3 python test.py

而在代码内部又指定:

model.cuda('cuda:1,0')在GPU上运行pytorch程序(指定单/多显卡)(用gpu运行python)

那么model会在GPU3上运行。

3. 使用device3.1. 检查所用的deviceimport torchx = torch.tensor([[1,2,3],[4,5,6]])print(x.device)

3.2. 模型/数据指定GPU,具体有以下几种形式:import torchcuda = torch.device('cuda:0'/'cuda')x = torch.tensor([1,2,3],device = cuda)print(x.device)import torchdevice = torch.device('cuda:0'/'cuda')x = torch.rand((4,5)).to(device)print(x.device)import torchx = torch.tensor([1,2,3],device = torch.device('cuda:0'/'cuda')print(x.device)import torchdevice = torch.device('cuda:0'/'cuda')...net = net.to(device)print(net.device)

 经典写法:

device=torch.device("cuda:0" if torch.cuda.is_available() else "cpu")

如果想要在其他GPU上运行,举例如下:

import torchimport os os.environ['CUDA_VISIBLE_DEVICES'] = '0,1,2'cuda = torch.device('cuda:1')x = torch.tensor([[1,2,3]],device = cuda)print(x.device)4. 使用torch.nn.DataParallel

多卡数据并行一般使用torch.nn.DataParallel

torch.nn.DataParallel(model,device_ids)举例:torch.nn.DataParallel(model, device_ids=device_ids)torch.nn.DataParallel(modul, device_ids=[x1,x2,x3,x4,x5,x6,x7])# 使用的GPU一定是编号连续的torch.nn.DataParallel(model,device_ids = range(torch.cuda.device_count()) )

其中model是需要运行的模型,device_ids指定部署模型的显卡,数据类型是list/device。

device_ids中的第一个GPU(即device_ids[0])和model.cuda()或torch.cuda.set_device()中的第一个GPU序号应保持一致,否则会报错。此外如果两者的第一个GPU序号都不是0,比如设置为:

model=torch.nn.DataParallel(model,device_ids=[2,3])model.cuda(2)

那么程序可以在GPU2和GPU3上正常运行。device_ids的默认值是使用可见的GPU,不设置model.cuda()或torch.cuda.set_device()等效于设置了model.cuda(0)

具体举例如下:

model = model.cuda()device_ids = [0, 1] model = torch.nn.DataParallel(model, device_ids=device_ids)model = model.to(device)model = nn.DataParallel(model, device_ids=[0,1,2,3])device_ids = [0, 1]model = torch.nn.DataParallel(model, device_ids=device_ids).cuda()

所有的数据要先load到主GPU上,然后再分发给每个GPU去train,因此应当将model先放到GPU上,然后在进行并行训练。

参考

在pytorch中指定显卡https://zhuanlan.zhihu.com/p/166161217

本文链接地址:https://www.jiuchutong.com/zhishi/290663.html 转载请保留说明!

上一篇:vue查询数据el-table不更新数据(vue 查询)

下一篇:威斯康星州的白尾母鹿和小鹿 (© Karel Bock/Shutterstock)(威斯康星州1976)

  • 华为p40pro可以注视不熄屏吗(华为p40怎么注册)

    华为p40pro可以注视不熄屏吗(华为p40怎么注册)

  • 爱奇艺微博登录在哪里(手机爱奇艺怎么用新浪微博登录)

    爱奇艺微博登录在哪里(手机爱奇艺怎么用新浪微博登录)

  • 手机一放声音就滋滋声(手机一放声音就滋滋声怎么办)

    手机一放声音就滋滋声(手机一放声音就滋滋声怎么办)

  • 手机没有电池 直接充电能开机吗(手机没有电池会爆炸吗)

    手机没有电池 直接充电能开机吗(手机没有电池会爆炸吗)

  • 华为p40微信美颜怎么开(华为p40微信美颜怎么关)

    华为p40微信美颜怎么开(华为p40微信美颜怎么关)

  • 企业微信为什么不能登录,只能注册(企业微信为什么加不了好友)

    企业微信为什么不能登录,只能注册(企业微信为什么加不了好友)

  • 23a12v电池是几号电池(23a 电池)

    23a12v电池是几号电池(23a 电池)

  • 图片怎么找回(相册删除的图片怎么找回)

    图片怎么找回(相册删除的图片怎么找回)

  • 拼多多卖家不发货会有什么惩罚(拼多多卖家不发货会自动退给买家吗)

    拼多多卖家不发货会有什么惩罚(拼多多卖家不发货会自动退给买家吗)

  • 表格负数怎么填写(表格填写负数)

    表格负数怎么填写(表格填写负数)

  • 苹果7p怎么双击截屏(苹果7p怎么双击截屏手机屏幕)

    苹果7p怎么双击截屏(苹果7p怎么双击截屏手机屏幕)

  • 苹果x怎么进行指纹支付(苹果x怎么进行无线充电)

    苹果x怎么进行指纹支付(苹果x怎么进行无线充电)

  • 苹果x快充损耗电池吗(苹果x快充损耗大吗)

    苹果x快充损耗电池吗(苹果x快充损耗大吗)

  • windows10有必要分区吗(win10有没有必要分盘)

    windows10有必要分区吗(win10有没有必要分盘)

  • 苹果xs发烫是咋回事(苹果xs发热烫手)

    苹果xs发烫是咋回事(苹果xs发热烫手)

  • 苹果微信无法更新版本(苹果微信无法更新此项目已退款)

    苹果微信无法更新版本(苹果微信无法更新此项目已退款)

  • 微信留言怎么删除(微信里的留言)

    微信留言怎么删除(微信里的留言)

  • jovi智慧场景怎么关闭(jovi智慧场景怎么设置在桌面)

    jovi智慧场景怎么关闭(jovi智慧场景怎么设置在桌面)

  • 怎么取消美团会员自动续费(怎么取消美团会员红包)

    怎么取消美团会员自动续费(怎么取消美团会员红包)

  • Windows11里微软已经将驱动程序安装位置A盘删除(windows11 微软)

    Windows11里微软已经将驱动程序安装位置A盘删除(windows11 微软)

  • Win7旗舰版如何查看本机的Mac地址?(win7旗舰版如何恢复出厂设置)

    Win7旗舰版如何查看本机的Mac地址?(win7旗舰版如何恢复出厂设置)

  • 命令提示符被阻止运行怎么办(命令提示符用不了怎么办)

    命令提示符被阻止运行怎么办(命令提示符用不了怎么办)

  • Python代码用在这些地方,其实1行就够了!(python代码用什么运行)

    Python代码用在这些地方,其实1行就够了!(python代码用什么运行)

  • 个人所得税账务处理分录
  • 税金返还需要交税吗
  • 失控发票账务处理
  • 城镇土地使用税的征税范围有哪些
  • 社保公司部分交多少比例
  • 税务局可以委托公司代征税,你觉得可能吗?
  • 零申报企业所得税季度申报表怎么填写
  • 个税专项扣除是什么时候开始实行
  • 税务部门罚没收入200元
  • 存货营业外支出包括哪些
  • 材料存货的期末计量有何特点
  • 保险营销员的佣金怎么算个税
  • 关于固定资产的企业案例
  • 公司客车高速费如何抵扣进项税?
  • 白酒的消费税怎样计算
  • 关于环保税的计税依据
  • 2017 160号文件
  • 劳务发票备注怎么填
  • 出租车车票能进高铁站吗
  • 收入不交税怎么处理
  • 建帐选择什么会计制度和会计准则之后能修改吗
  • 跨年度残保金退回做什么
  • 12月的发票可以1月付款吗
  • 4s店上牌费用怎么给
  • 私人公司老板
  • 已经认证的发票怎么冲红
  • 鸿蒙桌面卡片怎么变小
  • linux 硬盘满了
  • 今天端午节?
  • 材料分配的四个步骤
  • gridview用法
  • 技术服务转包涉税处理
  • php写文件函数
  • 报废汽车残值收入如何计税
  • nacos安装包
  • 马萨诸塞 下架
  • 软件企业认定好处
  • sortable js
  • Python变量中forain
  • javascript前端开发案例教程源码
  • vue3.0用法
  • 长期待摊费用的最新账务处理
  • 股东的投资款能转为借款
  • 新会计准则物业公司计提应收账款分录
  • 预付房租计入长期待摊费用吗
  • 出库成本会计分录
  • 收到退回以前年度税款
  • 旧设备出口可以退税吗
  • 电子承兑没到期兑换手多少手续费
  • 报表其他应收款包括哪些内容
  • 收到货款会计录入
  • 股东出资转为借款
  • 应收账款无法收回说明模板
  • 投资性房地产在建
  • 支付宝里的收入和支出明细能查多久的?
  • 管理费用的明细科目如何设置
  • sql server设置主键primary key
  • sql导入csv数据
  • sqlserver数据库怎么导出
  • 如何修改注册表键值
  • 电脑xp系统如何
  • macbook显示flash插件故障
  • win8.1应用商店无法打开
  • 80端口被system 占用解决方法
  • 如何写出一篇游戏活动案例
  • unity 虚拟摇杆
  • myeclipse创建
  • python双循环题
  • jquery设计模式
  • node-red 全局变量
  • Apache服务器的安全缺陷
  • angular api
  • python理论基础
  • js和jquery可以混用吗
  • 总结网络io模型的特点
  • 核准类结算账户包括
  • 收购发票怎么抵扣申报
  • 个人所得税是按实发工资还是应发
  • 代理记账代理记账价格
  • 国地税联合办公
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设