Caffe的安裝相比于CUDA簡單不少,但是還是踩了幾個坑,下面簡單總結(jié)下Caffe的安裝過程。
cuDNN是GPU加速計算深層神經(jīng)網(wǎng)絡(luò)的庫。 首先去官網(wǎng)(https://developer.nvidia.com/rdp/cudnn-download)下載cuDNN,根據(jù)提示下載對應(yīng)的版本號如下圖: 為了穩(wěn)妥期間我沒有下載最近的版本,下載了cuDNN5.0。 下載解壓,指令如下
解壓后文件包含如下幾項: *cuda/include/cudnn.h cuda/lib64/libcudnn.so cuda/lib64/libcudnn.so.5 cuda/lib64/libcudnn.so.5.0.5 cuda/lib64/libcudnn_static.a* 繼續(xù)執(zhí)行以下指令:
sudo cp cuda/include/cudnn.h /usr/local/cuda/include/sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/sudo chmod a+r /usr/local/cuda/include/cudnn.hsudo chmod a+r /usr/local/cuda/lib64/libcudnn*復(fù)制到cuda對應(yīng)的include和lib64文件目錄中去。
從官網(wǎng)(http://opencv.org/downloads.html)下載OpenCV,并將其解壓到你要安裝的位置,假設(shè)解壓到了/home/opencv。 安裝前準(zhǔn)備,創(chuàng)建編譯文件夾:
cd ~/opencvmkdir buildcd build配置:
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..編譯:
make -j8 #-j8-j8表示并行計算,根據(jù)自己電腦的配置進行設(shè)置,配置比較低的電腦可以將數(shù)字改小或不使用,直接輸make。 編譯make過程中會出現(xiàn)錯誤,graphcuts中的變量未聲明,是因為opencv3.1還不支持cuda8.0,需要對其中的grapcuts.cpp進行更改: 然后重新編譯一下,即可成功。 以上只是將opencv編譯成功,還沒將opencv安裝,需要運行下面指令進行安裝:
首先,新建一個opencv的工作目錄,進入后新建一個cpp文件。
mkdir ~/testcd testgedit DisplayImage.cpp編輯如下代碼:
#include <stdio.h>#include <opencv2/opencv.hpp>using namespace cv;int main(int argc, char** argv ){ if ( argc != 2 ) { printf("usage: DisplayImage.out <Image_Path>/n"); return -1; } Mat image; image = imread( argv[1], 1 ); if ( !image.data ) { printf("No image data /n"); return -1; } namedWindow("Display Image", WINDOW_AUTOSIZE ); imshow("Display Image", image); waitKey(0); return 0;}接著,在當(dāng)前目錄下創(chuàng)建CMake編譯文件
gedit CMakeList.txt編輯如下內(nèi)容:
cmake_minimum_required(VERSION 2.8)project( DisplayImage )find_package( OpenCV REQUIRED )add_executable( DisplayImage DisplayImage.cpp )target_link_libraries( DisplayImage ${OpenCV_LIBS} )然后,編譯:
cmake .make此時已經(jīng)生成可執(zhí)行bin文件,下載lena.jpg放在opencv-lena下。執(zhí)行:
./DisplayImage lena.jpg最后顯示得到結(jié)果 顯示成功,即表明opencv安裝成功。
安裝caffe前要安裝一些依賴項,照著下面的步驟依次安裝即可。 1) 安裝依賴項
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compilersudo apt-get install --no-install-recommends libboost-all-dev2) 安裝BLAS
sudo apt-get install libatlas-base-dev3) 安裝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 ipython4) 繼續(xù)gflags,glog等依賴項
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev5) 下載caffe并編譯 在主目錄下新建一個caffe的文件目錄,按照下面順序進行安裝配置。
(1)將終端cd到要安裝caffe的位置。
(2)從github上獲取caffe:
git clone https://github.com/BVLC/caffe.git注意:若沒有安裝Git,需要先安裝Git:
sudo apt-get install git(3)因為make指令只能make Makefile.config文件,而Makefile.config.example是caffe給出的 makefile例子,因此,首先將Makefile.config.example的內(nèi)容復(fù)制到Makefile.config:
sudo cp Makefile.config.example Makefile.config(4)打開并修改配置文件:
sudo gedit Makefile.config #打開Makefile.config文件針對需求修改幾項即可,如下:
a.若使用cudnn,則
將#USE_CUDNN := 1
修改成:
USE_CUDNN := 1
b.若使用的opencv版本是3的,則
將#OPENCV_VERSION := 3去掉修改為:
OPENCV_VERSION := 3
c.若要使用python來編寫layer,則
將#WITH_PYTHON_LAYER := 1去掉#號修改為
WITH_PYTHON_LAYER := 1
然后開始編譯:
make all -j16make runtest -j16編譯過程中會報錯,如下
error while loading shared libraries:libcudart.so.8.0: cannot open shared object file: No such file or directory這是因為沒cuda的lib路徑?jīng)]添加上,終端寫入命令:
sudo ldconfig /usr/local/cuda/lib64或者
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH重新編譯即可。 到目前位置caffe配置完畢,然后用Mnist數(shù)據(jù)集進行測試。
安裝完成后,下載mnist數(shù)據(jù)進行測試,過程如下:
1)將終端定位到Caffe根目錄
cd ~/caffe
2)下載MNIST數(shù)據(jù)庫并解壓縮
./data/mnist/get_mnist.sh
3)將其轉(zhuǎn)換成Lmdb數(shù)據(jù)庫格式
./examples/mnist/create_mnist.sh
4)訓(xùn)練網(wǎng)絡(luò)
./examples/mnist/train_lenet.sh。最終得到如下的結(jié)果 我們可以看到最后的精度數(shù)值為0.991,說明訓(xùn)練成功。
至此,用兩篇博客詳細(xì)記錄了在Ubuntu14.04系統(tǒng)下Cuda和Caffe的配置過程,期間的各種折磨和痛苦無以言表,最終還是成功了,可以開始在此框架下進行深度學(xué)習(xí)的大展拳腳了。
新聞熱點
疑難解答