tensorflow-gpu1.9.0 + win10 + python3.6 + CUDA9.0 + vs2017 部署指南
好像大家在windows上部署gpu版tensorflow都不太顺利,折腾了两个晚上,分享下自己的经验,希望对大家有所帮助。
有两点特别提一下:
1、安装前先确认要安装的版本组合,Python是3.x的,tensorflow选择的版本是否支持你的Python版本,gpu版需要安装的CUDA又是否跟tensorflow对应,以及vs的版本也要注意,版本对应关系很重要(说三遍的程度),尽量在官网看,如果因为墙的关系,起码也要翻几篇安装的博客看看,这里提供一个tensorflow官方的版本对应查询网址:
https://tensorflow.google.cn/install/source_windows
截至2018.11.28,对应关系是这样的:
其中 Compiler 和 Build tools是在新安装VS2017时一并装上的,cuDNN 和 CUDA是分别下载安装的。
2、安装前不妨多看几篇别人安装的文章,个人认为安装过程就不一定是按照官网的最好,还是因为墙的原因,有些安装方式需要确保联网情况,国内不一定可顺利进行,建议按照国内安装成功的文章的步骤做。搜索安装文章时“按时间排序”,找尽量近期的文章查阅,可以成功安装当前主流使用的版本。然后确定按某篇文章进行时,尽量在版本上跟作者的保持一致,否则还是容易出错。
接下来介绍我的安装过程,截至2018.11.28,Anaconda Navigator上默认安装的TensorFlow GPU版本是1.9,这是笔者选择版本时的考量,但实际TensorFlow在PyPI上已有1.12,据说支持CUDA9.2和Python3.7,但近期网上成功安装的案例太少于是没选择:
一、Python安装
Python安装使用的是anaconda套件,包含3.6版本的Python和数据科学常用的库,安装后IDE可使用内置的Spyder等,或者另外下载pycharm都行,一般直接在anaconda官网下载最新版即可,tensorflow基本都会跟得上更新,如果需要下载旧版可在国内的anaconda清华源下载,笔者用的Python3.6版本。
二、Visual Studio2017安装
Visual Studio的安装对于整个部署来说很重要,Visual Studio一般在微软官网下载即可,最大的问题是微软官网下载的都是最新版VS,而通常比tensorflow推荐的版本高,而我们就要在安装时勾选正确的工作负载。
如果是首次安装Visual Studio,建议勾选这三样(VS2017下可这样勾选):
1“Desktop development with C++”.
2 “Universal Windows platform development”
3 “.NET desktop development”.
无论安装哪个版本的Visual Studio,这样勾选的实际目的主要是需要安装以下几样东西:
1 、 C++的编译器,也就是CL.exe
2、 Win10 SDK(如果系统是Win10)
3、 vs2015工具集。vs2015工具集是版本对应里的Compiler要求的,就是工具集需要2015,只要安装的Visual Studio可勾选到对应版本工具集,Visual Studio本身版本是2017还是2015不重要。
4、版本对应图里的Build tools,同样是可勾选安装,笔者安装tensorflow1.9,对应的就是Cmake v3.6.3。
勾选时情况如下(这截图 “.NET桌面开发” 还没勾选实际上是需要的)
勾选后不要更改安装位置,就可以开始安装,安装过程中不要选择“安装完后自动运行”,可能会造成问题,安装完成即可关闭。
三、CUDA9.0安装
CUDA直接在NIVIDA官网下载即可,选择local版本,而不是联网版本。
以下是每个步骤需要注意的点:
1、安装时选择“自定义”,然后下一步有一个安装目录,那个安装目录是安装时临时建立的文件夹,安装程序整个退出后会自动删除,这个目录的路径要记下来,下面会用到。
2 、下一步,不要勾选Visual Studio Integration(也可以试试勾选后能否顺利安装,若可以则跳过第3步,不行的话退出安装程序再来一遍)
3、安装完成,但此时不要退出安装程序,进入之前记下的临时建立文件夹的路径,在该临时文件夹下进入以下路径:
CUDAVisualStudioIntegration\extras\visual_studio_integration\MSBuildExtensions
进入后看见有四个文件,将这四个文件拷贝到Visual Studio的对应目录下,参考路径:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\BuildCustomizations
4、退出安装程序,打开cmd然后输入“nvcc -V”,如果安装正确的话会看到CUDA版本信息。
5、确认环境变量,确认CUDA_PATH和CUDA_PATH_V9.0(如果你是安装CUDA9.0)已经存在,并确认以下四个环境变量已添加,注意换成自己的安装路径:
四、cuDNN7.4安装
在官网下载CUDNN,需要先注册账号,选择跟CUDA版本对应的cuDNN版本。
下载后解压压缩包,分别将文件夹下三个文件拷贝到CUDA目录下相应同名文件夹内:
Copy \cuda\bin\cudnn64_7.dll to C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin.
Copy \cuda\ include\cudnn.h to C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\include.
Copy \cuda\lib\x64\cudnn.lib to C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\lib\x64.
bin对应bin,include对应include,x64对应x64
五、验证CUDA安装是否成功
如果根据官方文档给的位置,应该在此位置下找到deviceQuery.exe文件:
C:\ProgramData\NVIDIA Corporation\CUDA Samples\v10.0\bin\win64\Release
但实际可能没有,那么可尝试在以下位置寻找:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\extras\demo_suite
找到deviceQuery.exe和bandwidthTest.exe,注意需要在cmd里运行,先运行deviceQuery.exe再运行bandwidthTest.exe,留意运行结果的最后是否result = PASS,如果两个文件都是,那么说明CUDA能够和底层硬件正常沟通。
六、安装TensorFlow1.9 GPU版
笔者是使用anaconda的navigator安装的,用命令行conda安装或者pip3安装都可以,注意安装前升级最新版pip
使用如下命令行升级最新版pip:
python -m pip install --upgrade pip
但conda和pip3都会因墙造成慢,同样可以在网上搜索利用清华源的镜像。
七、验证TensorFlow是否可调用GPU
此处网上测试代码很多,可自行搜索。
总结下来,使用GPU版的TensorFlow只是比普通Python库多安装VS2017和CUDA两个软件(cuDNN只需要下载解压拷贝下文件),笔者综合了几篇看过的文章,才避免很多安装的坑,但本人也有理解不到位的地方,望了解情况的各位留言评论多多指教。随着TensorFlow不断更新,安装方法会不同,有两点却是很好的经验:1、TensorFlow及其依赖软件的版本对应一定是很严格的,版本对应看官网一定没错;2、多看几篇近期成功安装的文章,不同的版本坑可能不同,先看先了解后动手,避免无畏的重复劳动。
版本看官网,步骤翻博客,祝安装顺利。