ubuntu16.04.01 CUDA8.0安裝Caffe


 

Ubuntu16.04系統下CUDA8.0配置Caffe教程

由於最近安裝了Ubuntu16.04,苦於之前配置Caffe的教程都在版本14.04左右,無奈只能自己摸索,最終配置成功。本文教程的特點是不需要降級gcc的版本,畢竟cuda7.5不支持gcc5以上(默認不支持,實際支持),避免出現一系列亂七八糟的問題,反正之前我是碰到了。 
本文是在參考caffe官網教程以及http://www.linuxidc.com/Linux/2015-07/120449.htm結合自己總結經驗而來,對此表示感謝。

1. 所需文件下載 
1.1 Ubuntu16.04在官網下載,然后在windows下用UltraISO制作,相關文章搜索有一大片,此處不再贅述。 
1.2 cuda8.0,下載的版本是ubuntu16.04的run文件,個人感覺比較方便。 
1.3 cudnn5.0,進去之后如果有注冊過nvidia的賬戶直接點擊download,否則需要注冊一個賬戶,注冊完之后有一個調查,隨便選幾個鈎就可以,然后下一步是接受條款開始就可以下載了。 
1.4 caffe下載就在官方的github下載就可以了 
2. 顯卡驅動安裝 
2. 直接在ubuntu系統設置,軟件和更新里面,選擇中國的服務器源刷新之后,點擊附加驅動選項,在Nvidia Corporation選擇367,然后點擊應用更改,下載安裝完之后重啟。 

安裝顯卡驅動后可以用nvidia-smi測試

出現這個界面就說明安裝成功了,但是之后你要在系統設置的電源選項里面設置不要掛起,就是各種不要掛起,但是我的是筆記本,合蓋的時候還是會掛起,

掛起之后,只能強制關機,然后冷啟動。

我的電腦可能太獨特了(我的電腦是Alienware15r2),有時候揚聲器有聲音,有時候沒有聲音,線性耳機是一直沒有聲音,沒有聲音的時候,我就用藍牙耳機連接才能有聲音,重啟的話,得看人品,有時候好使,有時候還是沒聲音。

 如果你的電腦配置一般,恰巧想換電腦的話,奉勸你不要買預裝windows的電腦,現在的電腦都是win10,體驗很差,安裝ubuntu后也是各種驅動不兼容,不如直接買Mac,雖然貴了點,但是還是很好用的,進行深度學習的訓練可以安裝虛擬機跑cpu版本,或者ssh連接服務器進行訓練。

3. Cuda8.0安裝 
3.1 以文件名為cuda.run為例,終端下輸入 
sh cuda.run --override 啟動安裝程序,此處有大量的條款,一路空格到最后 輸入accept,依次輸入y回車,然后n(不安裝顯卡驅動),然后一路y回車,有一個地方需要輸入密碼,還有兩個地方確認安裝路徑,直接回車即可,完成安裝,默認安裝路徑是/usr/local 
將下載下來的cudnn-8.0-linux-x64-v5.0-ga.tgz 解壓之后,解壓后的cuda文件夾先打開里面的include文件夾,空白右鍵在終端打開輸入: 
sudo cp cudnn.h /usr/local/cuda/include/ 
cd ~/cuda/lib64 
sudo cp lib* /usr/local/cuda/lib64/ 
繼續更新文件鏈接

cd /usr/local/cuda/lib64/ 
sudo rm -rf libcudnn.so libcudnn.so.5 
sudo ln -s libcudnn.so.5.1.5 libcudnn.so.5 
sudo ln -s libcudnn.so.5 libcudnn.so
 
然后設置環境變量 
sudo gedit /etc/profile 
在末尾加入 
PATH=/usr/local/cuda/bin:$PATH 
export PATH
 
保存之后創建鏈接文件 
sudo vim /etc/ld.so.conf.d/cuda.conf 
鍵盤按i進入編輯狀態,添加文字 
/usr/local/cuda/lib64 
然后按esc,輸入:wq保存退出。 
終端下接着輸入 
sudo ldconfig 使鏈接生效

4. 生成Cuda Sample測試 
首先在此之前先把需要的依賴包都安裝好,為接下來make caffe做准備 
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 
然后開始make samples ,終端下 
/home/lester/NVIDIA_CUDA-8.0_Samples
sudo make all -j4 
cd /home/lester/NVIDIA_CUDA-8.0_Samples 
sudo make all -j4 
這就應該開始make了,此處大約有5、6分鍾。完成之后 
cd /home/lester/NVIDIA_CUDA-8.0_Samples/bin/x86_64/linux/release

./deviceQuery 
會出現類似以下的信息 

< Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) > 
deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 8.0, CUDA Runtime Version = 7.5, NumDevs = 1, Device0 = GeForce GTX 750 Ti
Result = PASS
 
這就說明成功了。

5. Python配置 
將之前github下載的caffe壓縮文件解壓縮到任一目錄,然后安裝python 
python的版本安裝有兩種方式: 
第一是直接安裝anaconda,去官網下載 ,選擇linux 64bit 2.7版本下載安裝,anaconda安裝方便但是需要在最后的make配置文件中更改python包含路徑。 
第二種方法就是使用原生的python2.7版本,終端下 
sudo apt-get install python-pip 安裝pip 
這里我們用pip安裝一些python需要的依賴包,不過為了避免各種問題,也可以通過apt-get安裝,反正我這兩種方式都安裝了一遍(-.-) 
sudo apt-get install python-numpy python-scipy python-matplotlib ipython ipython-notebook python-pandas python-sympy python-nose
以caffe默認解壓到/home/user(你的用戶名)/ ,文件夾名名稱caffe為例 
cd /home/user/caffe/python 
sudo su 
for req in $(cat requirements.txt); do pip install $req; done 
這里用pip安裝可能速度很慢,很可能下載好幾個小時,推薦用清華大學的pip源臨時安裝,所以命令改為如下: 
for req in $(cat requirements.txt); do pip install -i https://pypi.tuna.tsinghua.edu.cn/simple $req; done 
這里如果第一次有很多紅字錯誤,建議再運行幾遍指導安裝成功,對於黃字提示無需理會,可能是pip版本需要更新。

6.NCCL安裝(貌似是用於多顯卡並行加速用的)

這個直接git clone https://github.com/NVIDIA/nccl

cd nccl/

make CUDA_HOME=<cuda install path> test

舉個例子,我運行的命令是make CUDA_HOME=/usr/local/cuda test

vim /etc/profile

於文件末尾處添加你的nccl動態庫路徑

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/hugo/nccl/build/lib

sourch ~/.bashrc

./build/test/single/all_reduce_test 10000000

sudo make install

sudo ldconfig

然后應該就可以了

我在nccl這里安裝借鑒的是http://www.cnblogs.com/darkknightzh/p/5717234.html

 

7. Caffe編譯過程 

我的caffe是直接下載壓縮包然后解壓的,直接使用git克隆,會又莫名其妙的問題,我就沒管它,反正直接下載壓縮包再解壓不報錯
接下來要進入最后的步驟了,終端中 
cd /home/user/caffe 
cp Makefile.config.example Makefile.config 
gedit Makefile.config 
將USE_CUDNN := 1 取消注釋,在 
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include后面打上一個空格 然后添加/usr/include/hdf5/serial 如果沒有這一句可能會報一個找不到hdf5.h的錯誤

就像這樣,你可以直接復制粘貼過去

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/lib


PYTHON_INCLUDE := /usr/include/python2.7 \ 
  /usr/lib/python2.7/dist-packages/numpy/core/include
先不做更改。 

如果你電腦上有多個相同型號的顯卡,並且安裝了nccl,那么去掉USE_NCCL=1之前的注釋。
第二,在make過程中還會報一個ld找不到libhdf5 和libhdf5_hl的鏈接問題,這個原因可能也是因為hdf5的問題,首先看/usr/lib/x86_64-linux-gnu 目錄下有沒有libhdf5.so和libhdf5_hl.so,如果有的話,查看屬性是否有正確的鏈接(正常情況下應該是沒有這兩個文件),然后右鍵在終端中打開 
sudo ln libhdf5_serial.so.10.1.0 libhdf5.so 
sudo ln libhdf5_serial_hl.so.10.0.2 libhdf5_hl.so 
注意,10.1.0和10.0.2可能不同電腦安裝版本不同,注意看當前目錄下存在的文件然后 
sudo ldconfig 生效 
接下來就是直接編譯的過程 
cd /home/user/caffe 
make all -j4 
make test -j4 
make runtest 
make pycaffe 
make matcaffe 
如果編譯沒報錯正常的話,基本就沒問題了。測試python打開 

我到這一步import caffe 是找不到模塊的,然后就有了第8步
8. 使Caffe的python接口永久生效

sudo gedit /etc/profile
profile最后添加: export PYTHONPATH=/root/$CAFFE_ROOT/python:$PYTHONPATH
source /etc/profile

在命令行直接輸入caffe顯示找不到命令

sudo gedit ~/.bashrc

在最后添加上export PATH=/home/你的用戶名/caffe/build/tools:$PATH

 

source ~/.bashrc


注意:

有一些python庫沒有安裝,在import caffe測試時會出錯,常見的庫缺失錯誤:

ImportError: No module named skimage.io

執行命令

easy_install scikit-image

sudo pip install scikit-image

9.運行訓練mnist網絡問題

cd /caffe/data/mnist

./get_mnish.sh

回到caffe目錄下

./excamples/mnist/create_mnist.sh(這條命令一定要在caffe根目錄下運行,不知道為什么,不在根目錄運行就說找不到文件,坑爹)

./excamples/mnist/train_lenet.sh

然后在命令行上就可以看到mnist訓練集的訓練情況了

如果你看不懂顯示的是什么,可以看我的其他博客

 

經過三天的無法導入numpy模塊,中間我試過將Pyhton2.7.12升級到2.7.13,卸載Python,卸載模塊,各種方法,然后還是不好使,我在咒罵ubuntu和caffe之后選擇了屈服,重裝ubuntu,竟然好使了,之前也是莫名其妙就不好使了,唉,坑啊。。。。。。。。。

我參考了這兩篇博客,有些是直接復制過來的,加入了一點我遇到的錯誤和解決方法。

http://www.cnblogs.com/balmy/p/5742872.html

http://blog.csdn.net/g0m3e/article/details/51420565

有-時-會-需-要-一-些-越-(-f-a-n-)-獄(q-i-a--n-g)-才-能-看-的-資-料,-可-以-使-用-藍-燈-,-專-業-版-速-度-更-快,

可-以-輸-入-我-的-邀-請-碼- H9WHX5 -來-獲-得-三-個-月-的-藍-燈-專-業-版-!-立-即-下-載- https://github.com/getlantern/forum


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM