这个问题目前可能是由两个方面造成的:
GPU显存不够;CUDNN版本过低
先检查第一个方面:
处理GPU显存不够的问题
系统环境:Ubuntu18.04 1.监视GPU显存的占用率
watch -n 0.1 nvidia-smi
然后允许程序监控GPU显存占有率,如果迅速上升,接近上限后程序出错,那么肯定是显存不够。
2.在tensorflow程序中动态分配显存
from tensorflow import GPUOptions
from tensorflow import ConfigProto
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)
参考博客:https://blog.csdn.net/tsyccnh/article/details/102938368
CUDNN版本过低
解决完显存溢出问题后,又再次允许这个程序,显存没有溢出,程序依旧报错,这可能是cudnn版本过低的问题。 重新下载高版本的cudnn即可。 可参考博客:https://blog.csdn.net/sazass/article/details/86755077