最新基于CUDA9.0,cudnn7,和tensorflow1.8
在ubuntu18.04上面的GCC版本是7.3,还是太高了. 我们这里简化了GCC降级的方法. 把GCC降级到了GCC5.5
学习了理论很久了,要折腾实践的东西,那么自然绕不过一些主流的框架,其实那些框架本身是不难安装的,但是一旦涉及到GPU(用于加速),就开始变得麻烦重重,说麻烦也不麻烦,但是真的在第一次安装框架的时候,每一个人都是新人,各种坑。网上全面详细适合新手的教程很少很少,所以在自己安装好的情况下,写一篇详细齐全的希望新手少走弯路。
用的都是最新的,怕用旧的很快就过时了。新的比起旧的其实还更好装一点。下面开始正式讲一下。
安装一些依赖项。
这里安装的依赖项是为后面的安装做准备的,反正是要安装的(当然后面还有一些要安装),这里一行一行复制到你的命令行执行就行。
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,还是因为它的方便.你可以方便的安装,也可以方便的卸载. 进官网选择你电脑对应的版本下载下来就是了。 下载下来得到相应的一个.sh文件。直接用bash命令来运行就行.如下图。
然后一路根据提示安装就行。 到最后,会有一个提示,问你是不是想要把Anaconda的python作为默认的python,这里建议选择是。如下图
也就意味着,之后要是安装什么东西需要python的路径的时候,你需要使用这个新的路径.
相比起安装那些框架,我想有很多人是在这里牺牲的吧…很多人都是摸索了很久,出现了很多问题。
首先是准备工作:
1.自己的显卡需要什么驱动:
http://www.nvidia.com/Download/index.aspx?lang=en-us 进去自己按照自己的具体配置测试一下。
比如这里我自己的是要384的驱动。
2.下载CUDA9.0:
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了,但是安装CUDA9.0最高支持的版本只到GCC6.0
,那么接下来的工作是给GCC降级,我们这里推荐降级到GCC5.5
. 很简单,依次输入两行命令就行了。(这两个命令就是分别来安装gcc和g++就不用我啰嗦了)
sudo apt install gcc-5
sudo apt install g++-5
然后试着查看一下版本,发现还是默认的gcc 7.3
,这是因为没有修改软连接,修改一下就行了。
进入到/usr/bin
目录下, 运行一下ls -l gcc*
,可以看到gcc是指向gcc-7的,
那么我们把它链接到gcc-5就行了,运行下面的命令:
sudo mv gcc gcc.bak #备份
sudo ln -s gcc-5 gcc #重新链接gccsudo mv g++ g++.bak #备份
sudo ln -s g++-5 g++ #重新链接g++
这个时候可以再看一下gcc和g++的版本,已经都变成了5.5.
5.安装CUDA
降到5.5之后,可以直接来安装了cuda了,进到你下载好的cuda-9.0的run文件目录,运行
sudo sh cuda_9.0.176_384.81_linux.run
注意:
执行后会有一些提示让你确认,在第3个提示的地方,有个让你选择是否安装驱动时(Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 384.81?),选择否:因为前面我们已经安装了新的驱动,所以这里不要选择安装。
其余的都直接默认或者选择是即可。
然后安装的时候会比你预想的要快很多。。。安装成功之后,会出来类似于下面形式的提示:
然后继续把接下来的几个补丁也安装上,安装路径使用默认的路径就行了.
sudo sh cuda_9.0.176.1_linux.run
sudo sh cuda_9.0.176.2_linux.run
sudo sh cuda_9.0.176.3_linux.run
到这里,你已经安装成功CUDA了,最后,还要多配置一下环境变量:
sudo vim ~/.bashrc
来编辑.bashrc配置文件,到文件最后,写入下面几句话(直接复制就行)
export PATH=/usr/local/cuda-9.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64$LD_LIBRARY_PATH
好了,重启一下。
现在你已经重启了机子了,要是没有出现很多人遇到的在登录界面进不去的情况的话,就恭喜你了。来个自带的例子测一下。
cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery
出现了下面的你的GPU的一些信息的话,就是真的安装成功了。
到这里,CUDA就安装成功了,其实不算是很难,注意一些情况就行了。
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算是安装完成了。
首先肯定是先安装依赖了,官方列出了一些:
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也到这里了。
CPU版本和GPU版本之间选择一个就行。
首先,我们前面已经配好了几乎所有的环境。我们这里采用官网这里最简单的方法来安装。
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!的话,就表示安装成功啦。