詳細安裝指南-Ubuntu16.04,CUDA8.0,Caffe,OpenCV3.1,Theano,Tensorflow,純屬轉載,等待自己修改

服務器系統崩潰,買的組裝服務器不靠譜啊,售後很熱情,但是技術。。。

Ubuntu16.04

Ubuntu16.04就自己裝吧,這個省略。安裝完成之後,根據自己實際情況,配置一下怎麼上網。之後,更新源,可以參考我的Tips文章,裏面有可靠的源更新。

Anaconda

Anaconda是一個很出名的集成Python環境,相比起一個一個來安python庫,直接用Anaconda提供的巨多的庫更加方便。
網站:https://www.continuum.io/downloads
這裏寫圖片描述
直接下載自己喜歡的版本那就行了。我用的是2.7的64位.下好之後是一個.sh文件
這裏寫圖片描述
上面的圖裏面官網已經告訴你怎麼裝的了。
bash +你下載的.sh文件到時候會有一些選擇給你,都選默認就行了,包括是否寫入PATH,都選擇是。那麼稍等,Anaconda的python就會系統替換默認的python
然後你的python環境就安裝好了。
在命令行裏面輸入spyder還能夠得到一個提供的python IDE,很方便。
這裏寫圖片描述
那麼Anaconda就到這裏了。

CUDA7.5

雖然我使用的是Ubuntu16.04,但是我的機器是GeForce 900系列的Titan X 顯卡,架構Maxwell,百度了很多資料,只有cuda7.5支持Maxwell架構,而8.0都是明言支持Pascal。但是cuda7.5的版本截止到現在只更新到了Ubuntu15.04,沒辦法,試試吧。

步驟一:下載cuda7.5.

1、官網地址: https://developer.nvidia.com/cuda-75-downloads-archive

2、下載runfile,然後按照頁面上的命令安裝就可以了:sudo sh cuda_7.5.18_linux.run  PS:之前我已經裝好英偉達的顯卡驅動了,詳見我的Tips文章。

 
 

重啓之後了,接下來的工作也都能夠在圖形界面下面完成。驅動安裝好之後,就應該安裝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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

到這裏,你已經安裝成功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
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

這裏寫圖片描述

然後設置環境變量和動態鏈接庫,在命令行輸入:

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也到這裏了。

theano

用最快的方式。一句話,sudo pip install theano就行了。但是如前面所說,可能有的人裝的是anaconda會出現comment not found的情況,那就要加上絕對路徑來安裝,一般pip在anaconda的bin目錄裏面。
這個時候,命令就是sudo ~/anaconda2/bin/pip install theano
運行之後,如下圖
這裏寫圖片描述
上面提示就已經安裝完成了,但是是不是安裝成功了呢?
直接複製下面的測試代碼看是不是能夠出來結果。

from theano import function, config, shared, sandbox
import theano.tensor as T
import numpy
import time

vlen = 10 * 30 * 768  # 10 x #cores x # threads per core
iters = 1000

rng = numpy.random.RandomState(22)
x = shared(numpy.asarray(rng.rand(vlen), config.floatX))
f = function([], T.exp(x))
print(f.maker.fgraph.toposort())
t0 = time.time()
for i in range(iters):
    r = f()
t1 = time.time()
print("Looping %d times took %f seconds" % (iters, t1 - t0))
print("Result is %s" % (r,))
if numpy.any([isinstance(x.op, T.Elemwise) for x in f.maker.fgraph.toposort()]):
    print('Used the cpu')
else:
    print('Used the gpu')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

這裏寫圖片描述
成功,但是這個時候使用的CPU來跑的。然後接下來的任務就是給他添加GPU加速。
在你的主目錄下面,(就是你直接~/文件夾,後者你自己cd之後回車的那個文件夾)。
sudo vim .theanorc 建立一個.theanorc的文件。
文件中的的內容直接複製下面就行了。

[global]
floatX=float32
device=gpu
base_compiledir=~/external/.theano/
allow_gc=False
warn_float64=warn
[mode]=FAST_RUN

[nvcc]
fastmath=True

[cuda]
root=/usr/local/cuda

保存。再次運行那個例子。得到結果
這裏寫圖片描述
CPU那個用了30多秒,這個只用了0.8秒,說明GPU的加速還是有點用的。
至此,theano安裝完成了。

tensorflow

對於這個我們也用最簡單的方法。首先,我們前面已經配好了幾乎所有的環境。回顧一下環境依次爲CUDA8.0,UBUNTU16.04,Anaconda的python2.7版本這樣一些。
接下來採用的是直接用conda安裝的方法,網址爲
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/g3doc/get_started/os_setup.md#pip-installation
下面給了幾張圖標明瞭使用的方式,但是你不用仔細去看,下面會有從這個安裝教程精簡出來的幾個命令。複製這幾個命令就行了。
這裏寫圖片描述
這裏寫圖片描述
這裏寫圖片描述
分別運行

conda create -n tensorflow python=2.7

source activate tensorflow

export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.11.0rc2-cp27-none-linux_x86_64.whl

pip install --ignore-installed --upgrade $TF_BINARY_URL
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

下面是一行一行運行這些命令的樣子
這裏寫圖片描述

這裏寫圖片描述
然後就安裝好了
打開spyder,在~/anaconda2/lib/python2.7/site-packages/tensorflow/models/imag下面有mnist的代碼,如下圖。
這裏寫圖片描述
複製到spyder裏面跑一下,得到
這裏寫圖片描述
最後的測試失誤降到了0.8%,那麼tensorflow也安裝成功了。

Caffe

因爲Caffe是最難安裝的,因此就放到了最後了。廢話不說多了。
首先你需要從github上面clone或者下載.zip的壓縮包。效果是一樣的。然後你得到一個cafffe-master的壓縮包或者文件夾。進到這個文件夾裏面,你會看到是這個樣子的。
這裏寫圖片描述
m你會看到其中有一個文件叫Makefile.config.example.這個文件是官方給出了編譯的“模板”,我們可以直接拿過來小小的修改一下就行。複製下面的命令把名字改爲Makefile.config

sudo cp Makefile.config.example Makefile.config

你會發現下面多了一個Makefile.config的文件
這裏寫圖片描述

打開這個文件並且修改(我這裏用的是sublime,你可以換成其他的編輯器比如vim):

sudo subl Makefile.config

你能夠看到類似於這樣的東西
這裏寫圖片描述

然後根據個人情況修改文件:
1.若使用cudnn,則將#USE_CUDNN := 1修改成: USE_CUDNN := 1 (就是去掉註釋的‘#’號)

2.若使用的opencv版本是3的,則將#OPENCV_VERSION := 3 修改爲: OPENCV_VERSION := 3

3.若要使用python來編寫layer,則將#WITH_PYTHON_LAYER := 1修改爲 WITH_PYTHON_LAYER := 1

4.要是你是用的anaconda的話,還需要改一些地方
這裏寫圖片描述
把之前的PYTHON_INCLUDE加上註釋,把ANACONDA_HOME以及下面的PYTHON_INCLUDE 都去掉,並且改爲如下圖最終的樣子。
這裏寫圖片描述

5.重要 :
# Whatever else you find you need goes here.下面的
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib
修改爲:
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial
(因爲ubuntu16.04的文件包含位置發生了變化)

6.修改makefile文件
打開makefile文件,做如下修改:
將(大概409行的樣子):
NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS)
替換爲:
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
這裏寫圖片描述

在Makefile文件的第大概181行,把 hdf5_hlhdf5修改爲hdf5_serial_hlhdf5_serial,即
將:
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5
改爲:
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial
這裏寫圖片描述
(6)編輯/usr/local/cuda/include/host_config.h
將其中的第115行註釋掉:
#error-- unsupported GNU version! gcc versions later than 5 are not supported!
改爲
//#error-- unsupported GNU version! gcc versions later than 5 are not supported!
這裏寫圖片描述

然後就可以開始編譯了
sudo make all -j4
然後就編譯好了
這裏寫圖片描述

這裏測試一下
sudo make test
可能有個緩慢的編譯過程,然後出現如下如所示的

到此,所有的東東都安裝好了。中間遇到了很多的坑。所以,寫這個讓大家少遇到一點坑,能夠很快的把環境配好,把時間花在有用的地方。
看到這篇文章對你有用的或者是遇到問題的,都歡迎留個言,一起學習進步啊。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章