ubuntu 16.0.4 配置 tensorflow-gpu 1.1.0
今天配了一下tensorflow的gpu版本,感觉有几个坑,网上的资料也比较乱,就想给大家留个比较完整安装和排坑的文档。
我的gpu是gtx 960m
1.安装驱动
没有安装驱动应该是选择x server的,应该也有一个NVIDIA的选项,我试过从这里更改,失败了,应该是源的网速不好,或是缺依赖。
网上有很多教程说什么禁用x server 什么的感觉很麻烦,而且不是很靠谱,直接用ppa这个方法比较简单,我选的版本是375,其他版本没有测试。
1 sudo add-apt-repository ppa:graphics-drivers/ppa 2 sudo apt-get update && sudo apt-get install nvidia-375
出现问题就试试 --fix-missing
安装后可以重启,也可以不重启,我没有重启,不过后来重启关机大概15分钟左右。
安装后,可以在这里查看
2.安装cuda
https://developer.nvidia.com/cuda-downloads
选择对应版本,.deb安装简单
Installation Instructions:
sudo dpkg -i cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64.deb sudo apt-get update sudo apt-get install cuda
我安装的时候,什么都没有填,直接安装好了
3.安装cuDNN
https://developer.nvidia.com/rdp/cudnn-download
要注册账号
这里注意下,我一开始下载了v6版本,但tensorflow-gpu 1.1.0 版本需要v5版本。我下载的cuDNN v5 (May 27, 2016), for CUDA 8.0
下载后解压到安装路径,理论上哪里都行,我放在home下。
ALL PLATFORMS
Extract the cuDNN archive to a directory of your choice, referred to below as <installpath>.
Then follow the platform-specific instructions as follows.
LINUX
cd <installpath>
export LD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH
Add <installpath> to your build and link process by adding -I<installpath> to your compile
line and -L<installpath> -lcudnn to your link line.
这是官方安装教程。
也就是这个部分出现了最多的问题。
我也记不清楚具体步骤,只能说下我出现的几个错误
>>> import tensorflow Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/home/kai/anaconda2/lib/python2.7/site-packages/tensorflow/__init__.py", line 24, in <module> from tensorflow.python import * File "/home/kai/anaconda2/lib/python2.7/site-packages/tensorflow/python/__init__.py", line 51, in <module> from tensorflow.python import pywrap_tensorflow File "/home/kai/anaconda2/lib/python2.7/site-packages/tensorflow/python/pywrap_tensorflow.py", line 52, in <module> raise ImportError(msg) ImportError: Traceback (most recent call last): File "/home/kai/anaconda2/lib/python2.7/site-packages/tensorflow/python/pywrap_tensorflow.py", line 41, in <module> from tensorflow.python.pywrap_tensorflow_internal import * File "/home/kai/anaconda2/lib/python2.7/site-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 28, in <module> _pywrap_tensorflow_internal = swig_import_helper() File "/home/kai/anaconda2/lib/python2.7/site-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 24, in swig_import_helper _mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description) ImportError: libcudnn.so.5: cannot open shared object file: No such file or directory Failed to load the native TensorFlow runtime.
首先是要把所有cudnn文件考到cuda中,而似乎这里只用到了libcudnn.so.5
sudo cp cuda/include/cudnn.h /usr/local/cuda/include
后面我是先把/home/kai/cuda/lib64下的所有文件cp过去,出现上面的错误。
sudo cp cuda/lib64/libcudnn_static.a /usr/local/cuda/lib64
sudo ldconfig /usr/local/cuda/lib64
用这个命令确认一下
看来libcudnn.so.5必须是一个链接。
sudo ln -s /home/kai/cuda/lib64/libcudnn.so.5 libcudnn.so.5 #pwd = /usr/local/cuda/lib64
再试一下,成功
ps:我在前面改了libcudnn.so.5的权限,不过不清楚有没有作用,如果按上面过程出现问题,可以改下权限,移除链接,再重新创建链接。
sudo chmod u=rwx,g=rx,o=rx libcudnn.so.5 #pwd = 解压cudnn出来的目录
而且,这个方法我只是成功导入了tensorflow
4.安装tensorflow-gpu
pip install tensorflow-gpu