1. 程式人生 > >微星GE62 NVIDIA960m 雙系統ubuntu16.04 配置caffe-ssd

微星GE62 NVIDIA960m 雙系統ubuntu16.04 配置caffe-ssd

   說來慚愧,之前完全沒接觸過裝系統,微星的筆記本買回來是沒有系統的,當時是同學幫我裝的win10。最近需要做物體檢測方面的工作,用DL,還是linux下比較方便。一個沒裝過系統的小白開始了安裝第二個系統ubuntu之旅。現在已經安裝完畢並且配置好了caffe-ssd,測試程式碼也已經跑成功了,所以來take some notes。
目前筆記本:win10+ubuntu16.04
          NVIDIA960m(驅動為375.66)+ 128G固態硬碟
  • 安裝ubuntu16.04
  • 安裝NVIDIA顯示卡驅動
  • 安裝CUDA8.0 cuDNN v5.1
  • 安裝caffe所需依賴包
  • 配置caffe-ssd並測試

安裝ubuntu16.04

我的win10裝在固態硬碟中,ubuntu在機械硬碟中。

  • 分盤。
    在機械硬碟中劃分出一塊區域,我劃了100G。用windows自帶的磁碟管理就可以。
  • 製作系統盤。
    實驗室有做好的盤,就直接拿來用了。
  • 安裝
    a.關閉security boot
    筆記本上電按 DELETE進入BIOS,切換到boot選單下,進入security boot關閉它。我是用legacy模式安裝,同學之前特意強調我要用這個模式,可是後來他自己用UEFI模式也裝成功了,所以應該兩個模式都可以。
    b.引導安裝
    插上系統盤,重啟筆記本,上電後按F11進入啟動選項中,選擇自己的U盤從U盤啟動,引導安裝。接著按F1-F6任意進入引導項(在裝的過程中,很多次不跳出引導項,直接U盤啟動,因為沒有修改屬性,所以總是卡在安裝介面上),切到“install ubuntu”項,按e

    鍵進行編輯,在“splash —”後面新增“ nomodeset”,新增完按F10,等一會就可以愉快的看到安裝介面了,一路選下去就好了,在分割槽的時候,可以參考我的這裡寫圖片描述

    在下面選擇引導器安裝的分割槽的時候和/boot分割槽選一致就好了,一路裝下去重啟就好啦。

安裝NVIDIA顯示卡驅動

   重啟後輸完密碼發現桌面什麼都沒有,真的是什麼都沒有,只有一個滑鼠,尷尬。這是顯示卡驅動的問題,重灌就好了。在裝的過程中還遇到了迴圈登入的問題,還有裝完顯示卡驅動發現在NVIDIA X server settings中不能切換顯示卡的問題,於是把解決方案記錄下來。
  • 解除安裝原有的NVIDIA驅動

Ctrl + Alt + F1進入命令列模式,登入完輸入命令

sudo apt-get remove --purge nvidia*
  • 禁止nouveau整合顯示卡驅動

這是第三方為ubuntu開發的開源驅動,在ubuntu中整合,我們要把它禁止才能安裝官網的驅動。把nouveau驅動新增到黑名單中。

#修改blacklist.conf屬性,新增修改許可權
sudo chmod 666 /etc/modprobe.d/blacklist.conf
#編輯blacklist.conf
sudo gedit /etc/modprobe.d/blacklist.conf
#在檔案後新增以下5行:
blacklist vga16fb
blacklist nouveau
blacklist rivafb
blacklist rivatv
blacklist nvidiafb

重啟後就能看到桌面了,側邊欄什麼的都有了,然後就能用網頁愉快的下載驅動了。

  • 安裝NVIDIA官網驅動

NVIDIA官網驅動下載對應的驅動檔案(.run檔案)

Ctrl + Alt + F1進入命令列模式。cd命令進入到/Downloads資料夾中,ls一下,看有沒有剛才下載的安裝檔案。

#給驅動檔案賦予執行許可權 可以用TAB鍵來自動補全
sudo chmod a+x NVIDIA-Linux-x86_64-375.66.run
#安裝(一定要把後面引數帶上,否則會迴圈登入的)
sudo ./NVIDIA-Linux-x86_64-375.66.run –no-x-check –no-nouveau-check –no-opengl-files

執行完輸入nvidia-smi可以檢視驅動資訊,如果能查到說明安裝成功。
重啟後發現NVIDIA X server settings 中並不能切換顯示卡,在命令列模式下用apt-get再裝一次。
輸入sudo apt-get install nvidia-後雙擊TAB鍵,找到最新的版本號,最短的就好,比如我的sudo apt-get install nvidia-375再裝一次。重啟之後在NVIDIA X server settings 中切換到N卡重啟就正常了。如下圖。
這裡寫圖片描述

安裝CUDA8.0 cuDNN v5.1

參考的這裡CUDA8.0安裝寫的很詳細啊

安裝caffe所需打依賴包

懶人必備:apt-get
(其實我是自己裝了,所有依賴包都手動裝了,最後發現要連結路徑什麼的,編譯的時候總是出問題,最後發現還是apt-get最好用)

sudo apt-get install git
sudo apt-get update 
sudo apt-get install build-essential cmake git pkg-config 
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libhdf5-serial-dev protobuf-compiler 
sudo apt-get install libatlas-base-dev 
sudo apt-get install --no-install-recommends libboost-all-dev 
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
sudo apt-get install python-dev #預設安裝python2.7,可以手動安裝python3
sudo apt-get install python-numpy python-scipy  

安裝caffe-ssd

按照官方的指令裝就好啦,其中需要修改三個檔案,具體摘錄如下:

git clone https://github.com/weiliu89/caffe.git
cd caffe
git checkout ssd
# Modify Makefile.config according to your Caffe installation.
cp Makefile.config.example Makefile.config
make -j8
# Make sure to include $CAFFE_ROOT/python to your PYTHONPATH.
make py
make test -j8
# (Optional)
make runtest -j8

官方給的步驟在上面,但是自己用發現了問題,需要調整,如下

# Modify Makefile.config according to your Caffe installation.
cp Makefile.config.example Makefile.config
#copy完要修改檔案
#用gedit開啟Makefile.config檔案
#開啟之後修改如下內容:
//若使用cudnn,則將# USE_CUDNN := 1 修改成: USE_CUDNN := 1 
//若使用的opencv版本是3的,則將# OPENCV_VERSION := 3 修改為: OPENCV_VERSION := 3 
//若要使用python來編寫layer,則需要將# WITH_PYTHON_LAYER := 1 修改為 WITH_PYTHON_LAYER := 1 
//重要的一項 將# 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的位置,所以需要更改這一路徑
#修改Makefile檔案
//將NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS)
//替換
//NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
#修改/usr/local/cuda/include/host_config.h檔案
//將#error-- unsupported GNU version! gcc versions later than 5.0 are not supported!
//改為 //#error-- unsupported GNU version! gcc versions later than 5.0 are not supported!
# make -j8太快,導致有的檔案還沒有make出來後面就要用,會報錯,用下面的
make all 
# Make sure to include $CAFFE_ROOT/python to your PYTHONPATH.
# 我自己裝了python3.5,需要將Makefile.config檔案中做修改,如下:
//# Uncomment to use Python 3 (default is Python 2)
//最好自己去 /usr/lib/x86_64/ 中去看一看libboost_python的後面是py多少,修改下面打python庫的路徑 這樣下一句就不會報錯了
// PYTHON_LIBRARIES := boost_python-py35 python3.5m
// PYTHON_INCLUDE := /usr/include/python3.5m \
                 /usr/lib/python3.5/dist-packages/numpy/core/include
make py
make test -j8
# (Optional)
make runtest -j8

執行完不報錯,那麼恭喜你,你的caffe-ssd就配置成功了,快去跑例程。。。

感謝身邊一票人的幫助,近到實驗室,遠到瀋陽的成都的同學,感謝!