1. 基本配置
- Win10, 16G内存, NVIDIA GeForce GTX 1060 6GB
- 已安装Anaconda 3, python 3.6.5 https://www.anaconda.com/distribution/#download-section
2. 安装步骤
- 下载安装CUDA Toolkit
根据GPU型号在NVIDIA官网查看是否支持CUDA,型号可从“我的电脑”右键“管理”——“设备管理器”——“显示适配器”查看。 Google“型号+specification”可以查看你的显卡型号是否支持CUDA。
确认支持后,在https://developer.nvidia.com/cuda-toolkit-archive,下载相应版本的CUDA. 具体版本我参考的是tensorflow官网中的software requirements, https://www.tensorflow.org/install/gpu。最终下载的是CUDA 9.0版本。
注:
a. 这里看了很多不同的版本建议(有的说一定要8.0,有的说按照本机的CUDA需求9.2),CUDA 1G+,好在一次成功,这里没有明确的建议。
b. 下载完了直接双击安装即可,安装时默认路径,选择自定义类型,去掉Visual Studio Integration,否则会报安装失败。
安装成功后,运行cmd,输入“nvcc -V”,出现如下提示即安装成功。
- 下载cuDNN
选择CUDA对应的cuDNN安装即可,但CUDA对应多个,我当时选择的是最新版的cuDNN。https://developer.nvidia.com/rdp/cudnn-archive。
注:进入下载页面前,需要进行一番注册.
下载解压后有
将文件夹中的全部内容复制粘贴到CUDA对应的安装路径下,即C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0,替换已有的文件夹。
- 安装TensorFlow
接下来本应该是python及相关库的安装配置,装过Anaconda即可。最后就可以正式安装TF了,这里安装方式有很多种,常用的是pip,但如果从官网直接下速度极慢,可通过国内镜像下载。
cmd输入“pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ --upgrade tensorflow-gpu”即可。这里使用的是清华大学的镜像源地址,也可替换成其他,如
阿里云
http://mirrors.aliyun.com/pypi/simple/
中国科技大学
https://pypi.mirrors.ustc.edu.cn/simple/
豆瓣(douban)
http://pypi.douban.com/simple/
清华大学
https://pypi.tuna.tsinghua.edu.cn/simple/
中国科学技术大学
http://pypi.mirrors.ustc.edu.cn/simple/
如不出现报错,一般就安装成功。
- 测试
调用常见测试,出现下面结果即成功。
import tensorflow as tf
hello = tf.constant("hello,tensorflow!")
sess = tf.Session()
print(sess.run(hello))
3. 出现过的问题
- CUDA安装失败,版本问题的纠结。--解决方案看上去有很多,只尝试了上面的方式成功
- 安装TF时提示“distributed 1.21.8 requires msgpack, which is not installed.”和pip版本低的问题,只需更新即可--“pip install msgpack”。
- Import tensorflow as tf时类似如下错误:
Traceback (most recent call last):
File “D:\Python\Python35\lib\site- packages\tensorflow\python\pywrap_tensorflow_internal.py”, line 18, in swig_import_helper
return importlib.import_module(mname)
File “D:\Python\Python35\lib\importlib__init__.py”, line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File “frozen importlib._bootstrap”, line 986, in _gcd_import
File “frozen importlib._bootstrap”, line 969, in _find_and_load
File “frozen importlib._bootstrap”, line 958, in _find_and_load_unlocked
File “frozen importlib._bootstrap”, line 666, in _load_unlocked
File “frozen importlib._bootstrap”, line 577, in module_from_spec
File “frozen importlib._bootstrap_external”, line 906, in create_module
File “frozen importlib._bootstrap”, line 222, in _call_with_frames_removed
ImportError: DLL load failed: 找不到指定的模块。
尝试找了很多方式,如环境变量、重装等等,最后问题还是定位在CUDA版本和tf-gpu不匹配导致,具体的匹配版本要在https://www.tensorflow.org/install/gpu上自行查找。我用的tf版本为1.13.1,故应该用CUDA 10.0+cudnn 7.5.0的组合。重新安装后即可用。
注:这里还有个小问题就是同时装两个版本的CUDA(更高级的版本)不会影响,会自行删除上一版本,但文件夹好像还保留部分,但不影响。Nvcc –V是新版的。
另外,此时import时还报错“ModuleNotFoundError: No module named 'numpy.core._multiarray_umath'”,这里只需要卸载重装一下numpy就可以了。
pip uninstall numpy
pip install numpy
4. 特别感谢以下博客作者
https://blog.csdn.net/tangg555/article/details/80136901
https://zhuanlan.zhihu.com/p/26558359
https://blog.csdn.net/jorg_zhao/article/details/80075293
https://blog.csdn.net/wukai0909/article/details/62427437
https://blog.csdn.net/sb19931201/article/details/53648615
https://zhuanlan.zhihu.com/p/31860060
https://blog.csdn.net/maliang_1993/article/details/80955039
https://zhuanlan.zhihu.com/p/25778703
https://blog.csdn.net/tangg555/article/details/80136901
https://blog.csdn.net/zzpong/article/details/80282814
https://www.jianshu.com/p/1fad663dabc3
https://zhuanlan.zhihu.com/p/35717544
https://blog.csdn.net/gangeqian2/article/details/79358543
https://blog.csdn.net/HCodeRunner/article/details/80991030
https://blog.csdn.net/wjh2622075127/article/details/88322469