# tensorflow 环境搭建
# 前言
平常用习惯 pytorch 的我,体验 pytorch 一行命令安装整体环境实在舒服,因为 pytorch 会把 cudatoolkit、cudnn 等整合在环境内部了,即使你桌面虚拟环境原本没有这两者,也是不会影响安装使用的。
最近,因为一些原因也去重新学习安装 tensorflow 的过程,原本本三的时候去弄过这个东西,但是当时不清楚里面的一些逻辑,因此也是心力憔悴才弄好一个版本都不知道是什么的 tensorflow,以至后来又弄过一次,终于清楚了一些。
** 目前遇到的问题是,** 服务器在运行代码时会报‘failed to runcuBLAS routine: CUBLAS_STATUS_EXECUTION_FAILED’ 的错误。不知道有多少小伙伴遇到过,我可能是第一次遇到,在网上找到个人认为比较靠谱的解决方法是:
https://github.com/qqwweee/keras-yolo3/issues/332(其解决方法是将 tensorflow 版本从 1.13 升级到 1.14,CUDA 从 9.0 升级到 10.0,可是我原本就是升级之后的啊,另外 cudnn 版本也对应 7.6.3,这里我索性也尝试了一下,将整个 CUDA 卸载,并且重新安装,再将 cudnn 文件放到对应 CUDA 的三个文件夹中,结果还是失败了,还是报这个错误,因为前面我已经尝试了很多方法了,比如:重装 CUDA、重装 GPU drivers;结果都是一样的,还是报这个错误,我有点怀疑是不是机器一些硬件性能不足导致的了;后来通过将其放到另一台服务器上的 tensorflow1.14 版本的环境中运行,发现是可以运行的!然后就看另一台服务器的详细环境是 tensorflow1.14、cudatoolkit=10.1、cudnn=7.6.5 这里你会发现与官网给的版本是不对应的 “在 Windows 环境中从源代码构建 | TensorFlow (google.cn)” 其中的 win 和 linux 版本对应关系是一样的,至于 CUDA 版本与 cudatoolkit 之间的关系,我也说不清楚,小伙伴可以自行查询。)
原本服务器环境
a-10 显卡、win10、anaconda2021.3、pycharm2021.3、tensorflow1.14、CUDA=10.0、cudnn=7.4.2、python3.6
后续测试成功的服务器环境
RTX Titan、ubuntu16.04、anaconda、pycharm、tensorflow1.14、cudatoolkit=10.1.243、cudnn=7.6.5、python3.6.10、
# 安装 tensorflow 环境
这里介绍两种安装 tensorflow 环境的方法,只看安装部分的可以直接看这里:
1,常用的先装本地 GPU drivers、CUDA、cudnn、再装 tensorflow
2,在 anaconda 环境下直接安装 cudatoolkit、cudnn、以及 tensorflow
区别就是,本地环境跟 anaconda 虚拟环境管理,当然本地 CUDA 会给你装很多其他子驱动,可能你想进行多 tensorflow 版本维护的时候不太方便进行更改。
接下来各个介绍每个安装流程,以 win10 环境为例(linux 环境一致,只不过用命令行进行修改环境变量)
# 1,本地 GPU 驱动、CUDA、cudnn,再装 tensorflow 的方法
这里先说明一下,tensorflow 与前面本地环境并没有先后的安装顺序要求,因此你现在已经有了 tensorflow 环境也不需要卸载重装,他们之间的依赖关系只要有即可。(安装顺序以 a、b、c 形式顺序进行)
(说实话,网上很多这个方法,这里不想再详细赘述了,真需要的可以自行搜索,后面直接简述了)
# 下载软件网站
所有下载网站都可以通过官方给出的地址进行下载
官方参考(这里对应顺序 1,2,4):GPU 支持 | TensorFlow (google.cn)
- NVIDIA® GPU 驱动程序 - CUDA® 11.2 要求 450.80.02 或更高版本。
- CUDA® 工具包:TensorFlow 支持 CUDA® 11.2(TensorFlow 2.5.0 及更高版本)
- CUDA® 工具包附带的 CUPTI。
- cuDNN SDK 8.1.0 cuDNN 版本。
- (可选)TensorRT 6.0,可缩短用某些模型进行推断的延迟时间并提高吞吐量。
# a,GPU drivers
这个没有要求,版本越新越好,估计大家都是最新版的(大概率是不需要下载的,因为重装可能要卸载一些 nvidia 程序,详细自行查询),可以通过右下角 nvidia 控制面板,再点左下角系统信息查看,你会发现它已经自带了 CUDA 的最近环境,这个与你要运行 tensorflow 的 CUDA 是独立的,并不会影响后者。
这个成功了,可以运行 nvidia-smi 命令,进行测试。
# b,CUDA
注意没有 visual stdio 的,就不要安装那个包了(安装了应该也不影响);
physiX,上一步 GPU drivers 大概率是比当前 CUDA 自带版本要高的,如果高就不要安装。
# c,cuDNN
就把里面的三个文件夹‘include’, ‘bin’, ‘lib’ 与本地 CUDA’C:Program Files/ NVIDIA GPU Computing Toolkit/ CUDA_v 对应版本 /‘合并(直接拉进去,并没有覆盖,如果不放心,可以先备份)
# d,tensorflow
最后用 conda 命令安装 tensorflow 就可以了,我这里是
conda install tensorflow-gpu=1.14.0
# 2,在 anaconda 环境下直接安装 cudatoolkit、cudnn、以及 tensorflow
参考:还在系统中安装 CUDA?Anaconda 虚拟环境中安装 CUDA 配合 Tensorflow-gpu - 多版本 - 简书 (jianshu.com)
(win10) anaconda 虚拟环境中安装特定版本 cuda+tensorflow+pytorch+pycharm_Nhl_1355443593 的博客 - CSDN 博客
需要注意的是这个有安装顺序要求,先装 cudatoolkit、再装 cudnn、再 tensorflow-gpu,原因大概是因为之间的依赖关系吧,比如你先装了 tensorflow,再装 cudatoolkit,它可能会告诉你 cudatoolkit 的版本不对应的问题。
这里附上个人的安装顺序
# a,cudatoolkit
conda install cudatoolkit=10.1
# b,cudnn
conda install cudnn=7.6.5
# c,tensorflow-gpu
pip install numpy==1.18.5
(第二篇参考文章说是要 numpy 环境对应,也就对应到成功环境的版本了,个人认为应该不需要,直接安装就好,不放心就查一下吧)
conda install tensorflow-gpu=1.14.0
# 报错处理
1,版本提示不匹配
很简单三条命令结束,测试一下吧(逐条运行即可),
import tensorflow as tf
tf.__version__
tf.test.is_gpu_available()
# 尾言
其实,没那么难,但有时候报错,也没有办法,尤其是那种没怎么见过的,然后你也不得不对应 tensorflow 版本的时候,这里个人是试了很久很久,大概一天半的时间,然后写了这篇文章,希望对遇坑的朋友和未来需要的自己提供帮助。
2021.12.21. 冬至快乐!吃饺子喽!🤣