Failed to get convolution algorithm. This is probably because cuDNN failed to initialize

需要注意的几点:

  1. 检查环境配置问题,tensorflow,cuda,cudnn版本要按照官网的要求所对应
    官网版本对应要求。

查看CUDA版本cat /usr/local/cuda/version.tst
查看cuDNN版本cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
cuDNN安装:(官网下载安装包,需要注册)

cp cudnn-10.0-linux-x64-v7.4.2.24.solitairetheme8 cudnn-10.0-linux-x64-v7.4.2.24.tgz
sudo tar -xzf cudnn-10.0-linux-x64-v7.4.2.24.tgz -C /usr/local 
  1. tensorflow的CPU版本和tensorflow的GPU版本不要同时存在,可将CPU版本的卸载pip uninstall tensorflow,在安装GPU版本pip install tensorflow-gpu==版本号
  2. 尝试重装tensorflow-gpu,不要卸载,直接重装。
  3. 有其他博客提到,linux下的jupyter可以试试restart kernel。
  4. 运行的代码里是否使用int型的数据,gpu支持float32类型的数据,且reshape等操作GPU不加速,sum操作GPU比CPU慢
  5. 显存问题。可以使用nvidia-smi查看GPU状态。(topps -ef可查看CPU状态)
import os
os.environ['CUDA_VISIBLE_DEVICES']='0'
config = tf.ConfigProto()
config.gpu_option.per_process_gpu_memory_fraction=0.9 #90%显存
或把第三句替换为:config.gpu_options.allow_growth=True #GPU按需求增长
在创建会话时添加:
sess = tf.Session(config=config)

如果还存在问题的话,建议将每次处理的数据减少,比如每次迭代时将数据分几次进行处理。一次性处理的数据量太大,也会造成错误。

你可能感兴趣的:(Tensorflow)