各位同学,最近在项目解惑过程中有许多同学因为电脑硬件GPU或tf版本问题遇到过此类问题。
问题报错
即在设置TensorFlow设置GPU运行时报错:list index out of range 。报错信息,见下图: 遇到此类问题比较多的主要是使用的TensorFlow2.X以上版本的项目如:
解决方案
在遇到此类问题时,主要可能原因是:
情况一:有GPU未设置对序号
GPU序号设置的不正确,每个同学电脑的GPU不一定是相同的,如博主的GPU为0,大家可以打开自己的任务管理器查看,如下: 如遇到此类问题我们先检查我们GPU是否可用:
print(tf.test.is_gpu_available())
如返回值为True 我们再查看GPU的序号,代码如下:
gpus = tf.config.experimental.list_physical_devices('GPU')
print(gpus)
此处我们根据返回的GPU序号对GPU进行设置,代码如下:
my_idx = 0
tf.config.experimental.set_virtual_device_configuration(gpus[my_idx ],[tf.config.experimental.VirtualDeviceConfiguration(memory_limit=gpu_memory)])
二、情况二:无GPU
在我们执行以下代码后:
print(tf.test.is_gpu_available())
如返回值为False ,可能我们没有GPU 或者没有配置正确CUDA 或CUDNN 环境,此时我们只能使用CPU 跑模型。 当然有GPU有余力的小伙伴还是百度搞通GPU运行,这里就不在赘述了,此类情况复杂需要多调试。
我们需要将系统环境设置为CPU进行运行,因此我们需要注释掉或删除以下代码,不然会报错:
gpus = tf.config.experimental.list_physical_devices('GPU')
tf.config.experimental.set_virtual_device_configuration(gpus[0],[tf.config.experimental.VirtualDeviceConfiguration(memory_limit=gpu_memory)])
print(tf.test.is_gpu_available())
删除上述代码后我们设置TensorFlow使用CPU进行运行,在要执行的Python文件首加上下面的代码即可:
import os
os.environ["CUDA_VISIBLE_DEVICES"]="-1"
至此我们整个代码可以正常运行了。
博主专注python、深度学习、机器学习相关毕设,点击头像关注博主,博主目前已经整理数十个常见的毕设,课程设计项目有兴趣的同学可以进主页进行浏览,下方附上博主的主页链接。
博主主页,点击关注博主,查看更多毕设相关资料!
|