utuntu16.04安装tensorflow1.4-gpu

  • 之前一直在windows下使用tensorflow,对cpu和gpu的安装都是比较顺利,都是使用anaconda环境下,创建虚拟conda环境,这样方便不同python版本的管理。
  • 一直也想尝试使用utuntu安装,从头是开学习一遍,昨天刚装了双系统,尝试先安装tensorflow,然后进行caffe安装。
  • Utuntu16.04+CUDA8.0+cuDNN(5.1-->6.0,tf1.2+ TiTan XP版本以上支持cuDNN6.0)+tensorflow1.4-gpu(自动安装最新版本)

1.检测驱动

nvidia驱动安装是一个比较头疼的事情,网上较多的教程通过下载.run文件,采用终端命令,禁用自带的 nouveau nvidia驱动来安装。但是我直接采用系统设置更新的:

步骤:

a) 进入系统设置--软件更新(software&updates)--额外驱动(additional Drivers),选择第一个选项(using nvidia binary driver --version .....),其他不变,点击Apply changes,。

b) 重启系统。

c) 终端输入nvidia-smi 进行验证,安装成功. 

可能采用其他的禁止显卡,安装驱动,可能还会与遇见很多坑,我更新的版本:nvidia-384

2.CUDA安装

首先在官网上(https://developer.nvidia.com/cuda-downloads)下载CUDA:

a) 官网下载cuda_8.0.44_linux.run文件

b) chmod +x  /*.run 更改权限 :root应该可以直接执行

c) cd到文件目录,  ./cuda_8.0.44_linux.run 进行安装   (因为之前已经安装过驱动,开始安装时,第一个选项,是否安装驱动,选n 不安装(很重要),其它选y,路径默认即可)

可能出现的错误:
当出现“unsupport complier”错误时,说明gcc版本太高,需要降低gcc版本。解决办法如下: 安装gcc4.9与g++4.9 ;我先以前安装了g++4.9,但是显示gcc任然是5.4的,参考别人的:

为什么需要先安装编译器GCC和G++,而不是先安装显卡驱动和cuda等等呢?
首先,先安装显卡驱动,后安装GCC并降级的安装顺序过程中,遇到了很多问题。比如,在安装CUDA SAMPLES的过程中,遇到了问题/usr/bin/ld: cannot find –lGL,后面通过网上教程,重新连接该库文件,仍然不能通过OpenCV的编译。但是,先安装GCC,再安装显卡驱动,就不会遇到这个问题了。
  • 安装完成log:
Driver:   Not Selected
Toolkit:  Installed in /usr/local/cuda-8.0
Samples:  Installed in /home/dsp, but missing recommended libraries

Please make sure that
 -   PATH includes /usr/local/cuda-8.0/bin
 -   LD_LIBRARY_PATH includes /usr/local/cuda-8.0/lib64, or, add /usr/local/cuda-8.0/lib64 to /etc/ld.so.conf and run ldconfig as root

To uninstall the CUDA Toolkit, run the uninstall script in /usr/local/cuda-8.0/bin

Please see CUDA_Installation_Guide_Linux.pdf in /usr/local/cuda-8.0/doc/pdf for detailed information on setting up CUDA.

***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 361.00 is required for CUDA 8.0 functionality to work.
To install the driver using this installer, run the following command, replacing <CudaInstaller> with the name of this run file:
    sudo <CudaInstaller>.run -silent -driver

Logfile is /tmp/cuda_install_3147.log

环境变量:首先下载Cuda8.0,然后进入下载目录,执行下列命令,即可安装Cuda; 安装完成后,配置环境变量,在home下的.bashrc中加入

打开~/.bashrc文件:

sudo vim ~/.bashrc

将以下内容写入到~/.bashrc尾部:

export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

3.cuDNN安装

cuDNN是GPU加速计算深层神经网络的库。 首先去官网(https://developer.nvidia.com/rdp/cudnn-download)下载cuDNN,可能需要注册一个账号才能下载.

下载cuDNN5.1之后进行解压,cd进入cuDNN5.1解压之后的include目录,在命令行进行如下操作:

sudo cp cudnn.h /usr/local/cuda/include/    #复制头文件

再将cd进入lib64目录下的动态文件进行复制和链接:

sudo cp lib* /usr/local/cuda/lib64/    #复制动态链接库
cd /usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so.5    #删除原有动态文件
sudo ln -s libcudnn.so.5.1.10 libcudnn.so.5  #生成软衔接(注意这里要和自己下载的cudnn版本对应,可以在/usr/local/cuda/lib64下查看自己libcudnn的版本)
sudo ln -s libcudnn.so.5 libcudnn.so      #生成软链接

安装问题

tensorflow安装所遇问题:libcudnn.so.6:cannot open sharedobject file: No such file or directory

 【报错】ImportError: libcudnn.so.6: cannot open shared object file: No such file or directory

  • 由于自己先安装cuDNN5.1;后面安装tensorflow是自动安装最新版本的tf1.4,但在tf1.3已经支持cuDNN6.0了。
  • 看了更新日志发现,1.3版本需要cuDNN v6.0做支持了,之前是5.1,于是去Nvidia官网下载cuDNN v6.0对应的系统版本安装就好了: 我使用cuDNN6.0
  • 或者降低版本
问题解决:

pip uninstall tensorflow-gpu
pip install tensorflow-gpu==1.2

4. Anaconda安装

官网下载地址:https://www.continuum.io/downloads/

在安装的过程中,会询问安装路径,按回车即可。之后会询问是否将Anaconda安装路径加入到环境变量(.bashrc)中,输入yes,这样以后在终端中输入python即可直接进入Anaconda的Python版本(如果你的系统中之前安装过Python,自行选择yes or no)。安装成功后,会有当前用户根目录下生成一个anaconda2的文件夹,里面就是安装好的内容

下载完毕后,在terminal中到达文件所在位置

bash Ana.......(快捷键Tab) .sh

一路按回车键,中间记得输入一个yes就可以顺利完成安装。

安装完后,配置环境路径:安装过程自动选择添加,就不需要手动添加

# 将anaconda的bin目录加入PATH,根据版本不同,也可能是~/anaconda3/bin
echo 'export PATH="~/anaconda2/bin:$PATH"' >> ~/.bashrc
# 更新bashrc以立即生效
source ~/.bashrc
  • 安装log:
  • 需要激活anconda环境才能使用,不然是默认的python2.7
dsp@dsp:~/下载/cuda/lib64$ python
Python 2.7.12 (default, Nov 19 2016, 06:48:10) 
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
dsp@dsp:~/下载/cuda/lib64$ source /home/dsp/.bashrc
dsp@dsp:~/下载/cuda/lib64$ python
Python 2.7.14 |Anaconda, Inc.| (default, Oct 16 2017, 17:29:19) 
[GCC 7.2.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
  • Conda的环境管理功能允许我们同时安装若干不同版本的Python,并能自由切换。对于上述安装过程,假设我们采用的是Python 2.7对应的安装包,那么Python 2.7就是默认的环境(默认名字是root,注意这个root不是超级管理员的意思)。
# 创建一个名为tenseorflow的环境,指定Python版本是3.5
conda create --name tensorflow python=3.5

# 安装好后,使用activate激活某个环境
activate tensorflow  # for Windows
source activate tensorflow # for Linux & Mac
# 激活后,会发现terminal输入的地方多了tensorflow 的字样,实际上,此时系统做的事情就是把默认2.7环境从PATH中去除,再把3.5对应的命令加入PATH

# 此时,再次输入
python --version
# 可以得到`Python 3.5.3 :: Continuum Analytics, Inc.`

# 如果想返回默认的python 2.7环境,运行
deactivate tensorflow # for Windows
source deactivate tensorflow# for Linux & Mac
#可以得到`Python 2.7.13 :: Anaconda 4.3.1 (64-bit)`

# 删除一个已有的环境
conda remove --name tensorflow --all

用户安装的不同python环境都会被放在目录~/anaconda/envs下,可以在命令中运行conda info -e查看已安装的环境,当前被激活的环境会显示有一个括号。

(tensorflow_py3.5) dsp@dsp:/usr/local/cuda/lib64$ python
Python 3.5.4 |Anaconda, Inc.| (default, Nov  3 2017, 20:01:27) 
[GCC 7.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
>>> 

5.tensorflow-gpu安装

  • 安装只需要在对应的激活conda环境下:
  • pip install tensorflow
  • pip install tensorflow-gpu

6.测试

2017-11-05 12:32:46.636654: I tensorflow/core/platform/cpu_feature_guard.cc:137] Your CPU supports instructions that this TensorFlow binary was not compiled to use: SSE4.1 SSE4.2 AVX AVX2 FMA
2017-11-05 12:32:46.839884: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:892] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2017-11-05 12:32:46.840212: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1030] Found device 0 with properties: 
name: TITAN Xp major: 6 minor: 1 memoryClockRate(GHz): 1.582
pciBusID: 0000:01:00.0
totalMemory: 11.90GiB freeMemory: 11.53GiB
2017-11-05 12:32:46.840225: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1120] Creating TensorFlow device (/device:GPU:0) -> (device: 0, name: TITAN Xp, pci bus id: 0000:01:00.0, compute capability: 6.1)
step 0, training accuracy 0.14
step 100, training accuracy 0.88
step 200, training accuracy 0.92
step 300, training accuracy 0.92
step 400, training accuracy 0.98
step 500, training accuracy 0.96
  • 终端中输入$spyder,打开的始终是默认的python2.7;还不知道原因;
  • 在激活环境中打开spyder
  • dsp@dsp:~$ source activate tensorflow_py3.5
    (tensorflow_py3.5) dsp@dsp:~$ spyder
  • 但是在终端输入:anaconda-navigator ,然后launch spyder可以打开python3.5虚拟环境的spyder;或者使用pychram设置虚拟解释器
  • 下午在进行spyder配置和caffe的配置
  • 可能有些坑,还没有发现后续更新

Reference:

原文地址:https://www.cnblogs.com/ranjiewen/p/7787003.html