网上大多的教程是说tensorflow的版本过高,或者说cuda和cudnn的版本不对,需要降级,但这样会很麻烦!!!
以下值得推荐!!!
解决方法一:在代码前加上下面的代码
from tensorflow.compat.v1 import ConfigProto
from tensorflow.compat.v1 import InteractiveSession
config = ConfigProto()
config.gpu_options.allow_growth = True
session = InteractiveSession(config=config)
解决方法二:添加下面两行
import os
os.environ['CUDA_VISIBLE_DEVICES'] = '/gpu:0'
或者
添加
import os
os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"
os.environ['CUDA_VISIBLE_DEVICES'] = "0,1"//选择哪一块gpu,如果是-1,就是调用cpu
config = tf.ConfigProto()//对session进行参数配置
config.allow_soft_placement=True : 如果你指定的设备不存在,允许TF自动分配设备
config.gpu_options.per_process_gpu_memory_fraction=0.7//分配百分之七十的显存给程序使用,避免内存溢出,可以自己调整
config.gpu_options.allow_growth = True//按需分配显存,这个比较重要
session = tf.Session(config=config)
解决方法三:TensorFlow GPU版出现ResourceExhaustedError:OOM错误的问题
一是、将图片尺寸改小,小到占用的内存比显存。
二是、不使用GPU进行预测,只使用CPU预测,因为一般CPU内存要大于显存的。但装的又是GPU版的TensorFlow,所以需要在预测程序进行更改。
程序在前两行加入下面代码:
import
os
os.environ[
"CUDA_VISIBLE_DEVICES"
]
=
""
引号里填的是GPU的序号,不填的时候代表不使用GPU。
意识很重要,你有多努力,就有多轻松。