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

  • 小米盒子4c和4s有什么区别(小米盒子4c和4s实际区别大吗)

    小米盒子4c和4s有什么区别(小米盒子4c和4s实际区别大吗)

  • excel冻结窗口怎么设置范围(excel冻结窗口怎么操作)

    excel冻结窗口怎么设置范围(excel冻结窗口怎么操作)

  • 微信数字货币怎么开通(微信数字货币怎么转账)

    微信数字货币怎么开通(微信数字货币怎么转账)

  • 抖加币怎么退钱呢(抖加币怎么退钱苹果)

    抖加币怎么退钱呢(抖加币怎么退钱苹果)

  • 斗鱼app怎么退出登录(斗鱼手机怎么退出登陆)

    斗鱼app怎么退出登录(斗鱼手机怎么退出登陆)

  • 红外线热像仪能看到手机吗(红外线热像仪能看到放屁吗)

    红外线热像仪能看到手机吗(红外线热像仪能看到放屁吗)

  • 移出黑名单了 还是拒收(移出黑名单了对方发消息还是拒收)

    移出黑名单了 还是拒收(移出黑名单了对方发消息还是拒收)

  • 苹果手机下载东西一直获取不了(苹果下载软件手机)

    苹果手机下载东西一直获取不了(苹果下载软件手机)

  • 手机qq怎么上传照片到相册(手机QQ怎么上传文件到群文件夹)

    手机qq怎么上传照片到相册(手机QQ怎么上传文件到群文件夹)

  • 手机自动关机后充不进去电(手机自动关机后闹钟还会响吗)

    手机自动关机后充不进去电(手机自动关机后闹钟还会响吗)

  • 充电宝自己给自己充电有什么后果(充电宝自己给自己充会怎么样)

    充电宝自己给自己充电有什么后果(充电宝自己给自己充会怎么样)

  • 美团人脸识别怎么不通过(美团人脸识别怎么破)

    美团人脸识别怎么不通过(美团人脸识别怎么破)

  • 摄像头2.8mm4mm6mm有什么区别(摄像头2.8mm4mm6mm8mm有什么区别)

    摄像头2.8mm4mm6mm有什么区别(摄像头2.8mm4mm6mm8mm有什么区别)

  • 在抖音上可以直播电影吗(在抖音上可以直播讲课吗)

    在抖音上可以直播电影吗(在抖音上可以直播讲课吗)

  • 智行12306是官方软件吗(智行12306是官方认可吗)

    智行12306是官方软件吗(智行12306是官方认可吗)

  • 小米2015112是什么型号(小米2015112是什么型号参数)

    小米2015112是什么型号(小米2015112是什么型号参数)

  • 美团账单记录怎么删除(美团的账单在哪)

    美团账单记录怎么删除(美团的账单在哪)

  • 怎样改变Word的兼容模式(怎样改变word的底色)

    怎样改变Word的兼容模式(怎样改变word的底色)

  • 宏村哪里(宏村哪里可以寄存行李)

    宏村哪里(宏村哪里可以寄存行李)

  • 充电宝丢失怎么办(充电宝丢失怎么办会一直扣费吗)

    充电宝丢失怎么办(充电宝丢失怎么办会一直扣费吗)

  • iqoo怎么开启游戏按键(iqoo设置游戏)

    iqoo怎么开启游戏按键(iqoo设置游戏)

  • 苹果xr怎么投屏到电视(苹果xr怎么投屏到创维电视)

    苹果xr怎么投屏到电视(苹果xr怎么投屏到创维电视)

  • ipad怎么投屏到电视机上(ipad怎么投屏到三星电视机上)

    ipad怎么投屏到电视机上(ipad怎么投屏到三星电视机上)

  • 监控线和网线一样吗(监控线和网线一样用吗)

    监控线和网线一样吗(监控线和网线一样用吗)

  • 什么是应税所得率方式
  • 转出多交增值税和转出未交增值税怎么理解
  • 将自产货物赠送客户
  • 上年多交的增值税能退吗
  • 个体户一定要自己经营吗
  • 施工水电费扣除比例
  • 咨询服务费开票税率
  • 个人所得税纳税比例
  • 2021年停车费税率
  • 个人劳务费 税
  • 应收账款未收到回函的替代程序
  • 土地出让要不要交印花税吗
  • 外地施工企业税收征管办法
  • 固定资产怎么盘点
  • 农业企业发包给人种植要交纳个税吗?
  • 企业所得税报表模板
  • 行政费用包括哪些企业行政后勤管理费用
  • 进项税抵扣需要做分录吗
  • 不占股权投资如何做账
  • 稿费算税
  • 华为p60pro上市时间是几月
  • 评估增值的账务处理
  • linux怎么创建主页文件
  • php oci
  • 转账凭证摘要怎么写原材料的
  • 坏坏狼故事绘本
  • php基础入门
  • 施工企业自建自用的工程
  • 公司缴纳的契税怎么查询
  • 收到短期借款会计分录怎么做
  • linux录制视频工具
  • 银行企业未达账户怎么办
  • php curd
  • 免费GPU:九天•毕昇平台使用教程
  • php面向对象和面向过程
  • php获取本机ip地址
  • 2023前端面试题pdf
  • 制造费用期末怎么结转
  • vue项目使用百度地图怎么长久使用
  • javascript高阶
  • 发票6个点怎么算收税点
  • 金蝶k3明细账如何查询
  • mysql安装配置教程csdn
  • 一般纳税人是怎么征收
  • 联营企业与合营企业纳入合并吗
  • 预付开发票加油后还能开吗?
  • 汇算清缴时资产折旧怎么填
  • 研发费用账务调整合同怎么写
  • 劳务报酬支出怎么算
  • 收取的承包费交什么税
  • 工程预付款入账
  • 计提个人所得税会计分录怎么做账
  • 支付补偿款计入什么会计科目
  • 营业外收入在汇算清缴里填哪张表
  • 公司定额征收需要什么
  • 小企业成本核算方法怎么填
  • 公司卖掉软件计提折旧吗
  • 会计分录借贷怎么分视频教程
  • mysql innode
  • xp系统怎么升级版本
  • mac上网速度慢
  • 还原精灵使用教程
  • win8固态硬盘
  • sbsetup.exe - sbsetup是什么进程 有什么用
  • win8在哪里看安装的所有程序
  • win10如何进行运行
  • nodejs connect
  • shell替换文件中指定行的指定内容
  • js字符串编码解码
  • 已经序列化的表单怎么再添加
  • 检测shell脚本语法错误的命令
  • shell脚本-n
  • unity5用什么语言
  • jquery弹出div遮罩层
  • jquery的validate前端表单验证
  • js如何动态添加class
  • 企业年检里的纳税是什么
  • 建筑公司材料发票
  • 实收资本印花税税率多少
  • 国际税务网
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设