由于特殊原因不能连网,需要搭建一个离线的tensorflow-gpu的开发环境,折腾了几天,分享给大家,希望少走弯路。
我的配置python3.6+pycharm3.5+anaconda3-5.2.0+cuda9.0+cudnn7.5.1
一、python安装比较简单,不再叙述,Anaconda, Pycharm安装请参考下面博客,写的很好。
https://www.jianshu.com/p/eaee1fadc1e9
二、准备工作
下面是重要信息,一定要细读,会减少错误:
需要验证信息和准备文件:
(1)首先电脑必须有一块Nvidia支持显卡,可对照看是否支持:https://developer.nvidia.com/cuda-gpus
(2)验证自己电脑自带驱动支持的CUDA版本。https://jingyan.baidu.com/article/d169e1861b759f436611d882.html
如果找不到Nvidia控制面板或者打不开,请自行搜索。
如果需要卸载重装驱动,请卸载后使用该工具清理,否则后续安装cuda时会报错。https://blog.csdn.net/bingo_6/article/details/80114440
(3)下载对应的CUDA版本,在此强调,不是必须要完全对应,不隔代不大即可,最好对应。https://developer.nvidia.com/cuda-toolkit-archive
(4)下载和CUDA对应的cudnn,必须和CUDA版本对应,需要注册。https://developer.nvidia.com/rdp/cudnn-archive
(5)下载tensorflow-gpu,打开后面链接,拉到最后,找到对应cuda, cudnn, python的版本。https://tensorflow.google.cn/install/source_windows
下载地址:https://pypi.org/project/tensorflow-gpu/1.4.0/#files
(6)tensorboard等各种安装包(包含python):可参考博客对应部分->https://www.twblogs.net/a/5bb2313d2b71770e645dd114
下载地址清华镜像,网络好的建议去官网:https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/
(7)可查看CUDA和驱动的版本相互关系,仅供参考,不必严格执行。https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html
(8)下载Microsoft Visual C++ Redistributable for Visual Studio 2017,拉到后面链接页面最下端“可再发行组件和生成工具”,https://visualstudio.microsoft.com/zh-hans/vs/older-downloads/
特别强调,有很多文章说必须下载visual studio,其实不必,特别对于离线来说,安装visual studio简直就是灾难。这里只需要安装Visual C++ Redistributable 组件即可,因为编译cuda需要这个vc++组件。cuda9以上用2017,以下用2015版本。
三、按顺序安装
1. python,pycharm,anaconda
2. 安装Microsoft Visual C++ Redistributable
3. 安装驱动(如果需要的话),安装前一定要清理干净。卸载所有Nvidia软件->删除C:ProgramFilesNVIDIA GPU Computing Toolkit和C:ProgramFilesNVIDIA Corporation 和C:ProgramDataNVIDIA Corporation文件夹->用该工具清理后重启->安装驱动。https://blog.csdn.net/bingo_6/article/details/80114440
4. 安装CUDA,安装时建议选择自定义,而且只勾选CUDA一个大复选框,其它不选,特别是driver,它会卸载你现有的驱动,重新安装新的驱动,可能会有问题。补丁依次安装即可。
安装完检测:
cmd打开命令行模式,输入:nvcc -V ,会输出 cuda版本号等信息。
编译文件验证,无需visual studio,都出现 Result=Pass 即可。可参考上半部分:https://blog.csdn.net/u013165921/article/details/77891913
配置环境变量,安装完会自动添加环境变量,另外我们需手动添加到path变量:C:Program FilesNVIDIA GPU Computing ToolkitCUDAv9.0in, C:Program FilesNVIDIA GPU Computing ToolkitCUDAv9.0inlibx64, C:Program FilesNVIDIA GPU Computing ToolkitCUDAv9.0lib, C:Program FilesNVIDIA GPU Computing ToolkitCUDAv9.0libnvvp, C:Program FilesNVIDIA GPU Computing ToolkitCUDAv9.0extrasCUPTIlibx64。
5. 安装cudnn,这个主要配置文件和配置环境。
解压缩我们下载的CuDnn文件,得到3个文件夹:bin, include, lib。将这个三个文件夹下对应的文件复制到“C:ProgramFilesNVIDIA GPU Computing Toolkitv9.0”对应文件夹下。
6. 安装tensorflow-gpu, 要选择下载对应的版本。这里麻烦的是需要很多依赖安装包,在第二部分6里面可参考。
可提前下载好各种安装包,或者每操作一步会看到提示需要新的依赖包,然后再去下载再pip安装,都很麻烦。或者在一台连网的配置相似的电脑上面先装一遍,然后把安装包copy到离线电脑上,不知有无问题,简便但有风险。
安装完cmd打开命令行,输入python,然后import tensorflow as tf, sess = tf.Session(),看有无报错,能输出GPU显卡信息算成功。
四、报错
如果你严格按照上面的步骤操作,而且版本对应和环境配置都没问题,一般不会报错。
1. 安装CUDA快到最后时报“NVIDIA Install Application已停止工作”
该问题为驱动没有安装成功原因,未清理干净,解决可参考第三部分第3条操作。
2. import tensorflow as tf 时报“ImportError: DLL load failed: 找不到指定的模块”
这个问题主要是缺少动态链接库.dll,解决方法:做好TensorFlow-gpu和cuda/cudnn的版本匹配,然后安装相应的Visual C++ 库运行时组件就可以了。
Visual C++ 库运行时组件一定要在安装CUDA前安装,仔细检查TensorFlow-gpu和cuda/cudnn的版本匹配问题。如果要想知道缺了哪些.dll文件,可参考: https://blog.csdn.net/happy_hui520/article/details/94548768