您的位置:首页 > 运维架构

爆详细Ubuntu16.04,CUDA9.1,OpenCV3.1,Tensorflow完全配置指南

2016-11-04 17:27 916 查看

2017.2.21更新:

更新内容:

删掉了Anaconda的部分,因为其实很多库自己用pip装一下就行了,Anaconda反而会牵扯到很多的依赖和配置文件的改变。既然ubuntu自带了python,就不用费力去装新的了。

tensorflow 1.0出来了,有了很多的改进,安装也变得更加的简单,所以,新的安装以1.0版本的最简单的安装方式为主。

2017.11.21更新

更新内容:

重新添加了Anaconda的部分,为了获得更好的性能,这里把之前的最简单的安装操作改为了基于编译的操作。懒得折腾的童鞋依然可以使用pip最简单的方式来安装。

删掉了caffe这一部分的内容,删掉了Theano这一部分内容

基于最新的1.4版本

2018.1.27更新

tensorflow 1.5正式发布了,终于支持了cuda9和cudnn7, 意味着之前的很多东西都要重新更新一遍了.

最新基于CUDA9.1,cudnn7,和tensorflow1.5

因为不再有之前CUDA8.0对于GCC的支持问题,这里删除了GCC降级的内容.

学习了理论很久了,要折腾实践的东西,那么自然绕不过一些主流的框架,其实那些框架本身是不难安装的,但是一旦涉及到GPU(用于加速),就开始变得麻烦重重,说麻烦也不麻烦,但是真的在第一次安装框架的时候,每一个人都是新人,各种坑。网上全面详细适合新手的教程很少很少,所以在自己安装好的情况下,写一篇详细齐全的希望新手少走弯路。

用的都是最新的,怕用旧的很快就过时了。新的比起旧的其实还更好装一点。下面开始正式讲一下。

一.Ubuntu16.04

首先就是Ubuntu16.04,今年出来的新的Ubuntu长期支持版本,能够折腾到安装框架的地步,相信Ubuntu16.04已经是安装好了的,并且应该对于Linux类型的系统有了一定的了解。所以这里不讲Ubuntu16.04的安装了(并不困难,网上教程超多)。因为浪费篇幅对吧,有经验的直接跳过这部分.

在这里要说一句,安装到Ubuntu之后,尽量切换软件的源,使用163的或者阿里云的都好,那样安装一些依赖软件的时候速度会快很多。

打开软件中心,选择updates那个选项,出现



Download from那个选项里面选择就行,比如我是用的阿里云的….接下来相信大部分都会了,就不献丑了。

安装一些依赖项。

这里安装的依赖项是为后面的安装做准备的,反正是要安装的(当然后面还有一些要安装),这里一行一行复制到你的命令行执行就行。

sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler

sudo apt-get install –no-install-recommends libboost-all-dev

sudo apt-get install libopenblas-dev liblapack-dev libatlas-base-dev

sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

要是上面的安装出现了一些问题,随时sudo apt-get update.你知道我在说什么。

说到这里,Ubuntu部分就介绍完了。

二.Anaconda

Anaconda下载

之所以还是下回来Anaconda,还是因为它的方便.你可以方便的安装,也可以方便的卸载. 进官网选择你电脑对应的版本下载下来就是了。

下载下来得到相应的一个.sh文件。直接用bash命令来运行就行.如下图。



然后一路根据提示安装就行。

到最后,会有一个提示,问你是不是想要把Anaconda的python作为默认的python,这里建议选择是。如下图



也就意味着,之后要是安装什么东西需要python的路径的时候,你需要使用这个新的路径.

CUDA 9.1

步骤一:熟悉显卡信息和下载CUDA9.1安装包

相比起安装那些框架,我想有很多人是在这里牺牲的吧…很多人都是摸索了很久,出现了很多问题。

首先是准备工作:

1.自己的显卡需要什么驱动:

http://www.nvidia.com/Download/index.aspx?lang=en-us 进去自己按照自己的具体配置测试一下。





比如这里我自己的是要384的驱动。

2.下载CUDA9.1:

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

大概是下面这个样子,按照自己的平台来选,然后下载那个.run文件就行。



准备工作已经做完,这时候,你已经知道了你需要的驱动信息并且下载了一个cuda的run文件。

步骤二:安装显卡驱动

接下来就是自己安装显卡驱动了,没错是自己安装,cuda的安装包里面也提供驱动的安装功能,但是,尽量自己安装。(显卡驱动和CUDA不是同一个概念啊,别搞混了)

1.卸载你电脑中此刻有的nvidia的驱动。(复制命令就行,方便,后面也一样)

sudo apt-get remove –purge nvidia*

运行了这个命令之后,你系统中的NVIDIA、的一些驱动就应该被卸载了。

2.添加一个PPA到系统,等一下安装驱动要用的。复制下面的话命令就行(放在这里是因为你现在还在图形界面,复制方便)

sudo add-apt-repository ppa:graphics-drivers/ppa

复制完上面那个命令执行之后,千万记得
sudo apt-get update


3.上面的准备工作做完,按CTRL+ATL+F1进入终端1(很基础的东西不用我解释啦),这个时候你应该就脱离图形界面进入字符界面了(需要重新登录一次就登陆一次。),要是这个时候你看不到教程,还是推荐用手机或者平板或者其他的边看教程边操作。

在终端下面运行:

sudo service lightdm stop

然后运行:

sudo apt-get install nvidia-384(我前面说过我的驱动是384,就写384,你的是什么就写什么)

然后就等待驱动安装好。。。。。

安装好之后,运行
sudo service lightdm start
来启动图形界面,并且登录。然后,你这个时候应该又回到图形界面了。

这时候你可以运行:
nvidia-smi
来看是不是能够输出你的GPU的一些信息。要是不能够输出的话,重启。能够输出的话,也建议重启一次。



4.降级GCC

重启之后了,接下来的工作也都能够在图形界面下面完成。驱动安装好之后,就应该安装CUDA了,但是安装CUDA8.0最高支持的版本只到GCC5.3,前面说过,任何方式的升级GCC都已经升级到了5.4.那么肯定是安装不了,(不用自己用5.4是尝试,是真的安装不了)。那么接下来的工作是给GCC降级,这里给出的是手动编译源代码的方式。(你可以全程复制命令,一行一行复制,一行完成之后复制另一行)

①下载GCC源码并且解压

wget ftp://mirrors.kernel.org/gnu/gcc/gcc-5.3.0/gcc-5.3.0.tar.gz

tar -zxvf gcc-5.3.0.tar.gz

②下载编译所需依赖项:

cd gcc-5.3.0 //进入解包后的gcc文件夹

./contrib/download_prerequisites //下载依赖项

cd .. //返回上层目录

③.建立编译输出目录:

mkdir gcc-build-5.3.0

④进入输出目录,执行以下命令,并生成makefile文件:

cd gcc-build-5.3.0

../gcc-5.3.0/configure –enable-checking=release –enable-languages=c,c++ –disable-multilib

⑤编译(这里会花一点时间):

make -j4

⑥.安装

sudo make install

弄好了,然后你可以看一下自己的gcc版本



5.安装CUDA

降到5.3之后,可以直接来安装了cuda了,进到你下载好的cuda-8.0的run文件目录,运行
sudo sh cuda_8.0.27_linux.run


注意:执行后会有一些提示让你确认,在第二个提示的地方,有个让你选择是否安装驱动时(Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 361.62?),一定要选择否:因为前面我们已经安装了更加新的nvidia367,所以这里不要选择安装。

其余的都直接默认或者选择是即可。然后安装的时候会比你预想的要快很多。。。安装成功之后,会出来类似于下面形式的提示:

===========
= Summary =
===========
Driver: Not Selected
Toolkit: Installed in /usr/local/cuda-8.0
Samples: Installed in /home/textminer
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 with the name of this run file:
sudo .run -silent -driver
Logfile is /opt/temp//cuda_install_6583.log


到这里,你已经安装成功CUDA了,最后,还要多配置一下环境变量:

sudo vim ~/.bashrc
来编辑.bashrc配置文件,打开之后类似下图



到文件最后,写入下面几句话(直接复制就行),千万别告诉我你不会用vim…..(用其他的文本编辑器也行)

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




然后设置环境变量和动态链接库,在命令行输入:

sudo vim /etc/profile

在打开的文件末尾加入:

export PATH = /usr/local/cuda/bin:$PATH

保存之后,创建链接文件:

sudo gedit /etc/ld.so.conf.d/cuda.conf

在打开的文件中添加如下语句:

/usr/local/cuda/lib64

然后执行

sudo ldconfig

使链接立即生效。

好了,重启一下机子。

现在你已经重启了机子了,要是没有出现很多人遇到的在登录界面进不去的情况的话,就恭喜你了。来个自带的例子测一下。

cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery

sudo make

./deviceQuery



出现了下面的你的GPU的一些信息的话,就是真的安装成功了。



到这里,CUDA就安装成功了,其实不算是很难,注意一些情况就行了。

cuDNN

cuDNN深度学习加速的一些库。

网址:https://developer.nvidia.com/rdp/cudnn-download

可能要自己注册一下,之后下载其中的cuDNN v5.1 Library for Linux,下图中的第三个就是了。



下载的时候发现是一个压缩包,下完之后解压

解压出来是一个cuda文件夹,进去有两个文件夹,如下图



(提示:接下来的步骤命令直接复制就行,后面有讲解,复制方便一些)

下载完cudnn5.0之后进行解压,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.5 libcudnn.so.5 #生成软衔接

sudo ln -s libcudnn.so.5 libcudnn.so #生成软链接

执行完之后,cuDNN算是安装完成了。

OpenCV3.1

首先肯定是先安装依赖了,官方列出了一些:

sudo apt-get install build-essential

sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev

sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

sudo apt-get install –assume-yes libopencv-dev libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libtiff5-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libxine2-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev libtbb-dev libqt4-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils unzip

sudo apt-get install ffmpeg libopencv-dev libgtk-3-dev python-numpy python3-numpy libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libtiff5-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libxine2-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libv4l-dev libtbb-dev qtbase5-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev

反正不管了,全部都装上去。

在你喜欢的地方建立一个工作目录,随便什么名字,就在home目录下面建立了一个OpenCV的目录

mkdir OpenCV


进入这个工作目录(OpenCV)然后用git克隆官方的项目(下载接受会需要一点时间,等待)

cd Opencv

git clone https://github.com/opencv/opencv.git

git clone https://github.com/opencv/opencv_contrib.git

克隆好了之后,你就会看见你的工作目录(OpenCV)下面有了两个项目的文件夹opencv了。

进入到你下载的那个opencv文件夹,这时候建立一个build的文件夹,用来接收cmake之后的文件。

cd build
进入到build里面,运行这句命令(直接复制就行):

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..

这里要解释一下,后面是一个空格加上两个点,不要搞错了。

运行之后,下图表示cmake完成了。



这个时候的build下面也有了一些文件。你当然不用管这些是什么。

直接运行sudo make -j4,编译等待



make完成之后,再
sudo make install
就安装好了。

你能够在/usr/local中找到你新安装的opencv的一些头文件和库了。

这里要说明一下,要是中途出现了一些问题是与cuda有关的,打开opencv下面那个cmakelist文件把with_cuda设置为OFF,如下图,之后再cmake,再编译。



OK,OpenCV也到这里了。

五.TensorFlow

CPU版本和GPU版本之间选择一个就行。

准备工作

安装bazel

把下面的命令一行一行复制到命令行中去就行。

sudo apt-get install openjdk-8-jdk

sudo add-apt-repository ppa:webupd8team/java

sudo apt-get update && sudo apt-get install oracle-java8-installer

echo “deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8” | sudo tee /etc/apt/sources.list.d/bazel.list

curl https://bazel.build/bazel-release.pub.gpg | sudo apt-key add -

sudo apt-get update && sudo apt-get install bazel

1.CPU版本

首先最简单的方法,就是pip安装的方式,

sudo pip install –upgrade –ignore-installed tensorflow

就不多讲了,这里重点讲一下怎么使用编译的方式来安装,因为编译的方式得到的安装包更加贴合自己的硬件,可以发挥更好的性能.

首先下载到tensorflow的源码,这时候直接到GitHub:tensorflow master下载最新的源码就行。解压下载的压缩文件,进去可以看到一些文件。



在这个文件夹下面打开命令行,运行configure文件。

./configure

对于这个我们也用最简单的方法。首先,我们前面已经配好了几乎所有的环境。我们这里采用官网这里最简单的方法来安装。

Installing with native pip

要是之前安装过tensorflow的,建议先卸载之前版本的tensorflow。

sudo pip uninstall tensorflow

卸载之后,直接用下面的命令来安装tensorflow

sudo pip install –upgrade –ignore-installed tensorflow-gpu

然后就安装好啦,运行下面的代码检验一下

import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))


正确输出Hello, TensorFlow!的话,就表示安装成功啦。

这里要注意,因为这是tensorflow1.0版本,和之前的版本有一些小小的不兼容,也就是说,你之前的代码有很大的几率运行失败。但是其实这是小事,以前的代码也是很容易迁移到新版本上面的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐