Ubuntu16.04安装配置Caffe教程(GPU版)
Ubuntu安裝配置Caffe教程(GPU版)
By yggao
此教程主要借鑒自:
GPU版:http://www.linuxidc.com/Linux/2016-12/138870.htm
CPU版:http://www.linuxidc.com/Linux/2016-09/135034.htm
?
1???電腦配置及軟件說明
1)?????Ubuntu 16.04 x64系統,GPU:Quadro M4000(提示:在linux下可以通過命令lspic | grep –i vga 查看)
2)?????Caffe:Convolutional Architecture for Fast FeatureEmbedding
3)?????NVIDIA顯卡驅動(不同的GPU對應不同的版本)
4)?????CUDA 9.0
5)?????cuDNN v7.0.5 for CUDA 9.0
6)?????OpenCV 3.2.0
?
2??????????安裝NVIDIA GPU驅動
2.1?????????查詢GPU驅動
首先去NVIDIA官網http://www.nvidia.com/Download/index.aspx?lang=en-us查看適合自己顯卡的驅動并下載。如下圖1,圖2所示。
圖1. 填寫GPU和系統信息
圖2. 搜索結果
?????? 本文中顯卡型號是Quadro M4000,系統linux 64-bit,按照要求點擊serach出現圖2所示搜索結果,點擊下載。本文中下載的驅動文件是:NVIDIA-Linux-x86_64-384.111.run。
注意:我們要把這個文件放到英文目錄(e.g. /home)下,原因是下面我們要切換到文字界面下,如果放到中文目錄下,我們沒有辦法進入這個目錄(沒有中文輸入法,且中文全部是亂碼)。
2.2?????????安裝GPU驅動
2.2.1?????????屏蔽自帶顯卡驅動
1)?在終端下輸入: sudo gedit /etc/modprobe.d/blacklist.conf
2)?輸入密碼收在最后一行加上:blacklist nouveau. 這里是將Ubuntu自帶的顯卡驅動加入黑名單
3)?在終端輸入:sudo update-initramfs –u,使修改生效
4)?重啟電腦
2.2.2?????????安裝新驅動
1)?啟動電腦后,按Ctrl+Alt+F1~F6進入命令行界面(安裝GPU驅動要求在命令行環境),輸入用戶名和密碼進入用戶目錄
2)?輸入命令:sudo service lightdm stop
3)?進入驅動所在的文件夾,sudo chmod +x ./NVIDIA-Linux-x86_64-384.111.run,修改權限。然后:sudo ./NVIDIA-Linux-x86_64-384.111.run,進入安裝程序
4)?完成安裝后,重啟電腦
5)?重啟電腦后,輸入以下指令進行驗證:sudo nvidia-smi,若列出了GPU的信息列表則表示驅動安裝成功。如下圖3所示。
圖3. GPU信息列表
3??????????安裝CUDA
CUDA是NVIDIA的編程語言平臺,想使用GPU就必須要使用cuda。
(1)???下載CUDA
首先在官網上https://developer.nvidia.com/cuda-downloads下載CUDA。下載CUDA時一定要注意CUDA和NVIDIA顯卡驅動的適配性。現在的情況是:CUDA_8.0支持375.**及以上系列的顯卡驅動;CUDA_9.0支持384.**及以上系列的顯卡驅動;CUDA_9.1支持389.**及以上系列的顯卡驅動。本文中的顯卡驅動為384.111系列,所以不能下載最新版本的CUDA_9.1,最后下載的是cuda_9.0.176_384.81_linux.run(當然,CUDA_8.0也是沒問題的)。下載界面如下圖4所示。
圖4. CUDA_9.0下載界面
(2)???運行安裝程序
執行以下命令:
sudo chmod 777 cuda_9.0.176_384.81_linux.run
sudo ./cuda_9.0.176_384.81_linux.run
注意:執行后會有一系列提示讓你確認,但是注意,有個讓你選擇是否安裝nvidia384驅動時,一定要選擇否:Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 384.**?
因為前面我們已經安裝了更加新的nvidia384,所以這里不要選擇安裝。其余的都直接默認或者選擇是即可。
(3)???環境變量設置
打開~/.bashrc文件:sudo gedit ~/.bashrc
將以下內容寫入到~/.bashrc尾部:
exportPATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}
exportLD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
(4)??? 測試CUDA是否安裝成功
執行以下命令:
cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery
sudo make
sudo ./deviceQuery
如果顯示一些關于GPU的信息,則說明安裝成功。如下圖5所示。
圖5. CUDA測試信息
4??????????配置cuDNN
cuDNN是GPU加速計算深層神經網絡的庫。
(1)???首先去官網 https://developer.nvidia.com/rdp/cudnn-download 下載cuDNN,需要注冊一個賬號才能下載。下載cuDNN時也一定要注意與CUDA版本的適配性,此信息官網中已經給的很清楚。下載界面如下圖6所示。
圖6. cuDNN下載界面
(2)???下載cuDNN后進行解壓:sudo tar -zxvf ./cudnn-9.0-linux-x64-v7.tgz
(3)???進入解壓后的文件夾下的include目錄,在命令行進行如下操作:
cd cuda/include
sudo cp cudnn.h/usr/local/cuda/include? #復制頭文件到cuda頭文件目錄
(4)???進入lib64目錄下,對動態文件進行復制和軟鏈接
cd ..
cd lib64
sudo cp lib*/usr/local/cuda/lib64/??? #復制動態鏈接庫
cd /usr/local/cuda/lib64/
sudo rm -rf libcudnn.solibcudnn.so.7??? #刪除原有動態文件
sudo ln -s libcudnn.so.7.0.5libcudnn.so.7? #生成軟銜接
sudo ln -s libcudnn.so.7libcudnn.so????? #生成軟鏈接
5??????????安裝OpenCV3.2
詳細的安裝請參考:http://www.linuxidc.com/Linux/2017-07/145446.htm
(1)???從官網(http://opencv.org/downloads.html)下載Opencv,并將其解壓到你要安裝的位置,假設解壓到了/home/opencv。
unzip opencv-3.2.0.zip
sudo cp ./opencv-3.2.0 /home/username
sudo mv opencv-3.2.0 opencv
?
(2)???安裝前準備,創建編譯文件夾
cd ~/opencv
mkdir build
cd build
?
(3)???配置
sudo apt install cmake
sudo cmake -D CMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local ..
?
(4)???編譯
sudo make -j8?(-j8表示并行計算,根據自己電腦的配置進行設置,配置比較低的電腦可以將數字改小或不使用,直接輸make)
?
(5)???安裝
以上只是將opencv編譯成功,還沒將opencv安裝,需要運行下面指令進行安裝:
sudo make install
6??????????配置Caffe
(1)???安裝相關依賴
sudoapt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-devlibhdf5-serial-dev protobuf-compiler
sudoapt-get install --no-install-recommends libboost-all-dev
sudoapt-get install libopenblas-dev liblapack-dev libatlas-base-dev
sudoapt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
(2)???下載Caffe
使用Git直接下載Caffe非常簡單,或者去https://github.com/BVLC/caffe下載。
下載完成后,會在家目錄下的下載里找到caffe-master.zip,用unzip命令解壓到家目錄下,然后重命名為caffe。
?
(3)???修改Makefile.config
因為make指令只能make Makefile.config文件,而Makefile.config.example是caffe給出的makefile例子。因此,首先將Makefile.config.example的內容復制到Makefile.config:
sudo cpMakefile.config.example Makefile.config
打開并修改配置文件:
sudogedit 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
d.??????重要的一項,將
#Whatever else you find you need goes here. 下面的
INCLUDE_DIRS:= $(PYTHON_INCLUDE) /usr/local/include
LIBRARY_DIRS:= $(PYTHON_LIB) /usr/local/lib /usr/lib
修改為:
INCLUDE_DIRS:= $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
LIBRARY_DIRS:= $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/usr/lib/x86_64-linux-gnu/hdf5/serial??????
這是因為Ubuntu16.04的文件包含位置發生了變化,尤其是需要用到的hdf5的位置,所以需要更改這一路徑。
?
(4)???修改Makefile文件
打開Makefile文件,做如下修改,將:
NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC$(COMMON_FLAGS)
替換為:
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX)-Xcompiler -fPIC $(COMMON_FLAGS)
?
(5)???編輯/usr/local/cuda/include/host_config.h
將其中的第115行注釋掉,將
#error-- unsupported GNU version! gcc versionslater than 4.9 are not supported!
改為:
//#error-- unsupported GNU version! gcc versionslater than 4.9 are not supported!
?
(6)???編譯
make all -j8 ?#-j根據自己電腦配置決定
?
(7)???測試
sudo make runtest
如果運行之后出現下圖7所示,說明caffe配置成功。
圖7. Caffe測試成功運行結果
7??????????MNIST數據集測試
配置caffe完成后,我們可以利用MNIST數據集對caffe進行測試,過程如下:
1.將終端定位到Caffe根目錄
cd ~/caffe
?
2.下載MNIST數據庫并解壓縮
./data/mnist/get_mnist.sh
?
3.將其轉換成Lmdb數據庫格式
./examples/mnist/create_mnist.sh
?
4.訓練網絡
./examples/mnist/train_lenet.sh
訓練的時候可以看到損失與精度數值,如下圖8所示:
圖8. Lenet-5網絡運行結果
總結
以上是生活随笔為你收集整理的Ubuntu16.04安装配置Caffe教程(GPU版)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pthread_create()创建线程
- 下一篇: PHY以太网自动协商原理