電腦配置(戴爾臺式、win10 ubuntu16.04雙系統、集成顯卡 nvidia gt730顯卡 雙顯卡)
一 安裝依賴:
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
二 安裝nvidia顯卡驅動
1 查詢驅動型號並下載:(http://www.nvidia.com/Download/index.aspx?lang=en-us)
2 開始安裝:
2.1 禁用secure Boot
secure Boot 會阻止第三方驅動安裝,安裝nvidia顯卡驅動需要禁用該功能。
很多朋友被迫BIOS裏面禁用UEFI,這樣雖然可以解決問題,但是會影響Windows 等系統的啓動。
其實,可以不禁用BIOS裏面的UEFI安全啓動。
用Mok管理工具,禁用 shim->grub2 這一步之後的校驗就行了
sudo mokutil --disable-validation
輸入上述命令,會要求你設置一個 8-16位的密碼,你設置好後(比如8個8)重啓,重啓第一次,會有幾秒鐘提示你按任意鍵進入MoK管理界面,然後按照提示輸入剛纔設置的密碼對應位,然後管理Mok,禁用Secure boot 即可
2.2 禁用集成顯卡驅動:
編輯:
sudo gedit /etc/modprobe.d/blacklist.conf
最後一行加上:
blacklist nouveau
更新:
sudo update-initramfs -u
重啓電腦~ 這裏要尤其注意,安裝顯卡驅動要先切換到文字界面,(按Ctrl+Alt+F1~F6)。所以,啓動電腦後,先進入文字界面。登錄root後輸入:
lsmod | grep nouveau
查看集成顯卡驅動是否禁用成功。
2.3 關閉圖形界面執行安裝
集成顯卡驅動禁用成功後,輸入命令:
sudo service lightdm stop
關閉X-Win窗口。
現在可以安裝驅動了,先進入nvidia驅動下載目錄 ,然後輸入:
sudo ./NVIDIA-Linux-x86_64-**.run
按照提示一步步來。若是沒能安裝,可能是權限問題,輸入:
chmod 777 NVIDIA-Linux-x86_64-**.run
修改權限後再安裝。完成後,再次重啓電腦。(或者輸入命令sudo service lightdm start,打開X-Win窗口,然後ALT+CTRL+F7切換回圖形界面即可。)
安裝完成之後輸入以下指令進行驗證:
sudo nvidia-smi
若列出了GPU的信息列表則表示驅動安裝成功。
三 安裝cuda
1 下載cuda,官網(https://developer.nvidia.com/cuda-downloads),下載runfile(local)
2 安裝cuda
sudo chmod 777 cuda_*_linux.run
sudo ./cuda_*_linux.run
(注意:執行後會先出現一個聲明,需要閱讀到100%,同意聲明後纔會開始安裝。)
安裝時首先會有一系列提示讓你確認,但是注意,有個讓你選擇是否安裝nvidia顯卡驅動時,一定要選擇否。其餘選擇默認或者yes。
3 配置環境變量
sudo gedit ~/.bashrc (最後一行添加)
export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
sudo gedit /etc/profile(最後一行添加)
export PATH=/usr/local/cuda/bin:$PATH
sudo gedit /etc/ld.so.conf.d/cuda.conf
/usr/local/cuda/lib64
sudo ldconfig(使配置生效)
4 驗證
cd /usr/local/cuda-*/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery
四 安裝cudnn5.1
1 下載cudnn5.1,官網或者百度雲(https://blog.csdn.net/seven_year_promise/article/details/78390882 )
2 安裝
sudo tar -zxvf ./cudnn-8.0-linux-x64-v5.1.tgz
2.1 複製頭文件
cd cuda/include
sudo cp cudnn.h /usr/local/cuda/include
2.2 複製動態鏈接庫
cd ..
cd lib64
sudo cp lib* /usr/local/cuda/lib64/
2.3 刪除原有動態文件
cd /usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so.5
2.4 生成軟銜接(注意這裏要和自己下載的cudnn版本對應,可以在/usr/local/cuda/lib64下查看自己libcudnn的版本)
sudo ln -s libcudnn.so.5.1.10 libcudnn.so.5
sudo ln -s libcudnn.so.5 libcudnn.so
2.5 使配置生效
sudo ldconfig /usr/local/cuda/lib64
五 安裝opencv3.30
1 下載opencv3.30 代碼包
2 安裝依賴
sudo apt-get install --assume-yes libopencv-dev build-essential cmake git libgtk2.0-dev pkg-config python-dev python-numpy libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libtiff5-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libxine2-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev libtbb-dev libqt4-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils unzip
sudo apt-get install build-essential cmake git
sudo apt-get install ffmpeg libopencv-dev libgtk-3-dev python-numpy python3-numpy libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libtiff5-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libxine2-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libv4l-dev libtbb-dev qtbase5-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils unzip
3 開始安裝
mkdir build
cd build/
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D WITH_V4L=ON -D WITH_QT=ON -D WITH_OPENGL=ON ..
make
sudo make install
sudo /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
sudo ldconfig
sudo apt-get update
4 方便卸載
sudo apt-get install checkinstall
sudo checkinstall
六 安裝caffe
1 安裝依賴
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install -y build-essential cmake git pkg-config
sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install -y libatlas-base-dev
sudo apt-get install -y --no-install-recommends libboost-all-dev
sudo apt-get install -y libgflags-dev libgoogle-glog-dev liblmdb-dev
sudo apt-get install -y python-pip
sudo apt-get install -y python-dev
sudo apt-get install -y python-numpy python-scipy
2 下載caffe
git clone https://github.com/BVLC/caffe.git
3 開始安裝
3.1 複製配置文件
sudo cp Makefile.config.example Makefile.config
3.2 打開並修改配置文件:
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
d.若需使用多GPU,將 #USE_NCCL := 1 改爲 USE_NCCL := 1
e.若使用matlab,修改matlab路徑爲:
MATLAB_DIR := /usr/local/MATLAB/R2014a/ (your matlab path)
f. 重要的一項 :將# 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
3.3 修改Makefile 文件
打開makefile文件,做如下修改,將:
NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS)
替換爲:
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
在
CXXFLAGS += -MMD -MP
的下方,添加
CXXFLAGS += -std=c++11
3.4 其他配置
編輯/usr/local/cuda/include/host_config.h
將其中的第115行註釋掉:
將
#error-- unsupported GNU version! gcc versions later than 4.9 are not supported!
改爲
//#error-- unsupported GNU version! gcc versions later than 4.9 are not supported!
3.5編譯
make all -j4 #-j根據自己電腦配置決定
sudo make runtest
到此caffe配置完畢!
3.6 MNIST數據集測試
cd ~/caffe
./data/mnist/get_mnist.sh
./examples/mnist/create_mnist.sh
./examples/mnist/train_lenet.sh
相關鏈接:
https://blog.csdn.net/jiangyanting2011/article/details/78873113
https://www.cnblogs.com/longmao-yiran/p/6832374.html
https://blog.csdn.net/sinat_34521860/article/details/73440722
https://blog.csdn.net/mynotwo/article/details/78661664