參考很多文章,以這篇為主:http://www.linuxidc.com/Linux/2016-11/136768.htm
這篇算是自己對caffe學習的一個總結系列的開頭。首先因為caffe的依賴項比較多,配置起來也比較麻煩。這篇算是比較詳盡地把caffe的各種相關配置說清楚。轉載請注明出處。
推薦Ubuntu 14.04版本,因為digits的支持比較好。顯卡支不支持GPU加速要搞清楚啊,不支持就全用CPU算吧,別浪費時間折騰cuda了。
大家基本要按照官方教程上面來。但是官方教程有的坑沒有點出來的,本文也一並列上了。
一、顯卡的安裝
禁用nouveau驅動,nouveau是ubuntu自帶的對nivida的開源驅動,對安裝nvidia的官方驅動會有問題,所以先將其禁用。
按Ctrl+Alt+F1 進入tty1控制台,輸入
sudo vim /etc/modprobe.d/blacklist-nouveau.conf
在裡面寫上
blacklist nouveau
options nouveau modeset=0
按esc 輸入:wq 保存退出
ps:vim編輯器很好用啊,還不會的小伙伴要抓緊時間學啊。
執行
lspci | grep nouveau
查詢pci總線中是否還有nouveau,grep後面接正則表達式過濾。
什麼都沒有說明禁用成功。
重啟後登錄時,可能會循環出現填寫登錄密碼,不能進入系統的情況,按Ctrl+Alt+F1,登錄,
卸載顯卡方法:
sudo apt-get remove --purge nvidia*
安裝顯卡驅動:
$ sudo add-apt-repository ppa:xorg-edgers/ppa
$ sudo apt-get update
$ sudo apt-get install nvidia-352
執行sudo start lightdm 輸入密碼能看到桌面就ok啦
ps:顯卡驅動掛掉之後很可能你就看不到系統界面了,啟動之後顯示器一團漆黑,其實系統是在運行的。我的做法是先提前裝好了SSH服務,碰到這種情況就通過另一台電腦SSH登陸進去安裝驅動。
二、CUDA安裝
CUDA官網下載。其實應該先下載好的,如果沒來得及用圖形界面下載,用wget, curl什麼的下載也一樣。 據說331的驅動有坑啊,大家不要用那個驅動。下面安裝一些依賴項/
sudo service lightdm stop
sudo apt-get install g++
sudo apt-get install git
sudo apt-get install freeglut3-dev
首先在官網上下載安裝文件(鏈接前文已經提供):
我下載的是deb本地安裝文件,下載完成後,按照文檔提示的命令安裝:
sudo dpkg -i cuda-repo-ubuntu1404-7-5-local_7.5-18_amd64.deb
sudo apt-get update
sudo apt-get install cuda
下載了下方的Installation Guide for Linux,裡面有關於環境變量的設置方法:
如果有,則說明安裝成功。沒有可以按照下面方法卸載:
sudo /usr/local/cuda-7.5/bin/uninstall_cuda_7.5.plsudo /usr/bin/nvidia-uninstall
最後,配置環境變量,我們直接放在系統配置文件profile裡面,先打開profile文件
sudo vi /etc/profile
在最後面加入兩行代碼:
export PATH=/usr/local/cuda-7.5/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-7.5/lib64:$LD_LIBRARY_PATH
執行 source /etc/profile 使環境變量生效
至此cuda安裝完畢
三、CUDNN安裝
CUDNN是給CUDA加速的。cuDNN是GPU加速計算深層神經網絡的庫。cudnn官網下載。貌似下載要先注冊,審核通過還要幾天時間。下載好之後解壓。
執行如下命令:
sudo tar xvf cudnn-7.0-linux-x64-v4.0-prod.tgz && cd cuda/include && sudo cp *.h /usr/local/include/ && cd ../lib64 && sudo cp lib* /usr/local/lib/ && cd /usr/local/lib && sudo chmod +r libcudnn.so.4.0.7 && sudo ln -sf libcudnn.so.4.0.7 libcudnn.so.4 && sudo ln -sf libcudnn.so.4 libcudnn.so && sudo ldconfig
這樣CUDNN就安裝完畢了,是不是很簡單啊。
四、Anaconda的安裝
到https://www.continuum.io/downloads 下載anaconda,推薦使用linux版的python 2.7版本,因為tensorflow中的有些東西不支持python3.5(如cPickle)。
下載成功後,在終端執行(2.7版本):
# bash Anaconda2-4.1.1-Linux-x86_64.sh
或者3.5 版本:
# bash Anaconda3-4.1.1-Linux-x86_64.sh
在安裝的過程中,會問你安裝路徑,直接回車默認就可以了。有個地方問你是否將anaconda安裝路徑加入到環境變量(.bashrc)中,這個一定要輸入yes
安裝成功後,會有當前用戶根目錄下生成一個anaconda2的文件夾,裡面就是安裝好的內容。在終端可以輸入
conda info 來查詢安裝信息
輸入conda list 可以查詢你現在安裝了哪些庫,常用的python, numpy, scipy名列其中。如果你還有什麼包沒有安裝上,可以運行
conda install *** 來進行安裝(***代表包名稱),如果某個包版本不是最新的,運行 conda update *** 就可以了。
五、caffe的安裝
首先先安裝opencv,推薦2.4的版本。opencv1.x是純C語言編寫的,2.x c和c++的包都有,opencv3是只用c++寫的。為了別人寫的代碼也能正常運行,還是推薦裝2.x。
opencv2.4安裝很簡單了,下載下來解壓,然後進入目錄make, sudo make install就搞定了。
caffe官方下載 基本按照官方安裝指南就可以了,l另外一個方法就是命令行下載
下載caffe:
sudo git clone https://github.com/BVLC/caffe.git
如果你沒安裝Git,請閱讀博客:Ubuntu Git安裝與使用。
然後編譯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 libopenblas-dev liblapack-dev libatlas-base-dev
$ sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
賈揚清大神還說了,大家一定要看清楚啊!
下面開始配置caffe並且開始編譯了。
sudo cp Makefile.config.example Makefile.config
# Adjust Makefile.config (for example, if using Anaconda Python, or if cuDNN is desired) make all make test make runtest
配置文件有幾點要注意:
# cuDNN acceleration switch (uncomment to build with cuDNN).
USE_CUDNN := 1
# CPU-only switch (uncomment to build without GPU support).
# CPU_ONLY := 1BLAS choice:# atlas for ATLAS (default)
# mkl for MKL
# open for OpenBlasBLAS := atlas
# Custom (MKL/ATLAS/OpenBLAS) include and lib directories.
# Leave commented to accept the defaults for your choice of BLAS
# (which should work)!
# BLAS_INCLUDE := /path/to/your/blas
# BLAS_LIB := /path/to/your/blas
這幾個地方根據自己情況選擇。
make all沒有問題的話,caffe就算成功了啊。
保存後重新編譯: (如果電腦有8個線程的話,就在後面加 -j8 ,可以加快編譯速度)
sudo make clean
sudo make all -j8
sudo make test -j8
sudo make runtest -j8
本人編譯的時候最後一步的時候,出現這樣的錯誤:
libcudart.so.7.5 cannot open shared object file: No such file or directory
網上有一堆介紹,怎麼設置環境變量的(我們分明已經設置過了),可以這樣檢查是否已經添加環境變量:
$ echo $PATH$ echo $LD_LIBRARY_PATH
可以看到,環境變量已經添加好。
解決方法是這樣,將一些文件復制到/usr/local/lib文件夾下:
sudo cp /usr/local/cuda-7.5/lib64/libcudart.so.7.5 /usr/local/lib/libcudart.so.7.5 && sudo ldconfig
sudo cp /usr/local/cuda-7.5/lib64/libcublas.so.7.5 /usr/local/lib/libcublas.so.7.5 && sudo ldconfig
sudo cp /usr/local/cuda-7.5/lib64/libcurand.so.7.5 /usr/local/lib/libcurand.so.7.5 && sudo ldconfig
再次,嘗試sudo make runtest命令,出現如下:
至此,caffe安裝完成。
將caffe路徑導入環境變量,執行命令如下:
sudo vi ~/.bashrc
在最後加上 export PYTHONPATH=/home/***/caffe/python:$PYTHONPATH
export CAFFE_HOME=/home/***/caffe:$CAFFE_HOME
之後執行 sudo ldconfig 來生效
接著在caffe裡面執行sudo make pycaffe ,沒有錯誤就OK了,測試caffe是否成功,
在終端輸入 python 回車,import caffe 沒有錯誤表示ok,
如果出現No module named google.protobuf.internal
解決辦法參考鏈接:http://www.linuxidc.com/Linux/2016-11/136772.htm
sudo chmod 777 -R anaconda2(文件夾) 改變權限 然後
conda install protobuf
就搞定啦~
六、DIGITS安裝
參考鏈接:http://www.linuxidc.com/Linux/2016-11/136774p21.htm
一、安裝digits 3.0
digits是運行在cuda和caffe基礎上的,所以要先配置好cuda+caffe那是毫無疑問的了。還不會配置的,請參考:Caffe學習系列(1):安裝配置ubuntu14.04+cuda7.5+caffe+cudnn
打開一個終端,依次運行下列命令:
cd
sudo -s
進入當前用戶根目錄,並切換到超級用戶(符號由$變成#,不用每句都輸sudo)
CUDA_REPO_PKG=cuda-repo-ubuntu1404_7.5-18_amd64.deb &&
wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/$CUDA_REPO_PKG &&
sudo dpkg -i $CUDA_REPO_PKG
接著
ML_REPO_PKG=nvidia-machine-learning-repo-ubuntu1404_4.0-2_amd64.deb &&
http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1404/x86_64/$ML_REPO_PKG &&
sudo dpkg -i $ML_REPO_PKG
apt-get update
apt-get install digits
Ubuntu 14.04 安裝配置CUDA http://www.linuxidc.com/Linux/2014-10/107501.htm
Ubuntu 12.04配置NVIDIA CUDA5.5實錄 http://www.linuxidc.com/Linux/2014-10/107502.htm
Ubuntu安裝Theano+CUDA http://www.linuxidc.com/Linux/2014-10/107503.htm
關於Ubuntu 12.04 下 CUDA5.5 的安裝請參看如下鏈接 Ubuntu 12.04 安裝 CUDA-5.5
Caffe配置簡明教程 ( Ubuntu 14.04 / CUDA 7.5 / cuDNN 5.1 / OpenCV 3.1 ) http://www.linuxidc.com/Linux/2016-09/135016.htm
更多Ubuntu相關信息見Ubuntu 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=2