最近安装tensorflow-gpu上碰到了很多坑,先总结如下:
1,截止到2018年12月28日,tensorflow 1.12版本(包括更低的版本)还不支持CUDA 10.0 + CUDNN 7.4. 请务必安装CUDA 9.0 + CUDNN 7.3. 请务必安装CUDA 9.0 + CUDNN 7.3。 由于tensorflow的官方网站上不去,所以无法找到最新的匹配表(在网络上搜索了,也没有找到最新的),我在CUDA 10.0 + CUDNN 7.4上折腾了一天,还是没有搞定tensorflow。最后还是去查找tensorflow的库依赖表,才发现仅支持CUDA 9.0. 更奇怪的是,tensorflow也不直接告诉你缺哪些DLL库。希望tensorflow尽快支持CUDA 10.0.
2,首先要安装visual studio community,目前最新的版本是2017. 这个直接在微软官网上下载就可以了,绑定自己的账号就随便用,否则只能用1个月。
注意:CUDA 9.0 + CUDNN 7.3还不支持VS的2017版本的编译器(141),仅支持2015版本的编译器(140). 所以在安装visual studio community 2017的时候一定要勾选 “适用于桌面的VC++ 2015.3 V14.00(V140)工具集”
另外,也可以直接安装visual studio community 2015,可以避免后续的一些问题。但是毕竟2017是最新的,而且也是可以用的,还是尽量装最新的吧。
3,在安装CUDA前是否安装显卡的驱动: 从实践看是可以先安装显卡的驱动的,因为CUDA带的显卡驱动很老,在安装的时候CUDA会提示你当前驱动新于带安装的驱动,建议不安装CUDA自带驱动。
CUDA和CUDNN的下载路径:
https://developer.nvidia.com/cuda-toolkit-archive
https://developer.nvidia.com/rdp/cudnn-archive
4,安装CUDA 9.0: 由于已经安装过显卡驱动了,所以选择了自定义安装,顺利安装。在安装CUDA 10.0的时候,普遍碰到的问题是CUDA Visual Studio Integration找不到,这个可以参照如下博客去解决:
https://blog.csdn.net/jin739738709/article/details/80819441
https://blog.csdn.net/u013165921/article/details/77891913
本人试过都是没有问题,但关键是CUDA 10.0仍然不匹配tensorflow。
5,测试一下CUDA和VC的配合,上面的博客写的很清楚了,但要注意的是:
1)自己写的例子,一定要在 项目-属性 里面把平台工具集更改为 V140,否则编译不过。
2)CUDA自带的sample,需要选择带 “2015”的项目文件,在启动后会提示是否提升到V141平台,选择不变就可以了。如果选择带“2017”的项目,即使把平台工具集更改为V140也是不行的,系统还是会认为是V141这样就编译不过。(有些建议是更改头文件,把_MSC_VER的检查放松,譬如把1900改成1920,但建议不改系统的东东。)
3)其他path的设置,参看上面的2个博客就可以了,不在重复。
6,CUDNN安装就很简单了,解压缩后。C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\V9.0 的目录里面一放就可以了。
7,pip3 install tensorflow-gpu, 直接安装1.12版本的。
8,在cmd下,输入python,然后import tensorflow,没有报错信息就OK了。(会出现一个与CPU相关的warning,是说CPU支持某个特性但没有使用,直接忽略,因为我们要用GPU)
以上就是整个安装过程,有问题大家可以一起讨论交流。