这几天一直在配置tensorflow-gpu版本,之前用的是tensorflow-cpu版本,训练过比较简单的mnist手写数字识别模型,也直接跑过别人训练好的openpose人体姿态识别模型,效率都比较低,既然想要继续学习计算机视觉这一块,最好是能用gpu,可以大大节省模型训练时间。这几天遇到不少坑,但当最终import tensorflow没有报错的时候,感觉踩得那些坑都不算什么。这个过程中参考了许多别人的经验和教程,现在自己再造轮子的原因是一方面想回顾下整个过程,理清思路,另一方面我遇到并解决的问题,别人可能没有遇到,所以放在这里也希望能帮助后人避开不必要的坑。
首先说明下我的环境:win7-64位系统+Nvidia GTX960显卡+python3.6.3。大家要注意自己的显卡要支持cuda, 可以到官网上查找
1. 显卡驱动安装。因为之前是没有独立显卡的,新装的独显,因此需要装驱动。不过也有人说装cuda的时候自带驱动,这个我没有验证。
http://www.nvidia.cn/download/driverResults.aspx/131469/cn
这个下载完之后直接安装即可。
2. 下载并安装cuda+cudnn。
注意,因为之前网上的很多教程都是cuda8.0的,而我直接下载安装了9.1版本,结果悲剧了。。。后来装的是9.0版本,经验证,cuda9.0+cudnn7.0是没有问题的。这里是第一个大坑,我开始的时候想最新的应该没有问题,后面当我import tensorflow的时候,提示找不到cudart64_90.dll, 提示让去官网下载cuda9.0。这可是在我已经下载、安装、配置完cudnn之后(因为cudnn要和cuda的版本一致)。无奈,从新下了9.0的cuda和对应的cudnn。
CUDA 的下载地址:https://developer.nvidia.com/cuda-downloads ,这个目前是最新的9.1版本
CUDA的历史版本: https://developer.nvidia.com/cuda-toolkit-archive,我用的是9.0版本
当cuda安装完成后, 会发现环境变量里增加了CUDA_PATH和CUDA_PATH_V9_0,
我们需要在Path变量里添加几个值,(如果已经存在,则不需要添加)
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin;
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\libnvvp;
C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\lib\x64
在cmd中输入命令:nvcc -V,如果现实cuda的版本信息,则安装成功。
cudnn下载地址:https://developer.nvidia.com/rdp/cudnn-download,主要要下载和cuda对应版本,我安装的是cuDNN v7.0.5 (Dec 5, 2017), for CUDA 9.0。
下载完成解压后,有bin, include, lib三个文件夹,把他们复制到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0文件夹下,选择合并到现有文件夹。这样cuda 和cudnn都安装完毕了。
3. 安装tensorflow-gpu。这里本来以为不会有什么问题,结果还是出现了大坑。我先用pip install tensorflow-gpu,安装过程很顺利,默认安装的是tensorflow-gpu 1.6版本, 看见显示安装成功后,就赶快import试一下,结果又报错:
ImportError: No module named _pywrap_tensorflow_internal
这里省略了前面和后面的错误内容。结果BD+GG了好久,最后终于在github上找到了答案:
https://github.com/tensorflow/tensorflow/issues/9469#issuecomment-371764778
可能是电脑不支持AVX指令集的原因,不能用tensorflow1.6, 于是我就下了个cpu-z工具,一查,果然不支持,
于是把tensorflow-gpu降级, 先卸载pip uninstall tensorflow-gpu, 再安装1.5 版本,pip install tensorflow-gpu==1.5。显示安装成功后,重新打开cmd, 输入python回车,输入import tensorflow,没有报错!至此终于成功安装了gpu版本的TF。
PS:tensorflow 官网要求gpu的compute capability要不低于3.0, https://www.tensorflow.org/install/install_windows
我之前用的是GT630, 查了下compute capability 才 2.1, 一度怀疑是自己的GPU配置太低所以配置不成功,后来换了台电脑装了GTX960,compute capability > 5, 按照上面的步骤配置成功了, 然后按照上面的步骤重新配置了下GT630的电脑,居然可以成功import!!!所以还是软件版本的问题。
本文介绍了在Win7系统下,配置CUDA 9.0、cuDNN 7以及TensorFlow-GPU 1.5的详细步骤,包括显卡驱动安装、CUDA和cuDNN的下载与配置,以及解决安装TensorFlow-GPU时遇到的问题。特别指出,CUDA 9.1版本可能与某些GPU不兼容,建议使用CUDA 9.0。最后,作者强调了GPU的compute capability对于成功配置的重要性。
3082

被折叠的 条评论
为什么被折叠?



