IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> TensorFlow1.8.0+cuda9.0+cudnn7.1.2 -> 正文阅读

[Python知识库]TensorFlow1.8.0+cuda9.0+cudnn7.1.2

记录一个折磨我三天的小(da)问题
很早以前就被cuda、cudnn、显卡驱动、TensorFlow、pytorch等等的版本之类的问题困扰,不同的代码可能会需要不同版本的包,直到有一天我使用了anaconda(见Ubuntu安装Anaconda),按不同代码的版本需求安装不同的包(见cuda、cudnn、pytorch、tensorflow安装)。平静了很久很久以后,又出现了一个新的问题。
有个代码之前能够成功运行,虽然这个环境的cuda、cudnn、TensorFlow版本一直都有问题。下面我记录一下我几个环境的包的版本。
环境A:TensorFlow-gpu1.7.0+cuda8.0+cudnn7.0.5
环境B:TensorFlow-gpu1.7.0+cuda8.0+cudnn7.0.5
环境C:TensorFlow-gpu1.7.0+cuda9.0+cudnn7.6.5
实际上环境A和环境B是一致的,根据TensorFlow、cuda、cudnn的版本对应关系(见cuda、cudnn、pytorch、tensorflow安装)TensorFlow1.7.0配套的应该为cuda9和cudnn7,环境C符合这个规则。
使用环境C运行代码报错:

E tensorflow/stream_executor/cuda/cuda_dnn.cc:396] Loaded runtime CuDNN library: 7650 (compatibility version 7600) but source was compiled with 7005 (compatibility version 7000). 
If using a binary install, upgrade your CuDNN library to match.
If building from sources, make sure the library loaded at runtime matches a compatible version specified during compile configuration.

这个TensorFlow1.7.0需要的cudnn7的版本为cudnn7.0的,7.6不适用,于是我就装上cudnn7.0,代码如下:

 conda install cudnn=7.0.5 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/linux-64/

但是conda要强行将cuda9.0换成cuda8.0:

The following NEW packages will be INSTALLED:     
cudnn:           7.0.5-cuda8.0_0     https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main    

The following packages will be DOWNGRADED:
cudatoolkit:     9.0-h13b8566_0                                                              --> 8.0-3
Proceed ([y]/n)?

要装cudnn7.0只得选y,这样cuda就变成9.0了,无奈,就这样得到了环境A和B。
虽然这个版本对应有问题,但是可以运行。而且非常奇怪,即使分配了gpu,环境B只能用cpu运行tensorflow。而环境A只能用gpu运行tensorflow,即使我指定用cpu运行,也要找gpu。(确定两个环境的TensorFlow-gpu版本相同)
就这样我一直睁一只眼闭一只眼,没有管他们,直到昨天,环境A突然报错:

ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory

好家伙,又突然需要cuda9.0,就像一头沉睡的狮子,小丑在他身上跳了几个月的舞,也不知道被什么突然惊醒了。同样的代码,同样的环境,只隔一天就完全不能跑了。
cuda9.0和cudnn7.0.5又不能在conda环境中同时存在(不在conda环境中应该是可以共存,但是这样安装起来非常不方便也不便于管理),来回装了几遍cuda9.0和cudnn7.0和tensorflow1.7,都无济于事。
将tensorflow退回1.4,则报错:

ImportError: libcublas.so.6.0: cannot open shared object file: No such file or directory

cudnn7.1是conda环境中和cuda9.0兼容的最低版本,但是使用cudnn7.1也报错:

E tensorflow/stream_executor/cuda/cuda_dnn.cc:396] Loaded runtime CuDNN library: 7102(compatibility version 7100) but source was compiled with 7005 (compatibility version 7000). 
If using a binary install, upgrade your CuDNN library to match.
If building from sources, make sure the library loaded at runtime matches a compatible version specified during compile configuration.

突然注意到tensorflow1.5-1.12这几个版本对应的都是cuda9和cudnn7,想到尝试tensorflow-gpu-1.8:

pip install tensorflow-gpu==1.8.0 -i https://pypi.tuna.tsinghua.edu.cn/simple

成功,与cudnn7.1完美兼容,问题解决。
最终成功的环境:TensorFlow1.8.0+cuda9.0+cudnn7.1.2

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-07-27 16:10:51  更:2021-07-27 16:13:08 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/7 15:25:00-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码