歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux技術

ubuntu15.04+caffe+cuda7.5+cudnnv4+mkl+opencv3

一、Linux的安裝~ubuntu15.04(自帶python2.7.11)
apt-get update 
apt-get install git vim cmake automake

二、cuda7.5
獲取CUDA安裝包,安裝包NVidia官網下載。(https://developer.nvidia.com/cuda-downloads)
dpkg -i cuda-repo-ubuntu1504-7-5-local_7.5-18_amd64.deb`
apt-get update`
apt-get install cuda`

再安裝nvcc編譯器,輸入以下命令查看安裝是否成功
nvcc --version

三、matlab
1.下載Mathworks.Matlab.R2014a.Unix.iso,右鍵 - 使用磁盤映像掛載器打開”,進入裝載的虛擬光盤,拷貝全部文件至home/Matlab 文件夾,復制Crack/install.jar至 home/Matlab/java/jar/ 並覆蓋源文件,不然編譯會出bug.
2.授權安裝文件夾
$ chmod a+x Matlab -R

3.安裝
$  ./install
4.激活(略)
5.拷貝 libmwservices.so 至 /usr/local/MATLAB/R2014a/bin/glnxa64
6.降級gcc,不然之後matlab的mex無法使用
$ apt-get install -y gcc-4.7
$ apt-get install -y g++-4.7
鏈接gcc/g++降級
<pre>$ cd /usr/bin
$ rm gcc
$ ln -s gcc-4.7 gcc
$ rm g++
$ ln -s g++-4.7 g++


7. 暴力引用新版本GLIBCXX_3.4.20
$ sudo cp /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20 /usr/local/MATLAB/R2014a/sys/os/glnxa64/libstdc++.so.6.0.20 (libstdc++.so.6.0.20的版本,可能因為系統不同而不同,使用最新的就可以了。)
目錄切換到 /usr/local/MATLAB/R2014a/sys/os/glnxa64/ ,非常重要!
$ 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/R2014a/sys/os/glnxa64/libstdc++.so.6 | grep GLIBCXX_” 可以看一下,是否已經成功包含了GLIBCXX_3.4.21,如果已經存在,基本上就成功了。
四、安裝BLAS
1.可以選擇(ATLAS,MKL或者OpenBLAS),這裡使用MKL,首先下載並安裝英特爾® 數學內核庫 Linux* 版MKL(Intel(R) Parallel Studio XE Cluster Edition for Linux 2016)
$ tar zxvf parallel_studio_xe_2016.tar.gz (如果你是直接拷貝壓縮文件過來的)
$ chmod a+x parallel_studio_xe_2016 -R
$ sh install_GUI.sh
2.MKL與CUDA的環境設置
a. 新建intel_mkl.conf, 並編輯之:
$ sudo gedit /etc/ld.so.conf.d/intel_mkl.conf
/opt/intel/lib/intel64
/opt/intel/mkl/lib/intel64
b. 新建cuda.conf,並編輯之:
$ sudo gedit /etc/ld.so.conf.d/cuda.conf
/usr/local/cuda/lib64
/lib
c. 完成lib文件的鏈接操作,執行:
$ sudo ldconfig -v
五、安裝OpenCV 3.0.0
1. 下載並編譯OpenCV(官網原版OpenCV:http://opencv.org/), 或者使用我提供的修改版的安裝包(前面的百度雲下載)(下面的安裝方式使用該包完成,安裝包修改了dependencies.sh文件並增加了OpenCV 3.0.0的安裝文件)
2. 切換到文件保存的文件夾,然後安裝依賴項:
$ sudo sh Ubuntu/dependencies.sh
3. 切換目錄Ubuntu\3.0\安裝OpenCV 3.0.0:
$ sudo sh opencv3_0_0.sh
六、安裝其他依賴項
1. Google Logging Library(glog),下載地址:https://code.google.com/p/google-glog/,然後解壓安裝:
$ tar zxvf glog-0.3.3.tar.gz
$ ./configure
$ make
$ sudo make install
如果沒有權限就chmod a+x glog-0.3.3 -R , 或者索性 chmod 777 glog-0.3.3 -R , 裝完之後,這個文件夾就可以kill了
apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler protobuf-c-compiler protobuf-compiler
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-nose python-pandas python-gflags Cython ipython
七、caffe
1.下載
2. 安裝配置nVidia cuDNN 加速Caffe模型運算
a. 安裝前請去先官網下載最新的cuDNN (cudnn-7.0-linux-x64-v4.0-prod)。
$ sudo cp include/cudnn.h /usr/local/include
$ sudo cp lib64/libcudnn.* /usr/local/lib
b. 鏈接cuDNN的庫文件
$ sudo ln -sf /usr/local/lib/libcudnn.so.4.0.7 /usr/local/lib/libcudnn.so.4
$ sudo ln -sf /usr/local/lib/libcudnn.so.4 /usr/local/lib/libcudnn.so
$ sudo ldconfig -v
3. 切換到Caffe-master的文件夾,生成Makefile.config配置文件,執行:
$ cp Makefile.config.example Makefile.config
4. 配置Makefile.config文件(僅列出修改部分)
a. 啟用CUDNN,去掉"#"
USE_CUDNN := 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. 啟用Intel Parallel Studio XE 2016
BLAS := mkl
d. 配置路徑,實現caffe對Python和Matlab接口的支持
PYTHON_LIB := /usr/local/lib
MATLAB_DIR := /usr/local/MATLAB/R2014a
c. 啟用OpenCV 3.0, 去掉"#"
OPENCV_VERSION =3
6. 編譯caffe-master!!!"-j16"是使用CPU的多核進行編譯,可以極大地加速編譯的速度,建議使用。
$ make all -j16
$ make test -j16
$ make runtest -j16
編譯Python和Matlab用到的caffe文件
$ make pycaffe -j16
$ make matcaffe -j16
可能出現的錯誤:
11. can not find "hdf5.h":
# Whatever else you find you need goes here.
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
/usr/include/hdf5/serial
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib
Copyright © Linux教程網 All Rights Reserved