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:
- http://blog.csdn.net/u010858605/article/details/64128466 (win10+tensorflow)