利用conda安装tensorflow

TensorFlow框架This is probably because cuDNN failed to initialize 解决对策整理和验证

第一段代码 2020-03-24 20:52:36 816 收藏
分类专栏: 深度学习笔记
版权
Failed to get convolution algorithm. This is probably because cuDNN failed to initialize, so try looking to see if a warning log message was printed above.

写在前面:
环境:Tensorflow2.0 + Python3.6

当读者看到此问题时,一定大概率遇到上述报错的信息,首先出现这个问题很明显,就cuDNN出问题,大概率不是你的tensorflow代码写的问题,其实还可以精确点说就是我们电脑机器出问题了。
遇到这个问题,笔者也去找了很多博客,试了一些方法,总结一下出现这个问题的可能有:
1)很多博客说说cuda和cudnn不比配,或者tensorflow版本太高。
-->如果你之前就成功跑过简单的tensorflow训练,我觉得可以忽略这个吧。但是安装cuda和cudnn版本不匹配是出现问题,匹对版本可看:深度学习1-深度学习环境安装,有这一篇就够了!Anaconda-Python+Tensorflow2.0-GPU+Keras+Pycharm

2)电脑GPU性能太低,内存不够支持模型训练(就是显卡爆)。大概是这种情况!!!这个也要分两种:
一是电脑性能还可以,只是当前训练模型太复杂,导致显卡内存耗尽了;
二是电脑性能不太好,小型模型训练就爆炸了,这种性能低的机器就有处理是否开启GPU训练的设置了

------------------------2020.4.20-----------

3) 感觉主要还是cuda和cudnn依赖环境没有做好,很多网络上的方法除了强制使用cpu外,其他的一些方法,比如按需分配GPU等策略,我都尝试过,反正我这里试过的都是不成功,看了很多定位,应该cuda和cudnn不匹配导致,那么就没有什么方法终极解决,或者我们在安装tensorflow时,自动给我们安装好匹配的cuda和cudnn么?

答案是有的,那就是直接通过anaconda 安装tensorflow,它在安装的时候,会自动给我们安装相对应的cuda+cudnn,完全不用我们去担心匹配问题,很香,至少通过这个方法我的gpu正常运行了

conda install tensorflow-gpu==2.0
详细可以查看我这篇安装博文,Tensorflow2.0-GPU深度学习环境安装,踩坑后整理一步到位安装总结篇.Win10+Anaconda+Tensorflow2.0-GPU+Pycharm,强烈建议Anaconda很香

 

---------------------------2020.4.20---------------------------------

对策:
一是电脑性能还可以,只是当前训练模型太复杂,导致显卡内存耗尽了:
解决方法:让模型按需取用GPU
# 防止Tensorflow运行GPU内存不足造成错误
from tensorflow.compat.v1 import ConfigProto
from tensorflow.compat.v1 import InteractiveSession
os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"
os.environ['CUDA_VISIBLE_DEVICES'] = "0,1"  #选择哪一块gpu
config = ConfigProto()
config.allow_soft_placement=True #如果你指定的设备不存在,允许TF自动分配设备
config.gpu_options.per_process_gpu_memory_fraction=0.7  #分配百分之七十的显存给程序使用,避免内存溢出,可以自己调整
config.gpu_options.allow_growth = True   #按需分配显存,这个比较重要
session = InteractiveSession(config=config)

二是电脑性能不太好,小型模型训练就爆炸了,这种性能低的机器就有处理是否开启GPU训练的设置了:
解决方法:直接使用CPU计算好了,不要开启GPU了,笔者就是这么悲催的电脑,应了那句深度学习训练前置比拼就是比电脑!!

os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"
os.environ['CUDA_VISIBLE_DEVICES'] = "-1"  #选择哪一块gpu--->值为-1就是说不用GPU了,直接使用CPU计算
————————————————
版权声明:本文为CSDN博主「第一段代码」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/godot06/article/details/105080851

 

 

解决Could not load dynamic library 'libcudart.so.10.0'; dlerror: libcudart.so.10.0: cannot open ...

颜 2019-11-19 17:01:37 8026 收藏 7
分类专栏: tensorflow
版权
安装TensorFlow2.0 GPU版本后,检测是否支持GPU时tf.test.is_gpu_available()出现以下信息:

2019-11-19 02:52:53.934654: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'libcudart.so.10.0'; dlerror: libcudart.so.10.0: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /usr/local/cuda/lib64:
2019-11-19 02:52:53.934856: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'libcublas.so.10.0'; dlerror: libcublas.so.10.0: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /usr/local/cuda/lib64:
2019-11-19 02:52:53.935050: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'libcufft.so.10.0'; dlerror: libcufft.so.10.0: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /usr/local/cuda/lib64:

Out[3]: False
1
2
3
4
5
原因:TensorFlow2.0现在支持CUDA10.0,还不支持CUDA10.1,而我的Ubuntu上安装的是CUDA10.1(也正确安装了cuDNN)。现在只需要安装一个CUDA10.1就行。可以仿照安装pytorch时就自动安装cudatoolkit 10.1.243,无需再下载CUDA10.0的包,在Ubuntu上重新安装CUDA10.0,而是直接用conda安装cudatoolkit。因为我的TensorFlow是安装到独立的虚拟环境中的,故执行以下代码即可安装:

(tensorflow2) usr@ubuntu16:~$ conda install cudatoolkit=10.0
1
再conda list一下,发现cudatoolkit=10.0已安装到当前环境下:

测试一下:

In [1]: import tensorflow as tf
In [2]: tf.test.is_gpu_available()
Out[2]: True
————————————————
版权声明:本文为CSDN博主「颜」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_28193019/article/details/103146116

 

tensorflow的CUDA driver version is insufficient for CUDA runtime version 问题解决方案

li57681522 2018-09-07 10:25:26 37106 收藏 27
分类专栏: tensorflow
版权
CUDA driver version is insufficient for CUDA runtime version 翻译过来就是CUDA的驱动程序版本跟CUDA的运行时版本不匹配!

1.CUDA driver version(驱动版本):就是NVIDIA GPU的驱动程序版本;

查看命令:nvidia-smi

 

我们看到我的GPU的驱动程序版本是:384.81

2.CUDA runtime version(运行时版本):是在python中安装的cudatoolkit和cudnn程序包的版本

查看命令:pip list

 

python安装的cudatoolkit和cudnn程序包版本是:9.2

3.nvidia 驱动和cuda runtime 版本对应关系

运行时版本   驱动版本
CUDA 9.1     387.xx 
CUDA 9.0     384.xx 
CUDA 8.0     375.xx (GA2) 
CUDA 8.0     367.4x 
CUDA 7.5     352.xx 
CUDA 7.0     346.xx 
CUDA 6.5     340.xx 
CUDA 6.0     331.xx 
CUDA 5.5     319.xx 
CUDA 5.0     304.xx 
CUDA 4.2     295.41 
CUDA 4.1     285.05.33 
CUDA 4.0     270.41.19 
CUDA 3.2     260.19.26 
CUDA 3.1     256.40 
CUDA 3.0     195.36.15

4.解决方案

从驱动和运行时的版本对应关系来看,版本为384.81的驱动程序 对应的 运行时版本是9.0,也就是说我们在python中安装cudatoolkit和cudnn程序包版本9.2是过高了。

因为系统中依赖GPU驱动的程序比较多,一般出现这种情况,我们都是更改cudatoolkit和cudnn程序包的版本。

于是,先卸载python中安装cudatoolkit和cudnn程序包:pip uninstall cudnn ; pip uninstall cudatoolkit

然后安装对应版本的cudatoolkit和cudnn程序包:pip install cudatoolkit=9.0;pip install cudnn

 

5.为什么会出现这种情况呢:

一般出现这种情况是因为在python中安装tensorflow的gpu版本时,pip会检查tensorflow依赖的其他的包,如果依赖的包没有安装,则会先安装最新版本的依赖包。这时候tensorflow的gpu版本依赖cudatoolkit和cudnn程序包,pip就会安装最新版本的cudatoolkit和cudnn程序包,最终导致gpu驱动版本和cuda运行时版本不匹配。
————————————————
版权声明:本文为CSDN博主「li57681522」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/li57681522/article/details/82491617

posted on 2020-07-18 18:51  Maddock  阅读(2378)  评论(0编辑  收藏  举报

导航