1.问题描述及解决
在运行tensorflow-gpu的过程中出现了这一问题。网络查询解决办法,说法不一,即引起这种错误有多种可能性。这种错误为cudnn资源分配出现问题,以下列举常见几种报错可能性和解决办法:
(a)多种软件环境同时import tensorflow。例如:Pycharm和jupyter notebook同时导入tensorflow包,则会导致报错。此时,只要关闭多种软件环境,留下正在调试的环境即可。
(b)显卡的容量过低,而batch_size过大,无法一次性处理过量的数据。调低batch_size即可。
(c)从问题的源头出发,限制GPU的资源使用情况。可以采用以下方案:
# 第一种 动态申请内存
config = tf.ConfigProto()
config.gpu_options.allow_growth = True
session = tf.Session(config=config)
# 第二种 限制GPU使用率
config = tf.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0.5 #占用50%显存
session = tf.Session(config=config)
# 第三种 选用不同的GPU
os.environ['CUDA_VISIBLE_DEVICES'] = '0' # GPU 0
os.environ['CUDA_VISIBLE_DEVICES'] = '0,1' # GPU 0,1