時隔半年,重新在linux 上配置 Cuda+Cudnn+Pytorch+Caffe+Opencv
libsdl1.2debian (= 1.2.15-10) 但是 1.2.15-10+rpi1 正要被安裝
依賴: libasound2-dev 但是它將不會被安裝 1.0.28-1+rpi1
依賴: libglu1-mesa-dev 但是它將不會被安裝 libglu-dev
通過一系列的嘗試後,我搜到的可行的方法有一個,那就是手動刪除當前的包,然後按照error裡的需求將新的包依次安裝所需求的版本。因為害怕我這樣做後,原有的pytorch和cuda會因為包被改變,而再次出現依賴問題,我決定重新安裝。
首先明確安裝的順序:1.Ubuntu16.04的系統(不可以是虛擬機器,因為虛擬機器無法訪問顯示卡,這會導致你無法安裝顯示卡驅動!!!)2.nvidia顯示卡驅動(跟你的顯示卡型號相同的驅動)3.Cuda8.0安裝(建議安裝8.0版本!)4.Cudnn配置 5.OpenCV3.1.0安裝 (3.0.0安裝會有問題,親測!比3.1.0更高的版本沒有安裝過,不一定可以安裝成功!)6.pytorch安裝/Caffe安裝(按順序安裝完步驟1到步驟5後,你就可以隨意安裝其他的深度學習框架了,但是步驟1,2,3,4,5一定需要按順序來)一.ubuntu 16.04系統的安裝
裝系統請靠自己,linux安裝真的是點一下玩一年裝備不花一分錢(一鍵到位),你需要注意的是在分配磁碟空間的時候找一下教程,看看應該怎麼分配空間。
二.nvidia顯示卡驅動安裝
首先明確自己的顯示卡是什麼型號,如果你是雙系統的話,你可以在windows系統上看下配置,或者你可以直接在linux的命令列裡輸入:
lspci | grep -i vga
我本人的顯示卡是Nvidia GTX 960m,所以在官網下載:http://www.nvidia.com/Download/index.aspx?lang=en-us
下載完成後:
在terminal輸入:
sudo gedit /etc/modprobe.d/blacklist.conf
在開啟的文件內的最後一行輸入:
blacklist nouveau
接著在終端輸入:
sudo update-initramfs -u
重啟系統,然後按 Ctrl+Alt+F1,進入文字頁面
在中斷輸入:
sudo service lightdm stop
然後進入你下載顯示卡驅動的目錄,我的目錄是Documents裡,所以我cd進入這個目錄,然後執行:
sudo ./NVIDIA-Linux-x86_64-xxx.xx.run -no-x-check -no-nouveau-check -no-opengl-files
注意注意注意,一定要輸入上面的-no-x-check -no-nouveau-check -no-opengl-files,很多部落格沒有加,
可能會導致編譯出錯,所以建議一定要像我說的這麼寫!
安裝完成後重啟電腦:
reboot
至此如果沒有出錯,那麼恭喜你,你的驅動安裝成功了!
三.安裝CUDA
https://developer.nvidia.com/cuda-toolkit-archive在這裡下載CUDA8.0的版本
下載成功後進行cuda的安裝
首先更改許可權:
sudo chmod 777 cuda_8.0.xx_linux.run
然後編譯:
sudo ./cuda_8.0.xx_linux.run
注意!!!在安裝過程中,它會問你是否安裝nvidia的顯示卡驅動,一定要選擇no!其他的全選yes即可。切記切記,不然你上一步安裝的nvidia顯示卡驅動就會被覆蓋了。
接著輸入:sudo gedit ~/.bashrc,開啟配置檔案
在最後加入下列程式碼
export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
至此,配置成功!
四.CudNN下載與配置
首先去官網進行下載 https://developer.nvidia.com/cudnn
下載後解壓,解壓後文件夾的名字預設是cuda
執行以下命令,進入cuda 下的include目錄:
cd cuda/include
然後進行復制貼上:
sudo cp cudnn.h /usr/local/cuda/include
接著回到cuda目錄:cd ..
進入lib64目錄:cd lib64
繼續複製貼上:
sudo cp lib* /usr/local/cuda/lib64/
完成!你會發現cudNN的配置僅僅需要做的就是複製檔案和貼上檔案。
五.Opencv安裝
進入官網下載3.1.0版本的sources檔案 :https://opencv.org/releases.html
下載完成後進行解壓,進入解壓的資料夾,接著輸入:
mkdir build
cd build
sudo apt install cmake
sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
然後開始編譯:
sudo make
可能的錯誤:hdf5.h: No such file or directory
解決方法:參考這篇文章,你需要修改一些配置檔案http://blog.csdn.net/xue_wenyuan/article/details/52037121
上面的編譯成功後,安裝:
sudo make install
六.安裝pytorch
最愛pytorch了,安裝一直很簡單很輕便:
git clone --recursive https://github.com/pytorch/pytorch
python setup.py install
pip install torchvision
你可以測試一下是否成功安裝:
python
import torch
如果沒報錯,則成功!注意,請退出torch的資料夾再進行測試,不然會報錯!(官方回覆)
七.安裝caffe
去github上下載原始碼:https://github.com/BVLC/caffe
解壓後進入caffe資料夾,執行以下的命令:
sudo cp Makefile.config.example Makefile.config
sudo gedit Makefile.config #開啟Makefile.config檔案
注意,以下的修改是針對與我上文所寫的版本號所一致的,如果你與我的不一致,以下的修改不一定適用於你的配置,所以我推薦所有安裝的版本號都與我的一致,這樣保證萬無一失!!!
將
#USE_CUDNN := 1
修改成:
USE_CUDNN := 1
將
#OPENCV_VERSION := 3
修改為:
OPENCV_VERSION := 3
將 #WITH_PYTHON_LAYER := 1
修改為 WITH_PYTHON_LAYER := 1
將
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的系統,所以以上的修改是必要的。
接著,修改makefile檔案
開啟makefile檔案,做如下修改:
將:
NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS)
替換為:
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
再在終端輸入:
sudo cp /usr/local/cuda-8.0/lib64/libcudart.so.8.0 /usr/local/lib/libcudart.so.8.0 && sudo ldconfig
sudo cp /usr/local/cuda-8.0/lib64/libcublas.so.8.0 /usr/local/lib/libcublas.so.8.0 && sudo ldconfig
sudo cp /usr/local/cuda-8.0/lib64/libcurand.so.8.0 /usr/local/lib/libcurand.so.8.0 && sudo ldconfig
sudo cp /usr/local/cuda-8.0/lib64/libcudnn.so.6 /usr/local/lib/libcudnn.so.6 && sudo ldconfig
以上,所有的修改都完成了,我們接著進行編譯:
sudo make all
完成後,我們測試一下
sudo make runtest
如果沒有錯誤,則表示安裝成功!