1. 程式人生 > >linux(ubuntu14.04)+cuda7.5+caffe+openCV2.4.9+matlab+cudnn新手配置

linux(ubuntu14.04)+cuda7.5+caffe+openCV2.4.9+matlab+cudnn新手配置

ubuntu14.04的安裝

******************************************************************************************************

1.先下載一個ultraios,無需啟用,然後製作u盤啟動工具,具體教程請看百度經驗教程

http://jingyan.baidu.com/article/d169e186800f02436711d87b.html

2.製作好u盤啟動工具之後。然後就是安裝ubuntu14.04,在這之前要先下載好ubuntu14.04,然後找到first boot,然後啟動u盤就可以安裝系統了

,安裝分割槽問題見Swimbird博 客:http://blog.sina.com.cn/s/blog_5f0a505101017ruf.html

******************************************************************************************************

cuda7.5安裝

******************************************************************************************************

去官網下載自己系統所需要的cuda7.5,https://developer.nvidia.com/cuda-downloads

我下的是Linux;x86-64;Ubuntu;14.04;runfile(local) 連結:http://pan.baidu.com/s/1i5lTAh3 密碼:qrq8

進行配置,首先剛裝的系統需要

sudo apt-get update

然後

sudo apt-get install libatlas-base-dev libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev

因為我的系統是14.04,所以按照官網上的要求繼續進行第二步操作

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

安裝開發所需要的一些基本包:

sudo apt-get install build-essential

1.首先在BIOS設定裡選擇用Intel顯示卡來顯示或作為主要顯示裝置(開機進入bios設定,找到advanced中的VGA configuration設定,將intel顯示卡設為primary)。(我電腦沒找到這個設定,跳過了)

2.將nouveau新增到黑名單,防止它啟動

cd /etc/modprobe.d
sudo gedit nvidia-graphics-drivers.conf
寫入:
blacklist nouveau
儲存並退出: wq!
檢查:
cat nvidia-graphics-drivers.conf
對於:/etc/default/grub,新增到末尾。
sudo gedit /etc/default/grub
末尾寫入:
rdblacklist=nouveau nouveau.modeset=0
儲存並退出: wq!
檢查:
cat /etc/default/grub

3. 進入Ubuntu, 按 ctrl+alt+F1 進入tty1, 登入tty1後輸入如下命令

sudo service lightdm stop

執行.run檔案,不要覆蓋opengl,

sudo ./cuda_7.5.18_linux.run --no-opengl-libs

不要覆蓋opengl;不要覆蓋opengl;不要覆蓋opengl;否則裝完驅動只有桌面圖示

在安裝過程中, 
Accept EULA conditions 
Say YES to installing the NVIDIA driver 
SAY YES to installing CUDA Toolkit + Driver 
Say YES to installing CUDA Samples
安裝完成, check device nodes : Check if /dev/nvidia* files exist。如果沒有的話sudo modprobe nvidia
重啟桌面服務sudo service lightdm start。此時能夠登入,沒有login-loop問題。

安裝完成後需要在/etc/profile中

①新增環境變數,

sudo gedit /etc/profile

加入

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

儲存後, 執行下列命令, 使環境變數立即生效

source /etc/profile

②新增lib路徑,

在/etc/ld.so.conf.d/新建檔案cuda.conf,並編輯

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

加入

/usr/local/cuda-7.5/lib64

執行下列命令使之立刻生效

sudo ldconfig

繼續,安裝CUDA SAMPLE,安裝下列依賴包

sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev

之後編譯Sample檔案,更若干分鐘後

cd /usr/local/cuda-7.5/samples
sudo make

 編譯完成後, 進入 samples/bin/x86_64/linux/release

sudo ./deviceQuery 
如果出現顯示卡資訊,則驅動及cuda安裝成功:

******************************************************************************************************

 OpenCV2.4.9安裝

******************************************************************************************************

然後是安裝OpenCV:

Github上的指令碼:https://github.com/jayrambhia/Install-OpenCV

下載該指令碼,進入Ubuntu/2.4 目錄, 給所有shell指令碼加上可執行許可權

chmod +x *.sh

然後安裝最新版本:$ sudo ./opencv2_4_9.sh

******************************************************************************************************  Matlab2016a安裝 ******************************************************************************************************

接著前面的工作,就是安裝MATLAB:

(一)下載MATLAB Linux安裝包,並解壓

連結:http://pan.baidu.com/s/1hsuJdGw 密碼:t596

(二)可執行許可權: sudo chmod +x mount_matlab2016a
                                  ./mount_matlab2016a
(三)掛在映象,cd進入,執行安裝: sudo ./install

(四)然後安裝步驟和Windows下相同

(五)完成啟用後驗證是否安裝成功: sudo /usr/local/MATLAB/R2016a/bin/matlab

(六)新增應用和圖示到啟動選單中: sudo gedit /usr/share/applications/Matlab.desktop, 把下載目錄中Matlab.desktop

內容如下:

[Desktop Entry]
Name=Matlab
GenericName=Matlab R2016a
Comment=Matlab R2016a: The Language of the Techinical Computing
Exec=../matLab/bin/matlab -desktop //-desktop前面有空格    

Icon=../matLab/icons/Matlab.png
StartupNotify=true
Terminal=false
Type=Application
Categories=Development; 

檔案中的內容拷貝進去即可修改桌面啟動選單許可權,顯示home資料夾下的隱藏檔案: Ctrl + h,然後修改MATLAB在桌面快捷鍵許可權:

$ sudo chmod 777 -R ./.matlab

在面板Development 中找到matlab 圖示,然後新增到桌面,最後執行

unmount_matlab2016a將映象ISO解除安裝掉。

******************************************************************************************************  caffe的安裝 ******************************************************************************************************

現在安裝和用mnist測試一下caffe,

先下載caffe,https://github.com/BVLC/caffe

1. 安裝pycaffe必須的一些依賴項:

sudo apt-get install -y python-numpy python-scipy python-matplotlib python-sklearn python-skimage python-h5py python-protobuf python-leveldb python-networkx python-opencv python-nose python-pandas python-gflags Cython ipython
sudo apt-get install -y protobuf-c-compiler protobuf-compiler

2.切換到Caffe的資料夾,生成Makefile.config配置檔案,執行:
cp Makefile.config.example Makefile.config

4. 配置Makefile.config檔案(僅列出修改部分)

a. 啟用GPU,添加註釋"#"

# CPU_ONLY := 1

b. 配置一些引用檔案(增加部分主要是解決新版本下,HDF5的路徑問題)

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/lib/x86_64-linux-gnu/hdf5/serial/include

LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial

c. 如果使用MKL的時候改為:

BLAS := mkl

d. 配置路徑,實現caffe對Python和Matlab介面的支援

PYTHON_LIB := /usr/local/lib

MATLAB_DIR := /usr/local/MATLAB/R2016a

最新版的caffe報錯:building caffe: failed to see hdf5.h

解決:

sudo apt-get install libhdf5-dev 

然後配置檔案中修改一下,

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial/

5. 配置Makefile檔案(實現對OpenCV 2.x的支援)

查詢“Derive include and lib directories”一節,修改“LIBRARIES +=”的最後一行,增加opencv_imgcodecs

opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs

(1). change the Makefile :

  add "opencv_imagecodecs" to the last of LIBRARIES += opencv_core opencv_highgui opencv_imgproc;

(2). remove the files in build :

  rm -rf ./build/*

(3). make all -j8

6. 編譯caffe

(-j8)是使用CPU的多核進行編譯,可以極大地加速編譯的速度,建議使用。

make all -j8
make test -j8
make runtest -j8

編譯Python和Matlab用到的caffe檔案

make pycaffe -j8
make matcaffe -j8

1. 降級安裝gcc/g++版本為4.7.x

(1). 下載gcc/g++ 4.7.x

sudo apt-get install -y gcc-4.7
sudo apt-get install -y g++-4.7

(2). 連結gcc/g++實現降級

cd /usr/bin
sudo rm gcc
sudo ln -s gcc-4.7 gcc
sudo rm g++
sudo ln -s g++-4.7 g++

2. 暴力引用新版本GLIBCXX_3.4.20

sudo cp /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20 /usr/local/MATLAB/R2016a/sys/os/glnxa64/libstdc++.so.6.0.20 
sudo mv libstdc++.so.6 libstdc++.so.6.backup (僅僅是備份,可以不操作)。
sudo ln -s libstdc++.so.6.0.20 libstdc++.so.6
sudo ldconfig -v

通過命令“strings /usr/local/MATLAB/R2016a/sys/os/glnxa64/libstdc++.so.6 | grep GLIBCXX_” 可以看一下,是否已經成功包含了GLIBCXX_3.4.20,如果已經存在,基本上就成功了。

接下來就是測試。

******************************************************************************************************  mnist測試 ******************************************************************************************************

1. 資料預處理

sh data/mnist/get_mnist.sh

2. 重建lmdb檔案。Caffe支援三種資料格式輸入網路,包括Image(.jpg, .png等),leveldb,lmdb,根據自己需要選擇不同輸入吧。

sh examples/mnist/create_mnist.sh

生成mnist-train-lmdb 和 mnist-train-lmdb資料夾,這裡包含了lmdb格式的資料集

3. 訓練mnist

sh examples/mnist/train_lenet.sh
cd
sudo tar xvf cudnn-7.0-linux-x64-v4.0-rc.tgz
cd cuda/include
sudo cp *.h /usr/local/include/
cd ../lib64
sudo cp lib* /usr/local/lib/
cd /usr/local/lib
sudo chmod +r libcudnn.so.4.0.4
sudo ln -sf libcudnn.so.4.0.4 libcudnn.so.4
sudo ln -sf libcudnn.so.4 libcudnn.so
sudo ldconfig
將caffek根目錄下 Makefile.config中 USE_CUDNN 行的註釋去除,然後重新進行編譯。
cd ~/caffe
sudo vi Makefile.config
 將USE_CUDNN 行的註釋符號#去除,即 USE_CUDNN := 1
然後重新編譯
sudo make clean
sudo make all
到此,全部安裝完成。
如果沒有gpu,則不能用cudnn。

參考連結

1:http://blog.csdn.net/u010678153/article/details/46891571

2:http://www.bubuko.com/infodetail-1270886.html

3:http://www.th7.cn/system/lin/201602/154122.shtml

4:http://www.cnblogs.com/denny402/p/5067265.html