一.安裝環境:
硬件:微星GE70 2PC 089-XCN,14年性價比較高的一款,然而兩年多過去后配置已經落伍...當年的價格現在能買到i7+GTX1050了...
CPU:intel i5 4200H 雙核四線程 2.8GHz
顯卡:Intel HD 4600 + Nvidia GTX 850M
硬盤:Linux系統分配了100G,現在我主要還是用Windows所以給Linux分的比較少,不過看大多數做深度學習的/home至少分300個G...
內存:16G
系統:LinuxMint18.1,基於Ubuntu 16.04系統。
選擇LinuxMint的原因就是,Ubuntu上顯卡驅動不好裝,裝不上,裝上之后重啟不能登錄桌面...Mint看起來人性化些,而且作為桌面操作系統用也是不錯的選擇(除了沒有QQ和迅雷這倆我離不開的軟件...還有微軟Office套件...)
准備安裝:CUDA8.0+OpenCV3.2+Caffe
二.Windows10+LinuxMint18.1雙系統安裝
這個單開一篇文章說吧...(我還沒寫,請先參考這篇可讀性比較好的文章:UEFI下Win 8.1+Ubuntu 14.04安裝教程)
簡單來講,推薦選擇UEFI引導方式,硬盤分區表GPT,Windows那部分保持不變,留出個幾百G的空余(留多少看你心情吧),然后100~300M做EFI引導分區,和內存等大的交換分區,剩下全給/ Ext4,或者你單獨給/home多少多少...
安裝時候有個第三方驅動的問題,使用第三方驅動需要關閉安全引導,一定記住你定的那個密碼,重啟后它問你那個密碼不是直接讓你輸入密碼,而是問你第幾個數字是啥,有意思...
我建議裝完系統后更新一下,有的教程說不要更新,我感覺更新總是好的...Mint的軟件源盡量不要改,我改成過中國的,然后就出錯了...網速能忍的情況下盡量不要改...如果你知道哪個源好用評論告訴我 _(:з」∠)_
系統安裝倒是不難,接下來最頭疼的問題來了,就是安裝驅動。
三.Nvidia顯卡私有驅動安裝
你可能會遇到聲卡驅動問題導致電腦沒聲音,網卡驅動問題導致不能上網,觸摸板驅動問題導致觸摸板不能用,鍵盤驅動...鍵盤能有啥問題頂多是鍵盤燈不亮...沒辦法你的電腦本來就不是為了Linux而設計的(不過還真有出廠預裝Ubuntu的),缺少驅動問題要自己想辦法了。
下面只說顯卡驅動問題。有個尷尬的問題就是系統默認安裝了nouveau開源驅動,你是可以把它加黑名單,但貌似在拔掉顯卡前這個驅動是不會停止工作的,你也就裝不上官方驅動...顯卡咋拔?拔了不黑屏了嗎...就算禁用,那也黑了...尤其這雙顯卡...不管了...
進入系統設置最底下有個驅動管理,點進去后你能看到,給你推薦了驅動,Intel那里選擇intel-microcode就好,NVIDIA那里有兩個,一個NVIDIA官方的閉源驅動,一個叫nouveau的開源驅動。顯然閉源的效果要比開源的好,而且你要裝CUDA肯定需要官方的顯卡驅動。但由於Linux的政策限制,預裝了nouveau驅動,在裝官方驅動之前,你要把這個開源驅動加入黑名單,不加的話官方驅動裝不上。
我嘗試了從官網下載最新的驅動安裝包然后進命令行模式裝,可惜各種報錯...所以還用系統推薦的吧...
1.為了將nouveau加入黑名單,編輯 /etc/modprobe.d/blacklist.conf ,在文件后面加入blacklist nouveau.
2.到系統設置里找驅動管理,選擇兩個推薦的驅動,點應用更改。
3.等,我裝的時候等了5個小時,進度條一直剩一點點,然后我就直接重啟了,重啟后會進入那個上面說的關閉安全引導的步驟,輸對密碼后就可以正常進系統了。
最好是多等等,我等一個小時時候進度條也剩那一點,直接重啟后桌面就開始崩潰了,顯然驅動沒裝好...說實話我現在都不知道裝不上是因為網速慢還是看臉,所以嘛,多等等就是了...畢竟重裝了6遍系統才成功把顯卡驅動裝上...
裝好后,系統右下角會有一個N卡的logo,點它進NVIDIA X Server Setting可以切換顯卡的,每次切換都需要注銷。(如果你也用微星你會發現電源燈由藍色變為紅色,證明獨顯工作了。裝好獨顯驅動后steam里好多游戲都可以流暢運行!)
你也可以進一步確認一下,進終端輸入nvidia-smi后出現以下信息表示安裝成功。
四.安裝CUDA8.0和cudnn v5.1
去NVIDIA開發者官網下載最新的CUDA安裝包。如圖
此時我下載的是cuda_8.0.44_linux.run
版本選擇16.04,因為Mint18是基於Ubuntu16.04的。然后選runfile那個。
執行命令:
sudo sh cuda_8.0.44_linux.run --override
啟動安裝程序,按住空格到最后,老長了,相信你不會看的,輸入accept接受條款。
Q1: You are attempting to install on an unsupported configuration. Do you wish to continue? 咋不支持了,配置低還是怎么...那也不能不裝啊,輸入y
Q2: Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 367.48? 別裝,剛才裝過了。再裝裝出問題來...害怕,輸入n
Q3: Install the CUDA 8.0 Toolkit? y
Q4: Enter Toolit Location 回車就行默認安裝路徑:/usr/local/cuda-8.0
Q5: Do you want to install a symbolic link at /usr/local/cuda? y
Q6: Install the CUDA 8.0 Samples? y
Q7:Enter CUDA Samples Location 還是回車,默認路徑:/home/用戶名
裝完CUDA8.0后,需要將cudnn相關頭文件和so文件放入cuda8.0相應的目錄中:
先解壓cudnn
然后,我是直接圖形界面移動的,命令的話:
cd /home/用戶名/Softwares/deeplearning_softwares/cudnn; cd cuda/include/ sudo cp cudnn.h /usr/local/cuda/include/ cd ../lib64 sudo cp lib* /usr/local/cuda/lib64/ sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
建立軟連接,終端輸入:
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
打開文件后在末尾加入(要是沒裝gedit就裝一個,用啥打開都行)
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
使鏈接生效。
cuda Samples測試
打開CUDA 8.0 Samples默認安裝路徑,終端輸入
cd /home/用戶名/Workspace/CUDA_Samples/NVIDIA_CUDA-8.0_Samples sudo make all -j4
(看起來缺了什么文件,我暫時不知道...)
我處理器4線程的所以寫j4,為了能效率高點,你8線程的也可以j8,雙線程的就直接make all吧...
如果出現了“unsupported GNU version! gcc versions later than 5.3 are not supported!”的錯誤,這是由於GCC版本過高,在終端輸入
cd /usr/local/cuda-8.0/include
sudo cp host_config.h host_config.h.bak
sudo gedit host_config.h
ctrl+f尋找有“5.3”的地方,只有一處,如下
# if __GNUC__ > 5 || (__GNUC__ == 5 && __GNUC_MINOR__ > 3)
#error -- unsupported GNU version! gcc versions later than 5.3 are not supported!
將兩個5改成6,即
#if __GNUC__ > 6 || (__GNUC__ == 6 && __GNUC_MINOR__ > 3)
保存退出,繼續在終端輸入
cd /home/clark/Workspace/CUDA_Samples/NVIDIA_CUDA-8.0_Samples
sudo make all -j4 (4核)
完成后繼續向終端輸入
cd bin/x86_64/linux/release
./deviceQuery
出現如下圖所示,表示成功安裝cuda
五.安裝OpenCV 3.2
從OpenCV官網中下載opencv3.2.0版本到本地。解壓到 /home/用戶名/Compile/opencv-3.2.0/
先安裝OpenCV的依賴
sudo apt-get -qq remove ffmpeg x264 libx264-dev sudo apt-get -y install build-essential cmake pkg-config libtiff4-dev libjpeg-dev libjasper-dev libavcodec-dev sudo apt-get -y install libavformat-dev libswscale-dev libdc1394-22-dev libxine-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev sudo apt-get -y install libv4l-dev libtbb-dev libgtk2.0-dev libfaac-dev libmp3lame-dev unzip sudo apt-get -y install libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev ibvorbis-dev libxvidcore-dev x264 v4l-utils ffmpeg
在本地編譯安裝OpenCV3.2.0
cd /home/用戶名/Compile/opencv-3.2.0/ mkdir build cd build cmake -D CMAKE_BUILD_TYPE=Release .. make -j4 sudo make install
默認安裝, 頭文件會在/usr/local/include中, so文件在/usr/local/lib中。
六.安裝Caffe
先安裝Caffe的依賴
sudo apt-get install build-essential #必要的編譯工具依賴 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
安裝pip和easy_install
sudo apt-get install python-pip sudo apt-get install python-setuptools
從github上下載caffe源碼(默認下載位置是你當前命令行所在的位置,默認為/home)
sudo apt-get install git git clone https://github.com/BVLC/caffe.git
下載完放到/home/用戶名/Compile/caffe/python
安裝Python的依賴
cd /home/用戶名/Compile/caffe/python sudo su for req in $(cat "requirements.txt"); do pip install -i https://pypi.tuna.tsinghua.edu.cn/simple $req; done exit
caffe的依賴安裝完畢后,開始編譯caffe源碼
cd /home/cty/Compile/caffe-master/
cp Makefile.config.example Makefile.config
把example的內容抄到config文件后,我們打開Makefile.config這個文件修改它的內容。
USE_CUDNN := 1 #取消該句注釋
OPENCV_VERSION := 3 #取消該句注釋
PYTHON_INCLUDE := /usr/include/python2.7 /usr/lib/python2.7/dist-packages/numpy/core/include
WITH_PYTHON_LAYER := 1 #取消注釋
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/local/include/opencv /usr/local/include/opencv2 /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
終端輸入:
cd /usr/lib/x86_64-linux-gnu sudo ln libhdf5_serial.so.10.1.0 libhdf5.so sudo ln libhdf5_serial_hl.so.10.0.2 libhdf5_hl.so sudo ldconfig
然后
cd /home/用戶名/Compile/caffe/
make all -j4
出現了錯誤如圖
原因是我們沒有安裝protobuf.git
所以我們先
make clean
然后去github下載安裝protobuf.git,放在哪你知道的
git clone https://github.com/google/protobuf.git
然后
cd /home/cty/Compile/protobuf chmod +x autogen.sh ./autogen.sh
然后又出錯了,autoreconf:not found
好我們再安裝automake工具
sudo apt-get install autoconf automake libtool
這回我們可以回到make all -j4了
cd /home/用戶名/Compile/caffe
make all -j4
然后
make runtest -j4
make pycaffe -j4
又出錯,爆炸,喝咖啡那么難嗎,我可能看的是“假教程”,用的是假"Linux",輸入的是"假命令”...
fatal error: numpy/arrayobject.h:沒有那個文件或目錄,原因沒裝python-numpy
sudo apt-get install python-numpy
之后再make pycaffe -j4就好了
然后
make distribute
接下來
cd /home/用戶名/Compile/caffe/python
python
>>> import caffe
沒報錯,說明caffe裝好了。
七.測試例子:
先下載mnist數據集
cd /home/用戶名/Compile/caffe/data/mnist/
./get_mnist.sh
不建議你用這個命令下載,因為網絡問題,根本下不下來...
所以我們到這個網站http://yann.lecun.com/exdb/mnist/
去下載這四個文件
train-images-idx3-ubyte.gz: training set images (9912422 bytes)
train-labels-idx1-ubyte.gz: training set labels (28881 bytes)
t10k-images-idx3-ubyte.gz: test set images (1648877 bytes)
t10k-labels-idx1-ubyte.gz: test set labels (4542 bytes)
速度慢的話回Windows用迅雷吧...
然后解壓他們。
解壓后的四個文件放到/home/用戶名/Compile/caffe/data/mnist/
然后把這四個文件每個文件名字中的.改成-
要不一會兒又打不開找不到文件了...
接下來,mnist數據格式轉換
cd /home/用戶名/Compile/caffe
./examples/mnist/create_mnist.sh
此時在/caffe/examples/mnist/目錄下生成mnist_test_lmdb和mnist_train_lmdb兩個LMDB格式的訓練集和測試集
開始訓練mnist
cd /home/用戶名/Compile/caffe
./examples/mnist/train_lenet.sh
本篇結束。
本人接觸Linux的時間不長,作為小白,文中內容難免出錯,如果您發現本文內容有誤,請評論指出,我會盡快修改並深表感激。
同時,感謝以下文章的作者或轉載者,是他們教會了我整個的安裝過程。
參考:
微星GS73VR 6RF + Linux Mint 18 + GTX1060 + CUDA8.0 + OpenCV3.0.0 + Caffe安裝筆記
ubuntu16.04+gtx1060+cuda8.0+caffe安裝、測試經歷
Ubuntu 14.04 安裝 Nvidia 私有驅動並進行雙顯卡切換
喝一杯咖啡真難——我的caffe在ubuntu14.04下安裝配置,改錯,換包記錄
編譯 pycaffe時報錯:fatal error: numpy/arrayobject.h沒有那個文件或目錄