对于TensorFlow GPU版的安装,作为一个小白,我很是心累。
看了很多前辈的博客,开始了自己的瞎搞之旅。
首先我按照一位前辈的博客,下载安装了cuda 9.1以及cuDnn 8.0(前辈给的链接是9.1),然后将cuDnn解压到了指定的目录下,并更改了path环境变量,弄完这些后,我打开了anaconda;
在anaconda中,建好了gpu环境,安装了tensorflow-gpu,输入import tensorflow as tf后却出现这样的问题:
import tensorflow as tf
Traceback (most recent call last):
File "D:\Program Files\Python35\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 18, in swig_import_helper
return importlib.import_module(mname)
File "D:\Program Files\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: 找不到指定的模块。
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "D:\Program Files\Python35\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 41, in <module>
from tensorflow.python.pywrap_tensorflow_internal import *
File "D:\Program Files\Python35\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 21, in <module>
_pywrap_tensorflow_internal = swig_import_helper()
File "D:\Program Files\Python35\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 20, in swig_import_helper
return importlib.import_module('_pywrap_tensorflow_internal')
File "D:\Program Files\Python35\lib\importlib\__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
ImportError: No module named '_pywrap_tensorflow_internal'
During handling of the above exception, another exception occurred:
之后便一直在寻找解决这问题的方案,按照各种博客,主要尝试了一下几种方法:
(1)编译了cuda的sample;
(2)将bin目录下cudnn64_7.dll改名为
cudnn64_5.dll以及
cudnn64_6.dll;
(3)安装了Visual C++ Redistributable 2015;
以及其他几种方法,但均以失败告终。
直到看到了一位前辈的这条回复:
一顿操作后,终于……终于……成功了,热泪盈眶
下面我来整理一下成功的方法:(仅供参考)
首先,安装
cuda8.0 以及
cudnn6.0 或 6.1(一定要用这些版本,其他版本TensorFlow好像还不支持。。)要注意的是,NVDIA官网默认给出的是9.1版本,8.0版的下载链接在这儿:
https://developer.nvidia.com/cuda-80-ga2-download-archive
下载本地版。
之后下载
cudnn 6.0 或 6.1,在NVDIA官网搜索就好。下载下来后将压缩包里各文件夹里的文件放到对应目录下就好:
然后将bin目录及lib\x64目录加入环境变量Path中就可以了。
下面我们进行Tensor Flow的安装(以anaconda为例):
首先创建tensorflow GPU版的环境。在anaconda prompt中输入:
conda create -n tensorflow-gpu python=3.5
这样就创建了一个python3.5的环境,我们将它命名为“tensorflow-gpu”,然后激活它:
然后在此环境下安装:
安装好用样例进行测试,只要测试结果与我类似,那恭喜你,你的TensorFlow GPU version已上线!尽情享受GPU带来的极速体验吧!
最后总结一下教训:
以后一定一定一定要看官方文档