list index out of range:在TensorFlow设置GPU运行时报错

各位同学,最近在项目解惑过程中有许多同学因为电脑硬件GPU或tf版本问题遇到过此类问题。

问题报错

即在设置TensorFlow设置GPU运行时报错:list index out of range。报错信息,见下图:
报错信息
遇到此类问题比较多的主要是使用的TensorFlow2.X以上版本的项目如:

解决方案

在遇到此类问题时,主要可能原因是:

情况一:有GPU未设置对序号

GPU序号设置的不正确,每个同学电脑的GPU不一定是相同的,如博主的GPU为0,大家可以打开自己的任务管理器查看,如下:
GPU序号
如遇到此类问题我们先检查我们GPU是否可用:

# 查看GPU是否可用
print(tf.test.is_gpu_available())

如返回值为True我们再查看GPU的序号,代码如下:

# 获取可用GPU
gpus = tf.config.experimental.list_physical_devices('GPU')
print(gpus)

此处我们根据返回的GPU序号对GPU进行设置,代码如下:

# 此处设置GPU序号
my_idx = 0
# 对需要进行限制的GPU进行设置
tf.config.experimental.set_virtual_device_configuration(gpus[my_idx ],[tf.config.experimental.VirtualDeviceConfiguration(memory_limit=gpu_memory)])

二、情况二:无GPU

在我们执行以下代码后:

# 查看GPU是否可用
print(tf.test.is_gpu_available())

如返回值为False,可能我们没有GPU或者没有配置正确CUDACUDNN环境,此时我们只能使用CPU跑模型。
当然有GPU有余力的小伙伴还是百度搞通GPU运行,这里就不在赘述了,此类情况复杂需要多调试。

我们需要将系统环境设置为CPU进行运行,因此我们需要注释掉或删除以下代码,不然会报错:

#-------------------设置显存占用率-----------------
gpus = tf.config.experimental.list_physical_devices('GPU')
# 对需要进行限制的GPU进行设置
tf.config.experimental.set_virtual_device_configuration(gpus[0],[tf.config.experimental.VirtualDeviceConfiguration(memory_limit=gpu_memory)])
# 查看GPU是否可用
print(tf.test.is_gpu_available())

删除上述代码后我们设置TensorFlow使用CPU进行运行,在要执行的Python文件首加上下面的代码即可:

import os
os.environ["CUDA_VISIBLE_DEVICES"]="-1"

至此我们整个代码可以正常运行了。

博主专注python、深度学习、机器学习相关毕设,点击头像关注博主,博主目前已经整理数十个常见的毕设,课程设计项目有兴趣的同学可以进主页进行浏览,下方附上博主的主页链接。

博主主页,点击关注博主,查看更多毕设相关资料!

  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大雾的小屋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值