位置: 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)

  • 一个爱奇艺会员可以登几个设备(一个爱奇艺会员能几个人用)

    一个爱奇艺会员可以登几个设备(一个爱奇艺会员能几个人用)

  • 怎么编辑朋友圈里的文字(龙虾烧烤宣传怎么编辑朋友圈)

    怎么编辑朋友圈里的文字(龙虾烧烤宣传怎么编辑朋友圈)

  • 现在还有必要买电脑吗(现在还有必要买电视吗)

    现在还有必要买电脑吗(现在还有必要买电视吗)

  • 华为telan00a是什么型号(华为telan00a与telan00)

    华为telan00a是什么型号(华为telan00a与telan00)

  • 趣头条实名认证安全吗(趣头条实名认证在哪里)

    趣头条实名认证安全吗(趣头条实名认证在哪里)

  • ctrl加什么是息屏

    ctrl加什么是息屏

  • 原厂屏是不是原装屏(原厂屏是什么)

    原厂屏是不是原装屏(原厂屏是什么)

  • 快手一个铃铛多少快币(快手一个铃铛多少粉丝)

    快手一个铃铛多少快币(快手一个铃铛多少粉丝)

  • 上网宝如何使用(上网宝使用说明书)

    上网宝如何使用(上网宝使用说明书)

  • ipadair10.5寸是几代(ipad air10.5英寸是几代)

    ipadair10.5寸是几代(ipad air10.5英寸是几代)

  • 正数的原码补码反码相同吗(正数的原码补码反码)

    正数的原码补码反码相同吗(正数的原码补码反码)

  • 应用宝是用来干嘛的(应用宝是用来干嘛的卸载可以吗)

    应用宝是用来干嘛的(应用宝是用来干嘛的卸载可以吗)

  • oppo声音太大怎么办(oppo手机声音调大还是很小怎么办)

    oppo声音太大怎么办(oppo手机声音调大还是很小怎么办)

  • 段落默认对齐方式(段落对齐方式默认设置为左对齐对吗)

    段落默认对齐方式(段落对齐方式默认设置为左对齐对吗)

  • oppo手机怎么自动清灰(oppo手机怎么自定义来电铃声)

    oppo手机怎么自动清灰(oppo手机怎么自定义来电铃声)

  • Redmi K30什么时候发布(redmik30什么时候更新miui13)

    Redmi K30什么时候发布(redmik30什么时候更新miui13)

  • airpods适用于iphone6么(AirPods适用于安卓手机吗)

    airpods适用于iphone6么(AirPods适用于安卓手机吗)

  • word2013格式在哪里(word2021格式在哪)

    word2013格式在哪里(word2021格式在哪)

  • 什么叫闪电接头(什么叫闪电接头图片)

    什么叫闪电接头(什么叫闪电接头图片)

  • 竖向文本框里的字怎么居中(竖向文本框的括号怎么向下)

    竖向文本框里的字怎么居中(竖向文本框的括号怎么向下)

  • 网络空间的虚拟性体现在哪些方面(网络空间的虚拟性体现在哪里)

    网络空间的虚拟性体现在哪些方面(网络空间的虚拟性体现在哪里)

  • 微信小成就从哪看(微信小成就从哪里找)

    微信小成就从哪看(微信小成就从哪里找)

  • 苹果手机授权信任在哪里(苹果手机授权信任管理在哪设置)

    苹果手机授权信任在哪里(苹果手机授权信任管理在哪设置)

  • 华为手机怎么才算激活(华为手机怎么才能安装未知应用)

    华为手机怎么才算激活(华为手机怎么才能安装未知应用)

  • history命令  显示与管理历史命令记录(windows history命令)

    history命令 显示与管理历史命令记录(windows history命令)

  • 什么情况借钱
  • 初级会计计划成本法例题
  • 如何确认产品销售收入
  • 付加工费会计分录怎么做
  • 销售费用有业务招待费餐费么
  • 销户之后可以重新申请吗
  • 季末资产总额填错了要紧吗
  • 事务所和公司的专利工程师
  • 石油天然气管道保护法
  • 材料验收入库并结转差异记账凭证
  • 住宿费专用发票税率是多少
  • 股东借款利息代扣代缴增值税是怎样算的?
  • 出口退税附加税什么时候缴纳
  • 小微企业所得税优惠政策最新2023
  • 一般纳税人印花税减半征收吗
  • 在建工程计提减值准备可以转回吗
  • 股权转让需要什么资料
  • 成本控制的基本原则包括
  • 金蝶k3固定资产反结账
  • 电子汇票贴现怎样操作
  • 增值税免税标准30万含不含税
  • 餐厨垃圾处理有哪些设备
  • 单位为员工支付医疗费
  • 发票已抵扣未入账
  • mac怎么访问路径
  • 可以用鸿蒙系统的手机
  • 家里的无线网连着连着就断了
  • 公司收到搬运发票怎么做
  • 没有发票只有收据可以报销吗
  • 汽车维修的发票的购买方
  • PHP:pg_escape_bytea()的用法_PostgreSQL函数
  • 公司给其他单位分红需要对方开票吗
  • 跨年收到退回增值税税款的账务处理
  • win10蓝牙无法连接可以尝试以下操作
  • 烟草企业亏损
  • 企业备用金管理制度规定
  • 朝圣者将风马旗扔向甘登寺上方的空中为新年祈福,中国西藏 (© Ian Cumming/plainpicture)
  • 企业发生的利得或损失应计入企业的营业外收支
  • vue0
  • 产品出库单附在什么凭证后面
  • unzip解压命令参数
  • 阿里规则官方头条
  • 账实不符的后果和对策
  • php __get()
  • 事件委托js例子
  • access创建一个表
  • 防暑降温费用发放标准
  • 餐饮个体户如何申请开票
  • mongodb 设置用户名密码
  • 上下班出车祸公司怎么赔偿
  • 年底做账流程
  • 收到购货款用预付款吗
  • 进项税额已经抵扣会计分录
  • 安全生产费会计准则
  • 支付补偿款计入什么会计科目
  • 债券分期付息到期还本的意思
  • 民办非企业单位什么意思
  • 已经认证的进项发票在哪里查询
  • 四技合同是什么?
  • 保险的理解
  • 工程行业收到工程发票
  • 营业外收入计入哪里
  • linux unix操作系统
  • win7系统清理c盘空间不足
  • 如何把网址设为常用网址
  • unity2d横版游戏源码
  • linux bash中too many arguments问题的解决方法
  • qq登录失败是怎么回事
  • python jsondecodeerror异常捕获
  • jquery绑定onchange
  • shell 非
  • unity 3d online document
  • JavaScript+html5 canvas实现本地截图教程
  • unity每帧调用
  • js作用域和作用域链的理解阮一峰
  • jquery滚动条滚动事件
  • android_zh
  • 记住密码自动登录怎么取消
  • 纳税人识别号不能含有IOZSV
  • 核算成本需要哪些数据来源
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设