一、anaconda navigator(1.96版本,下同)部署TensorFlow(非GPU版本)
1.通过图形化的anaconda配置CPU版本的TensorFlow是十分容易的,在environment中新建一个3.5/3.6的Python环境;搜索TensorFlow,勾选然后安装就能用了,十分方便:
2.虽然很多人推荐用jupyter notebook这个编译器,不过它的指引相对于桌面版本的IDE来说要差很多,事实上到最后我也没能实现在anaconda的environment中成功运行GPU版本的TensorFlow。
3. 最终我选择的是Pycharm,用Pycharm选择project的Python interpreter可以直接选择anaconda中自动创建的运行环境,操作十分简单,就不细说了。
二、必须的运行环境和版本问题
1.上一节中的anaconda列表中尽管有TensorFlow-GPU这个lib,但事实上在不安装非GPU版本的情况下直接安装GPU版会报错安装不上,然而如果你用的不是GPU版本,则会在每次执行代码的时候排出数十行讨厌的红字提示你说你可以用GPU版本的TensorFlow。
红字固然令人厌烦,但谁不想让自己的代码运行得快一点呢?然后就开启了我近2天的摸索试错过程。
2.TensorFlow-GPU要顺利走通,根据我的经验,需要的东西有:
a.Python环境:早期的攻略推荐3.5,不过现在好像也支持3.6甚至3.7了,我选择的是3.6,这个就不放下载了,可以用anaconda直接部署一个3.6的environment。
b.CUDA版本,这个地方特别容易被坑。如果你去官网,它会推荐你下载10.0,实际上10.0——TensorFlow-GPU 1.9.0是不支持的,必须用9.0,我选择的也是9.0。
c.cudnn版本,这个要上面下载的CUDA匹配,也就是要下载7.4.1这个版本,下载地址:https://developer.nvidia.com/rdp/cudnn-archive。也是一样有操作系统的区别,注意不要下错了。
d.vc++运行环境,这里的坑巨多,到现在我也没弄得很明白。我安装的是VS2015社区版。
3.那么,我们要做的,就是首先确定你要安装的TensorFlow-GPU版本,然后在以下目录(某位大神提供):
E:\environment\anaconda\envs\P36\Lib\site-packages\tensorflow\python\platform\build_info.py
这是我的TensorFlow安装的环境,你要用的话需要根据你自己部署的路径更改。
用记事本打开这个文件,最后几行非常清楚地写着该版本的TensorFlow需要的环境:
以上为TensorFlow-GPU 1.9.0版本的需求。
三、TensorFlow-GPU==1.9.0的安装
1.不知道为什么目前图形版本的anaconda(1.96)不能直接安装TensorFlow-GPU 1.9.0。只能从anaconda prompt里手动安装。不过方法也很简单:
2.在开始里搜索anaconda prompt,找到这个运行程序以后点进进去。输入activate XXX。也就是进入你要操作的环境,这里XXX是你的环境名,比如我的是“activate p36”
3.然后输入:
pip install --index-url https://pypi.douban.com/simple tensorflow-gpu==1.9.0
这个指令是通过国内豆瓣的镜像站下载,速度会快一些。接下来就是全自动安装,无需多言。
四、VS2015的安装
1.下载直接去微软官方下载就可以,下载链接:
http://download.microsoft.com/download/B/4/8/B4870509-05CB-447C-878F-2F80E4CB464C/vs2015.com_chs.iso
2.如果没有别的需求,原则上只安装C++的开发环境即可,我只勾了2个:
3.注意装好以后千万别跟我一样自作聪明把它卸载了,卸载VS2015微软会顺手把一些它的依赖给删掉,所以你不能卸载VS2015!不过我不能确定是不是只装c++运行就足够了,有兴趣的同学可以折腾着试下。
五、CUDA9.0的安装
1.首先是下载地址:
https://developer.nvidia.com/cuda-toolkit-archive。
根据你的操作系统来选择,我的是win7。原则上一个安装文件和4个更新包都要下载并安装。
2.不在乎C盘空间的可以忽略这一条,事实上不是所有的组件都需要安装。在精简和自定义选择的时候,选择自定义,然后只勾CUDA组件。事实上这里面的sample和document、visual studio integration都可以不勾:
接下来会让你选路径,选择C盘以外的目录是没有任何问题的。选择好以后下一步到结束即可。注意,如果你的上一节vc++环境没有安装好这里是会有警告,一定要先把VS2015装好再装这个。
3.CUDA安装好以后会自动写入环境变量,但写得不对,需要手工修改一下。首先是“CUDA_PATH”,我的默认是“E:\environment\CUDA9.0\”,也就是安装的时候我选择的安装目录,要在后面加上bin,即改成“E:\environment\CUDA9.0\bin”。另外一个环境变量“CUDA_PATH_V9_0”也是同理。
另外需要验证的是环境变了Path中是否添加了
“E:\environment\CUDA9.0\extras\CUPTI\libx64;
E:\environment\CUDA9.0\lib\x64;
E:\environment\CUDA9.0\bin;
E:\environment\CUDA9.0\libnvvp;”
这四个路径(实际无换行),不确定是不是都需要,没有的话注意补上。
4.有两个方式验证你的CUDA有没有装好,第一个方式是在cmd界面下输入“nvcc -V”(注意是大写的V),会显示当前系统中CUDA的版本如图:
第二个方式也是cmd界面下,把你的CUDA安装目录下...\extras\demo_suite\deviceQuery.exe这个文件拖到cmd窗口中按enter,如图:
这两个方式可以简单地验证一下你的CUDA是否装好,如果你看不到这两个,那表明你的CUDA都没装好,有可能是1.你的VS2015没装好;2.你的显卡驱动没更新3.你的显卡不支持你安装的CUDA版本,一个个排除即可。
六、cdnn的安装
1.下载地址:
https://developer.nvidia.com/rdp/cudnn-archive
根据你的CUDA版本及你的操作系统来下载。
2.下载要注意的一点是,需要你登录,不想注册的可以直接QQ一键登录。
3.安装十分简单,下载下来一个压缩包,里面的文件全部解压放到你安装的CUDA的根目录下即可。
七、最后的折腾
1.可能上面的步骤你都做了,在import tensorflow as tf以后,还是报runtime error或者找不到dll等,最后,你需要做的事情就是,从你的CUDA目录中搜索到下面2个DLL:
cudart64_90.dll
cudnn64_7.dll
把它们放到C:\Windows\System32这个目录下,为什么要这么做,我也不知道,但这样做了以后,我的TensorFlow-GPU就可以在pycharm里成功运行了。
八、pycharm中验证
try:
import tensorflow as tf
print("TensorFlow successfully installed.")
if tf.test.is_built_with_cuda():
print("The installed version of TensorFlow includes GPU support.")
else:
print("The installed version of TensorFlow does not include GPU support.")
sys.exit(0)
except ImportError:
print("ERROR: Failed to import the TensorFlow module.")
把上面的代码复制到pycharm中运行,如果打印结果是:
TensorFlow successfully installed.
The installed version of TensorFlow includes GPU support.
就证明已经安装成功了。
启动了GPU加速的打印输出:
最后再次强调,不想折腾的,千万别跟我一样配置好了就把VS2015给卸载了,不过还是心疼我那C盘10个G的空间啊,微软你这个流氓,我要换Ubuntu!