ubuntu 16.0.4 配置 tensorflow-gpu 1.1.0

时间:2021-07-24 17:22:02

  今天配了一下tensorflow的gpu版本,感觉有几个坑,网上的资料也比较乱,就想给大家留个比较完整安装和排坑的文档。

  我的gpu是gtx 960m

1.安装驱动

ubuntu 16.0.4 配置 tensorflow-gpu 1.1.0

没有安装驱动应该是选择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分钟左右。

安装后,可以在这里查看

ubuntu 16.0.4 配置 tensorflow-gpu 1.1.0

 

2.安装cuda

https://developer.nvidia.com/cuda-downloads

ubuntu 16.0.4 配置 tensorflow-gpu 1.1.0

选择对应版本,.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

要注册账号

ubuntu 16.0.4 配置 tensorflow-gpu 1.1.0

这里注意下,我一开始下载了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过去,出现上面的错误。

ubuntu 16.0.4 配置 tensorflow-gpu 1.1.0

sudo cp cuda/lib64/libcudnn_static.a /usr/local/cuda/lib64
sudo ldconfig /usr/local/cuda/lib64

用这个命令确认一下

ubuntu 16.0.4 配置 tensorflow-gpu 1.1.0

看来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