首先吐個槽,ubuntu + nvidia的顯卡驅動簡直是反人類,害的我折騰了一天多。
一、問題及解決辦法
寒假放假回家沒事干,正好給家里電腦升級了顯卡gtx1050可以跑跑CNN。我在實驗室的顯卡是560,比較老了,按著實驗室的環境配置流程走下來居然不能用,癥狀就是在Python中不能成功的import caffe,然后重啟后無限循環登錄。
問題:
不能進入ubuntu的圖形界面,在登錄界面循環。
解決辦法:
Nvidia顯卡驅動的鍋,卸載顯卡驅動,按Ctrl+Alt+F1進入終端模式登錄,輸入命令
[html] view plain
copy sudo?apt-get?remove?--purge?nvidia*??
卸載顯卡驅動,然后重啟計算機,命令如下:
[html] view plain
copy sudo?reboot??
現在就可以登錄圖形界面進行cuda + cudnn + caffe的環境配置了。
二、安裝流程
2.1 Opencv安裝
在caffe中其實是調用了Opencv的一些服務的,因此我們首先需要安裝Opencv,安裝流程如下:
(1)在Opencv官網下載http://opencv.org/downloads.html需要的Opencv linux版的安裝包,這里我選擇的Opencv 2.4.12;
(2)依賴包的安裝,主要命令如下:
[html] view plain
copy sudo?apt-get?install?build-essential??sudo?apt-get?install??libgtk2.0-dev?libavcodec-dev?libavformat-dev??libtiff4-dev??libswscale-dev?libjasper-dev??sudo?apt-get?install?cmake??sudo?apt-get?install?pkg-config?? (3)把Opencv安裝包解壓,放到某目錄下,這里我是放到了home目錄下,在Opencv的目錄下新建文件夾為release,在終端中進入Opencv的release目錄,運行如下命令:
[html] view plain
copy cmake?-D?CMAKE_BUILD_TYPE=RELEASE?-D?CMAKE_INSTALL_PREFIX=/usr/local?..?? (4)使用如下命令編譯Opencv并安裝:
[html] view plain
copy make??sudo?make?install?? 至此Opencv已經安裝完成,可以使用codeblocks建工程使用Opencv進行測試,方法見我的一篇博文《Ubuntu下codeblocks安裝配置方法及opencv配置方法》
2.2 配置其他依賴
這里我有一個shell腳本文件,可以把它復制到一個新的.sh文件中,并使用如下命令給該.sh文件賦予運行的權限(xxx表示文件名)
[html] view plain
copy sudo?chmod?a+x?xxx.sh?? 運行該shell腳本
[html] view plain
copy sh?./xxx.sh?? shell腳本內容如下:
[html] view plain
copy #!/bin/bash??#?ATLAS??echo?"===========atlas=============="??apt-get?-y?install?libatlas-base-dev??#?snappy??echo?"===========snappy=============="??#?apt-get?-y?install?snappy??apt-get?-y?install?libsnappy-dev??#?boost??echo?"===========boost=============="??apt-get?-y?install?libboost-dev??apt-get?-y?install?libboost-filesystem-dev??apt-get?-y?install?libboost-system-dev??apt-get?-y?install?libboost-thread-dev??apt-get?-y?install?libboost-python-dev??#?protobuf??echo?"===========protobuf=============="??apt-get?-y?install?libprotobuf-dev??apt-get?-y?install?protobuf-compiler??apt-get?-y?install?python-protobuf??#?leveldb??echo?"===========leveldb=============="??apt-get?-y?install?libleveldb-dev??#?lmdb??echo?"===========lmdb=============="??apt-get?-y?install?liblmdb-dev??#?hdf5??echo?"===========hdf5=============="??apt-get?-y?install?libhdf5-dev??#?glog??echo?"===========glog=============="??apt-get?-y?install?libgoogle-glog-dev??#?gflag??echo?"===========gflag=============="??apt-get?-y?install?libgflags-dev??#?cython??echo?"===========cython=============="??apt-get?-y?install?cython??#?scipy??echo?"===========scipy=============="??apt-get?-y?install?python-scipy??#?scikit-image??echo?"===========scikit-image=============="??apt-get?-y?install?python-skimage??#?pyyaml??echo?"===========pyyaml=============="??apt-get?-y?install?python-yaml??#?easydict??echo?"===========easydict=============="??apt-get?-y?install?python-pip??#?指定使用科大鏡像源安裝easydict??pip?install?easydict?-i?https://pypi.mirrors.ustc.edu.cn/simple??##?錯誤排查??#?修復一個比較奇怪的一定要檢查這個目錄是否存在的問題??mkdir?-p?/usr/lib64??#?修復cuda鏈接庫找不到的問題??echo?"/usr/local/cuda/lib64"?>?cuda.conf??cp?cuda.conf?/etc/ld.so.conf.d??ldconfig?? 這個shell腳本是我師兄寫的,在這里鳴謝我師兄!
2.3 caffe源碼下載及編譯
(1)安裝git
[html] view plain
copy sudo?apt-get?install?git?? (2)拉取caffe源碼
[html] view plain
copy git?clone?https://github.com/BVLC/caffe.git?? (3)設置Makefile.config文件
把Makefile.config.example文件中內容進行復制,復制到新建的文件Makefile.config中,修改以下幾項:
i:把USE_CUDNN := 1這一行的注釋取消掉,因為gtx1050的算力是6.1高于3.0,是可以使用cuDNN加速的,這里具體看自己的顯卡配置;
ii:在INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include行后加空格,然后添加/usr/include/hdf5/serial
(4)編譯caffe
i:在計算機中搜尋libhdf5_serial.so.10.1.0文件,找到其所在目錄,在終端中進入該目錄,并執行以下命令:
[html] view plain
copy sudo?ln?libhdf5_serial.so.10.1.0?libhdf5.so???sudo?ln?libhdf5_serial_hl.so.10.0.2?libhdf5_hl.so??sudo?ldconfig??make?all?-j4?? ii:執行以下命令,其中-j4是表示使用4個線程進行編譯
[html] view plain
copy make?test?-j4???make?runtest?-j4???make?pycaffe?-j4???make?distribute?? 至此,caffe已經安裝完成。
2.4 Nvidia驅動安裝
這里注意,一定要
去Nvidia官網上去下載驅動,特別是
針對10系的顯卡!!!
其他的老顯卡,比如我實驗室的GTX 560不用這么麻煩就可以,我也只配置過這兩個顯卡,10系顯卡最好按照我這里的方法進行操作。
(1)去Nvidia官網下載GTX 1050驅動,網址如下:http://www.geforce.cn/drivers
(2)給下載的驅動程序賦予可執行權限,這里的.run文件是顯卡的驅動程序,安裝時注意換成自己的文件名
[html] view plain
copy sudo?chmod?a+x?NVIDIA-Linux-x86_64-375.26.run?? (3)關閉Ubuntu圖形界面
[html] view plain
copy sudo?service?lightdm?stop?? 使用Ctrl + Alt + F1進入終端界面并登錄 (4)安裝Nvidia驅動 在終端中進入之前下載的驅動程序所在的目錄并執行以下命令:
[html] view plain
copy sudo?./NVIDIA-Linux-x86_64-375.26.run?--no-x-check?--no-nouveau-check?--no-opengl-files?? 安裝好驅動程序以后開啟Ubuntu圖形界面
[html] view plain
copy sudo?service?lightdm?start?? 按Ctrl + Alt + F7進入圖形界面。 至此Nvidia驅動安裝完成。
2.5 Cuda安裝
同樣,這里的Cuda安裝時也不要使用命令行直接安裝,
去Nvidia官網https://developer.nvidia.com/cuda-downloads下載cuda進行安裝 這里同樣要注意,下載時要
選擇runfile類型文件,具體的選擇類型如下圖所示:
文件有1.4G大小,最好用迅雷下會快一些。
下載好Cuda,安裝過程如下:
[html] view plain
copy sh?cuda_8.0.27_linux.run?--override?? 首先會提醒你看一些它的使用協議,一直按空格直到出現是否同意,選擇Accept
程序會問你要不要安裝Nvidia驅動,這里
千萬不要選擇安裝,因為我們已經安裝過了,而且GTX1050這里安裝的驅動與我們之前安裝的驅動版本是不一樣的,
如果選擇安裝又會出現無限循環登錄的問題(血的教訓);
接下來的安裝過程一路選擇yes,然后按照默認的來就可以了。
2.6 cuDNN安裝
去Nvidia官網https://developer.nvidia.com/rdp/cudnn-download下載cuDNN安裝包,選擇這個:Download cuDNN v5.1 (August 10, 2016), for CUDA 8.0?版本
解壓安裝包以后會出現cuda的目錄,進入該目錄
[html] view plain
copy 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*?? 接下來執行以下命令:
[html] view plain
copy 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?? 在終端中輸入以下命令進行環境變量的配置:
[html] view plain
copy sudo?gedit?/etc/profile?? 在出現的文件中進行編輯,在末尾加上并保存:
[html] view plain
copy PATH=/usr/local/cuda/bin:$PATH???export?PATH?? 創建鏈接文件
[html] view plain
copy sudo?gedit?/etc/ld.so.conf.d/cuda.conf?? 在該文件中,插入/usr/local/cuda/lib64并保存,然后使用sudo ldconfig使之生效。
?2.7 測試
在終端中進入CUDA 8.0 Samples默認安裝路徑,輸入命令:
[html] view plain
copy sudo?make?all?-j4?? 此步可能會出錯,出錯處理見最下面的參考鏈接4,我這里沒有出錯。完成后繼續輸入
[html] view plain
copy cd?bin/x86_64/linux/release???./deviceQuery?? 出現下圖則表示cuda安裝完成
在已經配置好的eclipse + pydev環境中,新建python工程和源程序,并在工程名下右鍵——Properties——PyDev-PYTHONPATH——External Libraries中Add Source folder中選擇/home/hanchao/caffe/python路徑
在源程序中輸入
[python] view plain
copy import?caffe??print?'hello?world'?? 若編譯運行后沒有錯誤,則環境已經配置好。
-------------------------------------------------------------------------------更新的分割線-------------------------------------------------------------------
如果在編輯pycaffe時出現”python/caffe/_caffe.cpp:10:31: fatal error: numpy/arrayobject.h: 沒有這樣的文件或目錄“問題時,注意修改Makefile.config文件
把
[python] view plain
copy PYTHON_INCLUDE?:=?/usr/include/python2.7?\??????/usr/lib/python2.7/dist-packages/numpy/core/include?? 修改為
[python] view plain
copy PYTHON_INCLUDE?:=?/usr/include/python2.7?\??????/usr/local/lib/python2.7/dist-packages/numpy/core/include?? 即可
參考鏈接:
surgewong—— Opencv 2.4.9在Ubuntu下的配置安裝
余昌黔|書山有路——【解決】Ubuntu安裝NVIDIA驅動后桌面循環登錄問題
Ubuntu 14.04安裝NVIDIA英偉達顯卡驅動
WoPawn的博客——ubuntu16.04+gtx1060+cuda8.0+caffe安裝、測試經歷
總結
以上是生活随笔為你收集整理的[深度学习]Ubuntu16.04 + GTX 1050 + cuda8.0 + cuDNN5.1 + caffe安装详解的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。