环境配置录——Ubuntu16.04下Anaconda+TensorFlow1.8+CUDA9.1+CuDNN7.0.5+Torch7的安装

首先,电脑的系统是Ubuntu 16.04硬件是GTX1080Ti,因为要用到GPU加速,所以要装显卡驱动和CUDA。
打算安装的东西和大概步骤按下面的来:
1. Anaconda(最容易装,最先说其实是因为贫僧最先下载好了这个软件的安装包。。。)
2. 显卡驱动
3. CUDA9.1(目前TensorFlow官方不支持9.1版本,所以不想从源码开始编译的话就装9.0版的吧)和CuDNN
4. TensorFlow1.8.0(装在Anaconda创建的虚拟环境里面)
5. PyTorch(这个其实也不难装)
6. Torch7

话说服务器已经配置好了SSH和VNC,这个比较简单就不多说了,网上大把的教程,够用了。
话说回来最好不要想着跑虚拟机里面,因为nVidia大部分的民用卡(Geeforce那些卡,说白了就是不是专业卡的那些显卡,例如贫僧这台服务器的GTX 1080Ti)不支持显卡直通,而且就算支持也不怎么稳定,所以。。。还是让系统跑在物理机上吧。

然后就是如果懒的话还是用CUDA9.0吧,用别人已经编译好了的比较方便,不然还要像贫僧一样自己编译源码来安装。

安装Anaconda

其实比较简单,所以这里随便说一下就行,主要步骤就是从官网下载好对应的linux安装包(.sh后缀的),然后直接跑,一路按回车或输入yes就行了。
环境配置录——Ubuntu16.04下Anaconda+TensorFlow1.8+CUDA9.1+CuDNN7.0.5+Torch7的安装_第1张图片
选择自己喜欢的版本就行了,贫僧通常都是选python3。。。
Anaconda安装不难,实在不行可以参考后面附上的链接。
通常安装路径按照默认的就行了,如果要给机器上所有用户安装的话就安装在/opt路径下。

显卡驱动

通常的画风是这样的,先从官网手动下载对应自己显卡型号的驱动,然后直接装就行了。
环境配置录——Ubuntu16.04下Anaconda+TensorFlow1.8+CUDA9.1+CuDNN7.0.5+Torch7的安装_第2张图片
环境配置录——Ubuntu16.04下Anaconda+TensorFlow1.8+CUDA9.1+CuDNN7.0.5+Torch7的安装_第3张图片
不过要注意的是CUDA对显卡驱动的版本要求:
环境配置录——Ubuntu16.04下Anaconda+TensorFlow1.8+CUDA9.1+CuDNN7.0.5+Torch7的安装_第4张图片
上传到服务器上面然后再那个文件夹下面直接输入下面的指令运行脚本:

sudo sh NVIDIA*

注意是要运行你刚刚上传上去的脚本,上面这行其实是运行当前目录下NVIDIA开头的脚本,贫僧默认了当前目录里面没有其他NVIDIA开头的脚本(除了刚刚上传的),如果有就要把脚本名字写全一点。

在贫僧的服务器上一路Accept和Yes就行了,不需要额外的设置,但是读者最好先了解一下这些设置的影响,不同系统可能要的设置不一样。

安装完之后直接重启图形界面:

sudo service lightdm start

贫僧一时冲动直接重启整台机器了。。。其实没必要这么干。
启动之后试试nvidia-smi看看有没有输出显卡信息,有的话就成功了。
环境配置录——Ubuntu16.04下Anaconda+TensorFlow1.8+CUDA9.1+CuDNN7.0.5+Torch7的安装_第5张图片

安装CUDA9.1

一时冲动就装了这个版本的,其实用CUDA9.0更加方便,可以直接用别人编译好了的tensorflow来安装。
安装依赖包:

sudo apt-get install g++ freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libglu1-mesa libglu1-mesa-dev

开始安装:

sudo sh cuda*

然后除了Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 387.26选no之外其他都默认或者yes就可以了,这里选no是因为前一个步骤已经装过了一个比较新的驱动了,没必要重新装。

然后添加下面两行到~/.bashrc

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

不要把后面的${PATH:+:${PATH}}省略了。。。不然等等一堆命令找不到路径(包括lsvim)。。。遇到这种情况看这个文章。

然后就是喜闻乐见的测试了:
1. 转移到你安装的cuda目录的samples目录下,贫僧的是/usr/local/cuda-9.1/samples
2. 进入到samples目录下的/1_Utilities/deviceQuery,记得复制备份一份,不要改动原文件
3. 记得不要移动文件夹,不然要在make的时候另外配置引用库的路径,就在samples目录下的你复制出来的新的deviceQuery目录里面进行make操作
4. 等编译完成之后就可以运行生成的可执行文件了,一切正常的话应该会输出服务器的配置的说
测试通过的话基本上CUDA就安装好了。

CuDNN配置

其实这个不是安装的,只需要配置一下。
先解压从官网下载到的cudnn压缩包(记得登陆,不然没什么下载选项,或者只能下载到老的cudnn文件):

tar -zxvf cudnn*

然后用官方文档里面的安装方法就可以了:

sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

不过贫僧直接这么做之后貌似用不了。。。应该是解压缩或者移动的时候链接被破坏了。后来干脆懒得用压缩包了,直接从官网下了个libcudnn7_7.0.5.15-1+cuda9.1_amd64.deb,直接装这个包,懒得自己配置。

安装TensorFLow

最先做的必须是创建一个虚拟环境:

conda create -n tf1.8 python=3.6

tf1.8只是名字,可以改成自己喜欢的,python=3.6是python版本设置,这里用了3.6的,也是可以改成自己喜欢的。。。

等创建好之后就可以直接source activate tf1.8来进入虚拟环境,然后安装你想要的tensorflow版本,如果安装了CUDA 9.0的话可以直接使用pip来安装,就不用从源码开始编译。

pip install *.whl

已经下载好了并且放在了执行命令时处在的目录下,所以可以这么做直接安装。

上面的是CUDA9.0的时候的安装方法,如果像贫僧一样作死安装了比较新的9.1或者更加新的9.2版本的话还是老老实实地按照这里的教程来直接从源代码进行编译安装吧。。。

测试
先进入虚拟环境:

source activate tf1.7

然后开始测试:

$ python
...
>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
>>> print(sess.run(hello))
Hello, TensorFlow!
>>> a = tf.constant(10)
>>> b = tf.constant(32)
>>> print(sess.run(a + b))
42

安装PyTorch

直接用官方给的指令:

pip install http://download.pytorch.org/whl/cu91/torch-0.4.0-cp36-cp36m-linux_x86_64.whl
pip install torchvision

安装Torch

git clone https://github.com/torch/distro.git ~/torch --recursive

然后在torch目录里:

bash install-deps

等指令跑完之后

./install.sh

结果遇到了错误:

lib/THC/CMakeFiles/THC.dir/build.make:4243: recipe for target 'lib/THC/CMakeFiles/THC.dir/THC_generated_THCTensorMathPairwise.cu.o' failed
make[2]: *** [lib/THC/CMakeFiles/THC.dir/THC_generated_THCTensorMathPairwise.cu.o] Error 1
/pkgbuild/torch/torch/extra/cutorch/lib/THC/generic/THCTensorMath.cu(393): error: more than one operator "==" matches these operands:
            function "operator==(const __half &, const __half &)"
            function "operator==(half, half)"
            operand types are: half == half

/pkgbuild/torch/torch/extra/cutorch/lib/THC/generic/THCTensorMath.cu(414): error: more than one operator "==" matches these operands:
            function "operator==(const __half &, const __half &)"
            function "operator==(half, half)"
            operand types are: half == half

贫僧选择了在~/.bashrc里面加上这一句:

export TORCH_NVCC_FLAGS="-D__CUDA_NO_HALF_OPERATORS__"

source ~/.bashrc后再重新用上一条指令,开始安装,这样就没遇到什么问题了。
凡是出现选项之类的就直接yes吧。

最后:

source ~/.bashrc

如果出了错看这里。
搞定。

测试

th -e "require 'cutorch'; require 'cunn'; print(cutorch)"

和在~/torch下

./test.sh

测试结果可能会告诉你有一两个测试没通过,其实可以不用管。。。可能是误差比较大而已,重新跑可能错误就消失了(没必要重新跑,其实已经是通过了的)。

话说回来,能不用就别用了。。。这个框架都不更新了。。。

到时候要删除torch的话直接把torch目录删了就貌似可以了。

参考:

ubuntu16.04安装Anaconda
ubuntu16.04安装torch
虚拟机 安装 CUDA 可行性说明
Ubuntu 16.04下Nvidia 显卡驱动安装
Ubuntu 16.04 64位 安装NVIDIA驱动 CUDA9.1和PyTorch
技嘉Gigabyte主板Z370HD3安装1080ti+ubuntu17.10+Cuda9.1+cudnn7+tensorflow
官方CUDA文档
ubuntu16.04安装torch
torch在ubuntu16.04下的搭建(cuda9.0+cudnn7.0)

你可能感兴趣的:(机器学习,环境配置,Linux)