Caffe + Ubuntu 15.04/16.04 + CUDA 7.5/8.0 在伺服器上安裝配置及解除安裝重新安裝(已測試可執行)
第一部分 Linux安裝
如何在Windows系統上製作一個USB安裝盤:中文,英文。
總共用分出的500G的空間來安裝Ubuntu 15.04,這個版本是最新的版本,有個好處是,可以直接訪問Windows8.1的NTFS分割槽,建議安裝英文版本,中文版本在文字命令模式下有時會出現亂碼。
如果是裝雙系統啟動建議學習一下
計算機是如何啟動的
Linux的檔案系統
ext2:這個檔案系統在Linux下使用了很久。ext是英語Extended的前三個字母,是“擴充套件的”的意思。由法國程式設計師Remy Card設計,他也是ext(第一代擴充套件檔案系統)的設計者。ext檔案系統的一大優勢是幾乎不怎麼產生磁碟碎片,所以在Linux系統下一般不需要進行磁碟碎片整理。
ext3:ext3和ext2很接近,不過ext3是日誌型檔案系統,所以比之ext2(不是日誌型),ext3在故障時可以恢復資料。ext3和ext2高度相容。
ext4:ext3的演進,擴大了磁碟分割槽的大小,進一步減少了磁碟碎片的產生機率
所以ext2,ext3和ext4分別是Second Extended Filesystem(第二代擴充套件檔案系統),Third Extended Filesystem(第三代擴充套件檔案系統)和Fourth Extended Filesystem(第四代擴充套件檔案系統)的縮寫。
Linux下磁碟分割槽的名稱
dev是英語device的頭三個字母,表示"裝置" 檔案。
第一個字母:h或s。h表示IDE介面的硬碟。s表示SATA或SCSI介面的硬碟。
第二個字母:總是d。英語drive的首字母,表示"磁碟驅動器"。
第三個字母:a,b,c,d,等等。表示順序。
hda一般是指IDE介面的硬碟,hda一般指第一塊硬碟(磁碟),類似的有hdb,hdc等。
sda一般是指SATA或SCSI介面的硬碟,sda一般指第一塊硬碟(磁碟),類似的有sdb,sdc等。
主分割槽和邏輯分割槽
主分割槽:英語是Primary Partition。也稱為主磁碟分割槽,和擴充套件分割槽、邏輯分割槽一樣,是一種分割槽型別。主分割槽中不能再劃分其他型別的分割槽,因此每個主分割槽都相當於一個邏輯磁碟
邏輯分割槽:英語是Logical Partition。是硬碟上一塊連續的區域,不同之處在於,每個主分割槽只能分成一個驅動器,每個主分割槽都有各自獨立的引導塊,可以用fdisk設定為啟動區。一個硬碟上最多可以有4個主分割槽,而擴充套件分割槽上可以劃分出多個邏輯驅動器。這些邏輯驅動器沒有獨立的引導塊,不能用fdisk設定為啟動區。
分割槽設定如下:
第一次分割槽—根分割槽:
根分割槽也就是 / 分割槽,相當於Windows系統的C盤。在Linux系統裡,/是最上層目錄,其實就是一個根目錄。
掛載點:“/”
大小:100G
新分割槽的型別:主分割槽
新分割槽的位置:空間起始位置
用於:EXT4日誌檔案系統
第一次分割槽完畢
第二次分割槽:
“空閒”處,繼續點“+”,如下設定,
掛載點:(不設定)
Swap交換分割槽:128G,這裡設定為何記憶體一樣,據說小於16G的記憶體,就設定成記憶體的1.5-2倍。
新分割槽的型別:邏輯分割槽
新分割槽的位置:空間起始位置
用於:交換空間
第二次分割槽完畢。
SWAP分割槽也叫交換分割槽,就是LINUX下的虛擬記憶體分割槽。
它的作用是在實體記憶體使用完之後,將磁碟空間(也就是SWAP分割槽)虛擬成記憶體來使用。
第三次分割槽引導分割槽:
引導分割槽,也就是引導作業系統啟動的程式所在的分割槽。/boot分割槽是系統啟動所需要的檔案。
“空閒”處,繼續點“+”,如下設定,
掛載點:/boot 設定Ubuntu啟動引導區。
大小:200MB(筆者暫時設定為200MB)
新分割槽的型別:邏輯分割槽
新分割槽的位置:空間起始位置
用於:EXT4日誌檔案系統
第三次分割槽完畢
第四次分割槽:
“空閒”處,繼續點“+”,如下設定,
掛載點:/home ,用於存放我們使用者的檔案。
大小:(剩餘全部空間,剩下顯示多少,就多少)。
鑑於Imagenet,PASCAL VOC之類的大客戶,建議500G,至少300G以上。
新分割槽的型別:邏輯分割槽
新分割槽的位置:空間起始位置
用於:EXT4日誌檔案系統
第四次分割槽完畢
分割槽設定完畢後,下方還有一項“安裝啟動引導器的裝置”,重要的一點:記得將“安裝啟動引導器的裝置”選擇稱為之前分配/boot的那個分割槽名。
UEFI 引導啟動需要設定 ESP(EFI系統分割槽),切記!!!
☆☆☆☆☆☆☆☆☆☆安裝前需要注意的問題:☆☆☆☆☆☆☆☆☆☆☆☆☆☆
a. 檢查自己的GPU是否支援CUDA,linux可用以下命令來檢視GPU型號:
lspci |grep –i nvidia
b. 檢查自己的作業系統是不是CUDA支援的,可以輸入以下命令:
uname -m && cat /etc/*release
x86_64
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION=”Ubuntu 16.04.2 LTS”
NAME=”Ubuntu”
VERSION=”16.04.2 LTS (Xenial Xerus)”
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME=”Ubuntu 16.04.2 LTS”
VERSION_ID=”16.04”
HOME_URL=”http://www.ubuntu.com/”
SUPPORT_URL=”http://help.ubuntu.com/”
BUG_REPORT_URL=”http://bugs.launchpad.net/ubuntu/”
VERSION_CODENAME=xenial
UBUNTU_CODENAME=xenial
uname -r
4.8.0-52-generic
03:00.0 3D controller: NVIDIA Corporation GK110BGL [Tesla K40c] (rev a1)
04:00.0 VGA compatible controller: NVIDIA Corporation GK110GL [Quadro K5200] (rev a1)
04:00.1 Audio device: NVIDIA Corporation GK110 HDMI Audio (rev a1)
c. 檢查作業系統是否安裝了gcc,可用以下命令
gcc --version
很多作業系統都預裝有gcc,如果你的沒有就先安裝一下。有時gcc已經預裝,但是gcc –version執行後沒有顯示資訊,可以執行下面命令來查詢系統的gcc資訊。
cat /proc/version
d. 去https://developer.nvidia.com/cuda-downloads下載最新版的CUDA,目前是7.5的。這裡注意選擇與自己機器和作業系統相匹配的(比如我的是64位的Ubuntu15.04)。友情提醒:檔案有點大,大概1G,網速不好的同學請耐心等待。
e. 驗證下載的CUDA是否有效:
md5sum 安裝包名字
例如:
md5sum cuda-repo-ubuntu1504-7-5-local_7.5-18_amd64.deb
執行完上述命令後會出現一串md5值,例如我的是: 0a02f6efe0ba2b8dea3e7654ee0951d7,看看https://developer.nvidia.com/cuda-downloads/checksums列表中是否能找到你的md5值,如果不能找到,那就說明之前下的安裝包有問題,要重新下載。
第二部分:NVidia CUDA Toolkit的安裝(*.deb方法)
特別備註:Cuda7.5包含CUDA所需的所有驅動,不存在相容的問題,所以沒有必要去專門安裝Nvidia的驅動。
PS:特別推薦.deb的方法,目前已提供離線版的deb檔案,該方法比較簡單,不需要切換到tty模式,因此不再提供原來的.run安裝方法,這裡以CUDA 7.5為例。
對於出現迴圈登入介面的問題,所以需要禁用 nouveau驅動
禁用nouveau驅動
Ubuntu系統整合的顯示卡驅動程式是nouveau,我們需要先將nouveau從linux核心解除安裝掉才能安裝NVIDIA官方驅動。將nouveau新增到黑名單blacklist.conf中,(關於blacklist參見 《禁用Linux核心驅動》),linux啟動時,就不會載入nouveau.
因為nouveau驅動的影響,ubuntu安裝後無法登入桌面,所以在ubuntu系統啟動顯示登入介面後,需要按ctrl+alt+F1進入tty文字模式進入下面的操作
由於blacklist.conf檔案的屬性不允許修改。所以需要先修改檔案屬性。
檢視屬性
ll /etc/modprobe.d/blacklist.conf
修改屬性
sudo chmod 666 /etc/modprobe.d/blacklist.conf
用vi編輯器開啟
sudo vi /etc/modprobe.d/blacklist.conf
在檔案末尾新增如下幾行:
blacklist vga16fb
blacklist nouveau
blacklist rivafb
blacklist rivatv
blacklist nvidiafb
修改並儲存檔案後,記得把檔案屬性復原:
sudo chmod 644 /etc/modprobe.d/blacklist.conf
再更新一下核心
sudo update-initramfs -u
關於update-initramfs命令的用途,參見 《initramfs 簡介,一個新的 initial RAM disks 模型》
修改後需要重啟系統。
重啟系統確認nouveau是否已經被遮蔽掉,使用lsmod命令檢視:
lsmod | grep nouveau
lsmod命令用於顯示已經載入到核心中的模組的狀態資訊,參見《lsmod命令》
一、CUDA Repository
sudo dpkg -i cuda-repo-ubuntu1504-7-5-local_7.5-18_amd64.deb
sudo apt-get update
二、CUDA Toolkit
sudo apt-get install -y cuda
#檢查CUDA安裝
重啟一下系統,讓NVIDIA GPU載入剛剛安裝的驅動,重啟完成之後執行
cat /proc/driver/nvidia/version
如果有如下顯示,說明GPU驅動載入成功
NVRM version: NVIDIA UNIX x86_64 Kernel Module 375.39 Tue Jan 31 20:47:00 PST 2017
GCC version: gcc version 5.4.1 20160904 (Ubuntu 5.4.1-2ubuntu1~16.04)
Information about the cuda compiler driver
nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2016 NVIDIA Corporation
Built on Tue_Jan_10_13:22:03_CST_2017
Cuda compilation tools, release 8.0, V8.0.61
檢視NVIDIA驅動版本
sudo dpkg --list | grep nvidia-*
nvidia-smi #檢視GPU使用情況
nvidia-settings #設定GPU引數,比如風扇運轉速度
sudo fuser -v /dev/nvidia* #查詢佔用GPU資源的PID
sudo lsof -n -w /dev/nvidia* #查詢佔用GPU資源的PID
sudo kill -9 ***(PID) # 解除視訊記憶體佔用
第三部分 Matlab安裝和除錯(以Matlab 2014a為例)
1.下載
由於該軟體為商業軟體,請大家自行尋找,安裝學習,並確保不使用做商業目的,下載24小時刪除……
2. 預準備
選擇Mathworks.Matlab.R2014a.Unix.iso -右鍵 - 使用磁碟映像掛載器開啟”,進入裝載的虛擬光碟,拷貝全部檔案至home/Matlab資料夾,複製Crack/install.jar至 home/Matlab/java/jar/並覆蓋原始檔
sudo cp install.jar /home/Matlab/java/jar/
3. 授權安裝資料夾
chmod a+x Matlab -R
4. 進入/home/Matlab 安裝
sudo ./install
選項:不使用Internet安裝
序列號: 12345-67890-12345-67890
預設路徑:/usr/local/MATLAB/R2014a
勾選從預設啟動路徑建立符號連結(實現在任意位置執行matlab啟動程式)
啟用檔案:license_405329_R2014a.lic
拷貝 /Crack/Linux 下的libmwservices.so至 /usr/local/MATLAB/R2014a/bin/glnxa64
sudo cp libmwservices.so /usr/local/MATLAB/R2014a/bin/glnxa64/
百度雲盤的 matlab2015b安裝情況類似
5.解決編譯器gcc/g++版本問題
因為Ubuntu 15.04的gcc/g++版本是4.9.2,而Matlab 2014a(2015a)的版本是4.7.x所以在使用matla呼叫mex檔案的時候,基本上都會報錯,根據報錯資訊,考慮如下兩步解決方案。
A. 降級安裝gcc/g++版本為4.7.x
(a). 下載gcc/g++ 4.7.x
sudo apt-get install -y gcc-4.7
sudo apt-get install -y g++-4.7
(b). 連結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++
B. 暴力引用新版本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.20,如果已經存在,基本上就成功了。
6.編譯Matlab用到的caffe檔案(見第五部分)
第四部分 Caffe-Master的安裝和測試
一、安裝BLAS
這裡可以選擇(ATLAS,MKL或者OpenBLAS),三者的速度大致為MKL>OpenBLAS>ATLAS,推薦採用MKL。我這裡使用MKL,首先下載並安裝英特爾®數學核心庫 Linux*版MKL(Intel(R) Parallel Studio XE Cluster Edition for Linux 2016),下載連結是:https://software.intel.com/en-us/intel-education-offerings,使用學生身份(郵件 + 學校)下載Student版,填好各種資訊,可以直接下載,同時會給你一個郵件告知序列號。下載完之後,要把檔案解壓到home資料夾(或直接把tar.gz檔案拷貝到home資料夾,為了節省空間,安裝完記得把壓縮檔案給刪除喔~),或者其他的ext4的檔案系統中。
接下來是安裝過程,先授權,然後安裝:
tar zxvf parallel_studio_xe_2016.tar.gz
(如果你是直接拷貝壓縮檔案過來的)
chmod a+x parallel_studio_xe_2016 -R
cd parallel_studio_xe_2016 -R
sudo sh install_GUI.sh
PS: 安裝的時候,建議使用root許可權安裝,過程中會要求輸入Linux的root口令。
若出現有32位的庫沒有找到的問題,32-bit libraries not found
sudo apt-get install g++-multilib
二、MKL與CUDA的環境設定
1. 新建intel_mkl.conf,並編輯之:
sudo gedit /etc/ld.so.conf.d/intel_mkl.conf
新增下列code
/opt/intel/lib/intel64
/opt/intel/mkl/lib/intel64
2. 新建cuda.conf,並編輯之:
sudo gedit /etc/ld.so.conf.d/cuda.conf
新增下列code
/usr/local/cuda/lib64
/lib
3. 完成lib檔案的連結操作,執行:
sudo ldconfig -v
$ sudo apt-get install -y gfortran %需安裝gfortran來編譯
安裝步驟
cd OpenBLAS
make
sudo make install
make -j 40 -f Makefile.install install
make[1]: Entering directory '/home/bids/softwares/OpenBLAS'
Generating openblas_config.h in /opt/OpenBLAS/include
Generating f77blas.h in /opt/OpenBLAS/include
Generating cblas.h in /opt/OpenBLAS/include
Copying LAPACKE header files to /opt/OpenBLAS/include
Copying the static library to /opt/OpenBLAS/lib
Copying the shared library to /opt/OpenBLAS/lib
Generating OpenBLASConfig.cmake in /opt/OpenBLAS/lib/cmake/openblas
Install OK!
make[1]: Leaving directory '/home/bids/softwares/OpenBLAS'
修改Caffe的Makefile.config
BLAS := open
BLAS_INCLUDE := /opt/OpenBLAS/include
BLAS_LIB := /opt/OpenBLAS/lib
export環境變數
export OPENBLAS_NUM_THREADS=4
export LD_LIBRARY_PATH=/opt/OpenBLAS/lib/:$LD_LIBRARY_PATH
接下來就可以使用caffe的多cpu進行計算了
三、安裝OpenCV 3.0.0
1. 下載並編譯OpenCV
(官網原版OpenCV:http://opencv.org/),或者使用我提供的修改版的安裝包 Install-OpenCV-master https://github.com/jayrambhia/Install-OpenCV(下面的安裝方式使用該包完成,安裝包修改了dependencies.sh檔案並增加了OpenCV 3.0.0的安裝檔案)
2. 切換到檔案儲存的資料夾,然後安裝依賴項:
cd Install-OpenCV-master
sudo sh Ubuntu/dependencies.sh
3. 切換目錄Ubuntu/3.0:
cd Ubuntu/3.0
sudo sh opencv3_0_0.sh
保證網路暢通,因為軟體需要聯網這裡時間較長,請耐心等待。
終端安裝
sudo apt-get install libopencv-dev python-opencv
原始碼編譯安裝
sudo apt install build-essential
sudo apt 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
clone壓縮包的資料夾,把原始碼拿下來
git clone opencv/opencv
然後進入OpenCV資料夾:
mkdir release
cd release
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
準備完畢,直接make並安裝:
make
sudo make install
四、安裝其他依賴項
tar zxvf glog-0.3.3.tar.gz
cd glog-0.3.3
./configure
make
sudo make install
如果沒有許可權就chmod a+x glog-0.3.3 -R ,或者索性 chmod 777 glog-0.3.3 -R ,裝完之後,這個資料夾就可以kill了。
2. 其他依賴項,確保都成功
sudo 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
五、安裝Caffe並測試
1. 安裝pycaffe必須的一些依賴項:
sudo apt-get install -y python-yaml 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 ipython-notebook python-imdbpy python-pip liblmdb-dev
sudo pip install lmdb
備註:關於python模組的特別說明
具體詳情大家可以去下面連結去查閱
easy caffe 配置
python最蛋疼的一是縮排,二是包管理。
不同的包管理工具安裝的包之間可能是不相容的,出現互相依賴的時候,就特別麻煩了,而且解除安裝還是不乾淨的。
使用pip這個包管理工具安裝pithon模組。你只要熟悉幾個簡單的命令:
pip search <package name> #搜尋某包
pip list #列出已安裝的包
pip install <some package> #安裝一個包
pip uninstall <installed package> #解除安裝
有個比較好用的命令:pip install -r requirements.txt,在requirements.txt填上所有要安裝的模組名,pip會install one by one。
編輯 requirements.txt,新增所需的模組
Cython>=0.19.2
numpy>=1.10.2
scipy>=0.13.3
scikit-image>=0.11.3
scikit-learn>=0.17
matplotlib>=1.5.0
pyopencv
ipython>=3.0.0
h5py>=2.2.0
leveldb>=0.191
lmdb
networkx>=1.8.1
nose>=1.3.0
pandas>=0.12.0
python-dateutil>=1.4,<2
protobuf>=2.5.0
python-gflags>=2.0
pyyaml>=3.10
Pillow>=2.3.0
six>=1.1.0
pyzmq
singledispatch
backports_abc
certifi
jsonschema
jupyter
qtawesome
pydot
notebook
sklearn
skimage
imdbpy
liblmdv-dev
一定要驗證python 安裝包依賴庫
cd caffe-master/python
for req in $(cat requirements.txt); do pip install $req; done
終端可能會有很多紅字,那麼在執行下一句
for req in $(cat requirements.txt); do sudo -H pip install $req --upgrade; done
2. 安裝配置nVidia cuDNN加速Caffe模型運算
a. 安裝前請去先官網https://developer.nvidia.com/cudnn下載最新的cuDNN (cudnn-7.0-linux-x64-v4),建議安裝v4。
tar zxvf cudnn-7.0-linux-x64-v4.0-rc.tgz
cd cuda
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.4 /usr/local/lib/libcudnn.so.4
$ sudo ln -sf /usr/local/lib/libcudnn.so.4 /usr/local/lib/libcudnn.so
$ sudo ldconfig -v
———————————————————-
特別備註:a. 安裝前請去先官網下載最新的cuDNN (cudnn-7.0-linux-x64-v4),建議安裝v4,v4是執行caffe是沒有問題的,但是若此後還需要安裝 Theano,V4就不行了,在測試Theano會出現下列問題。詳情見
Using gpu device 0: Tesla K40c (CNMeM is disabled, cuDNN Version is too old. Update to v5, was 4004.)
所以最後的建議還是安裝V5
a. 安裝前請去先官網https://developer.nvidia.com/cudnn下載最新的cuDNN (cudnn-7.5-linux-x64-v5.0),建議安裝v5。
tar zxvf cudnn-7.5-linux-x64-v5.0-ga.tgz
cd cuda
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.5.0.5 /usr/local/lib/libcudnn.so.5
$ sudo ln -sf /usr/local/lib/libcudnn.so.5 /usr/local/lib/libcudnn.so
$ sudo ldconfig -v
3.切換到Caffe-master的資料夾,生成Makefile.config配置檔案,執行:
cd caffe-master
cp Makefile.config.example Makefile.config
4. 配置Makefile.config檔案(僅列出修改部分)
sudo gedit Makefile.config
用來修改配置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
5. 編譯caffe-master!!!”-j8”是使用CPU的多核進行編譯,可以極大地加速編譯的速度,建議使用。
特別備註:最好在編譯caffe-master之前進行重啟電腦,因為顯示卡驅動裝完需要重啟才能生效,否則有時會出現編譯錯誤.
cd caffe-master
make all -j16
make test -j16
make runtest -j16
6.編譯Python和Matlab用到的caffe檔案
make pycaffe -j16
make matcaffe -j16
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
備註:安裝BLAS,可以選擇ATLAS
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 libatlas-base-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
如果不用 MKL的話,把上面4條命令跑一遍,然後裝好CUDA,之後執行
mkdir build
cd build
cmake ..
make all
make test
make runtest
這樣配置比MKL更加便捷。
安裝和配置cuDNN
把cudnn解壓之後,把對應的檔案拷貝到 cuda 的對應的 include 和 lib64目錄下,然後進入到build目錄,在該目錄下
cmake ..
make -j8
make runtest -j8
注意:-j8 是指使用幾個執行緒來同時編譯, 可以加快速度, j後面的數字可以根據CPU core的個數來決定, 我的CPU使8核, 所以-j8.
這樣直接進入測試階段即可。
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
caffe在伺服器上的copy使用
caffe的安裝比較複雜,因此如果伺服器上有其他使用者裝好配置好了caffe,我們可以拷貝過來使用,方法如下:
1. 新建自己的使用者
sudo adduser newaccount
2. 將別的使用者的caffe根目錄的包拷到自己的使用者
cp -r ./caffe-master /home/newaccount
3 . 重新編譯
make clean
make all -j16
make test -j16
make runtest -j16
六、使用MNIST資料集進行測試
Caffe預設情況會安裝在home/username/caffe-master,所以下面的工作,預設已經切換到了該工作目錄。下面的工作主要是,用於測試Caffe是否工作正常,不做詳細評估。具體設定請參考官網:http://caffe.berkeleyvision.org/gathered/examples/mnist.html
mnist資料訓練樣本為60000張,測試樣本為10000張,每個樣本為28*28大小的黑白圖片,手寫數字為0-9,因此分為10類。
1. 資料預處理
sh data/mnist/get_mnist.sh
執行成功後,在 data/mnist/目錄下有四個檔案:
train-images-idx3-ubyte: 訓練集樣本 (9912422 bytes)
train-labels-idx1-ubyte: 訓練集對應標註 (28881 bytes)
t10k-images-idx3-ubyte: 測試集圖片 (1648877 bytes)
t10k-labels-idx1-ubyte: 測試集對應標註 (4542 bytes)
**2. 重建lmdb檔案。**Caffe支援多種資料格式輸入網路,包括Image(.jpg, .png等),leveldb,lmdb,HDF5等,根據自己需要選擇不同輸入吧。
sh examples/mnist/create_mnist.sh
生成mnist-train-lmdb和 mnist-train-lmdb資料夾,這裡包含了lmdb格式的資料集,存放的data.mdb和lock.mdb
3. 訓練mnist
sh examples/mnist/train_lenet.sh
至此,Caffe安裝的所有步驟完結,下面是一組簡單的資料對比,實驗來源於MNIST資料集,主要是考察一下不同系統下CPU和GPU的效能。可以看到明顯的差別了,雖然MNIST資料集很簡單,相信複雜得資料集,差別會更大,Ubuntu+GPU是唯一的選擇了。
第五部分增加新層(以Fast RCNN提出的 ROIPooling layer為例)
已配置和需要修改的檔案,參見百度雲盤:百度雲盤連結: http://pan.baidu.com/s/1hqCWTF2密碼: 8qw8
該教程僅為新增方案,切勿直接覆蓋原來的檔案,將雲盤中下載的檔案響應的內容覆蓋到合適的位置即可。
1. 新增層引用:
編輯檔案:$ include/vision_layers.hpp,將class ROIPoolingLayer新增到合適的位置(參考其他層)
2. 建立層檔案
建立roi_pooling_layer.cpp和 roi_pooling_layer.cu檔案到目錄