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/caffe1. 安裝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,如果已經存在,基本上就成功了。
接下來就是測試。
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