os.environ[‘CUDA_VISIBLE_DEVICES‘]指定GPU后,还是用的“0“卡

2023-10-30

背景

实验室服务器有多张显卡,但今天“0”卡显存已被占满,因此我在代码中添加os.environ['CUDA_VISIBLE_DEVICES']=“2”指定使用编号为"2"的显卡(显存够的前提下)。但跑VGG16的时候却报错:
贼迷惑
经过调试发现os.environ['CUDA_VISIBLE_DEVICES']想要生效,import torch的位置需要放在指令os.environ['CUDA_VISIBLE_DEVICES']后面才行。

验证方案

利用torch.cuda.device_count()协助判断指令os.environ['CUDA_VISIBLE_DEVICES']="x" 是否生效

# 实验室服务器有8台GPU
# 选择调用其中三台
# torch.cuda.device_count(): 查看可用的GPU数量

# 实验1. 将import torch放在指令os.environ['CUDA_VISIBLE_DEVICES']="x"前面
import os
import torch
os.environ['CUDA_VISIBLE_DEVICES']='0, 1, 2' # 程序可见的GPU
print(torch.cuda.device_count())  # 8  说明指令没生效

# 实验2. 将import torch放在指令os.environ['CUDA_VISIBLE_DEVICES']="x"后面
import os
os.environ['CUDA_VISIBLE_DEVICES']='0, 1, 2' # 程序可见的GPU
import torch
print(torch.cuda.device_count())  # 3  说明指令生效

总结

上述验证实验表明,如果想要os.environ['CUDA_VISIBLE_DEVICES']起作用,需将import torch放在指令os.environ['CUDA_VISIBLE_DEVICES']="x"后面

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

os.environ[‘CUDA_VISIBLE_DEVICES‘]指定GPU后,还是用的“0“卡 的相关文章

随机推荐

  • 实战DeviceIoControl 之五:列举已安装的存储设备

    Q 前几次我们讨论的都是设备名比较清楚的情况 有了设备名 路径 就可以直接调用CreateFile打开设备 进行它所支持的I O操作了 如果事先并不能确切知道设备名 如何去访问设备呢 A访问设备必须用设备句柄 而得到设备句柄必须知道设备路径
  • tf.add()不只是简单相加

    tf add 大多数用法都是 单个数字和单个数字的简单相加 例如 import tensorflow as tf x tf constant 2 y tf constant 1 sess tf Session print sess run
  • Python中的【if __name__=='__main__':】

    1 Java和C 的程序入口 Java的程序入口Main函数 public static void Main string args 方法体 C 的程序入口Main函数 public static void Main string args
  • 业务数据分析——同环比(待补全)

    1 解决的问题 企业对公司人员贡献 离职 入职 招聘 人力成本等的统计和发现 与之前特定时期的数据对比 直观的感受数值变化 各方面的发展情况 从而对企业结构和投入等作出调整 同比说明本期发展水平与去年同期发展水平对比的相对发展速度 环比说明
  • echarts 修改图片(画布)大小

    一 问题 echarts 官网有很多 examples 可以直接在上面修改成自己想要的样子 链接 https echarts apache org examples 但是我发现这个不能改变整个图片的大小 也就是下载之后的大小 有时候布局不是
  • 【python学习笔记】Python对经纬度处理

    说明 因为地球是球面 所以地球平面间的距离也得根据球面来计算 连个问题 两经纬度点之间的距离 根据一个给定经纬度的点 进行附近若干距离地点查询 两点之间的距离 根据经纬度计算距离 def distance lon1 lat1 lon2 la
  • FEC原理及其实现

    感谢原作者 http blog csdn net rootusers article details 49097257 视频会议中通常使用的FEC QOS技术 这方面的资料比较复杂和稀少 根据这么多年的工作经验 做一下分享 在IP视频通话中
  • 编码方式

    NRZ编码 NRZ 是最简单的串行编码技术 用两个电压来代表两个二进制数 如高电平表示 1 低电平表示 0 NRZI编码 NRZI 则是用电平的一次翻转来表示 1 与前一个 NRZI 电平相同的电平表示 0 曼彻斯特编码 曼侧斯特编码将一个
  • (10)QJ_黑电平&AWB&CCM校正步骤&raw数据抓取

    1 设备准备 待校正主控 SENSOR 镜头 镜头盖 可抓raw版本 2 环境准备 图像室灯箱环境 24色卡 照度计 3 说明书准备 HiISP 颜色调优说明 图像质量调试工具使用指南 4 工具准备 PQTOOL 版本对应 插件齐全 Ima
  • 多语言版本 OPENFILENAME过滤器设置问题

    正常的时候 打开并选择一个文件这样写代码 char szFileName MAX PATH 0 OPENFILENAME ofn memset szFileName 0 MAX PATH memset ofn 0 sizeof ofn of
  • Mol Cell Proteomics.

    大家好 本周分享的是发表在Molecular Cellular Proteomics 上的一篇关于蛋白质组学样本质谱分析前处理方法改进的文章 题目是Protein aggregation capture on microparticles
  • Android Studio代码没有颜色区分的两个原因

    使用一段 Android Studio Electric Eel 2022 1 1 Patch 1 版本一段时间后 发现里面的代码没有了颜色提示 经查找 有两个原因 1 勾选了power save mode 这个时候只要点击File找到Po
  • CDN内容分发网络架构与四大关键技术

    转自 http lylhelin iteye com blog 811523 随着宽带网络 和宽带流媒体应用 的兴起 CDN 通常被称为内容分发网络Content distribution network 有时也被称作内容传递网络Conte
  • 实用的vue插件大汇总

    Vue是一个构建数据驱动的 web 界面的渐进式框架 Vue js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件特别整理了常用的vue插件 来了个大汇总 方便查找使用 便于工作和学习 很全的vue插件汇总 赶紧收藏下
  • 判断点是否在多边形内部

    文章目录 1 使用matplotlib path库 2 使用shapely库 本文参考 文档1 文档2 有两种方法 将分别做出说明 1 使用matplotlib path库 步骤 创建多边形点 matplotlib path生成多边形路径
  • 内存优化-野指针优化

    空指针 有指向任何东 的指针 即 nil NULL 0 给空指针发送消息不会报错 野指针 C 语 声明 个指针变量 但是没有赋初始值 此时指针 指向 个垃圾值 即指向 块随机的内 存空间 OC语 指针所指的对象已经被释放 回收了 但是指针没
  • C++类和对象(三)之拷贝构造函数

    1 概念 构造函数 只有单个形参 该形参是对本类类型对象的引用 一般常用const修饰 在用已存在的类类型对象创建新对象时由编译器自动调用 2 特征 拷贝构造函数是构造函数的一个重载形式 拷贝构造函数的参数只有一个且必须使用引用传参 使用传
  • android多个跑马灯6,【Android】实现走马灯并可设置速度

    一 前言 使用TextView实现走马灯效果非常的简单 只需要在布局里添加一个如下的TextView android id id marquee android layout width match parent android layou
  • 三维模型3DTile格式轻量化压缩处理的数据质量提升方法分析

    三维模型3DTile格式轻量化压缩处理的数据质量提升方法分析 在处理三维模型3DTile格式的轻量化压缩时 如何在减少数据量的同时 保证或提升数据质量是一大挑战 以下为一些提升数据质量的方法分析 改进几何简化算法 在进行几何简化时 除了考虑
  • os.environ[‘CUDA_VISIBLE_DEVICES‘]指定GPU后,还是用的“0“卡

    背景 实验室服务器有多张显卡 但今天 0 卡显存已被占满 因此我在代码中添加os environ CUDA VISIBLE DEVICES 2 指定使用编号为 2 的显卡 显存够的前提下 但跑VGG16的时候却报错 经过调试发现os env