NVIDIA DIGITS-2.0 + Ubuntu 14.04 + CUDA 7.0 + cuDNN 7.0 + Caffe 0.13.0环境配置
- 引言
- DIGITS簡介
- DIGITS特性
- 資源信息
- 說明
- DIGITS安裝
- 軟硬件環境
- 硬件環境
- 軟件環境
- 操作系統安裝
- DIGITS安裝前準備
- 安裝CUDA70deb方式
- 安裝cuDNN70
- 安裝Caffe-0130
- 安裝DIGITS
- 啟動DIGITS
- 配置DIGITS
- 軟硬件環境
- 使用DIGITS
- digits官方自帶例子MNIST
- 下載MNIST數據集
- 在DIGITS server上創建數據集
- 在DIGITS server上創建深度網絡模型并訓練
- 一個小問題cuDNN
- 使用DIGITS server 進行分類操作MNIST
- digits官方自帶例子MNIST
- 結語
?
引言
DIGITS簡介
DIGITS: Deep Learning GPU Training System1,是由英偉達(NVIDIA)公司開發的第一個交互式深度學習GPU訓練系統。目的在于整合現有的Deep Learning開發工具,實現深度神經網絡(Deep Neural Network,DNN)設計、訓練和可視化等任務變得簡單化。DIGITS是基于瀏覽器的接口,因而通過實時的網絡行為的可視化,可以快速設計最優的DNN。DIGITS是開源軟件,可在GitHub上找到,因而開發人員可以擴展和自定義DIGITS。
DIGITS特性
-
提供了友好的用戶界面,只需簡單的點擊即完成DNNs的訓練。DIGITS是一個Web應用,用瀏覽器訪問,上圖是典型的工作流程圖。
-
DIGITS用戶接口提供了DNN優化工具。主控制臺列出了現有的數據庫和機器上可用的先前訓練好的網絡模型以及正在進行的訓練活動。
-
DIGITS使可視化網絡和快速對比精度變得簡單。你選擇一個模型,DIGITS顯示訓練狀態和精度,并提供在網絡訓練時或訓練完畢后加載和分類圖像的選項。
-
由于DIGITS運行在一個web服務器上,團隊用戶可以很方便地分享數據庫和網絡配置,以及測試和分享結果。
-
DIGITS集成了流行的Caffe deep learning framework,并支持使用cuDNN進行GPU加速。
資源信息
https://developer.nvidia.com/devbox
http://docs.nvidia.com/deeplearning/index.html#axzz3juAVWoDb
登陸軟件首頁,注冊后下載DIGITS(注意到注冊郵箱里點擊激活鏈接),也可以下載源碼(基于Python)安裝。
參考資料:
DIGITS 2支持多GPU自動擴展 實現深度學習性能倍增,原文鏈接:GPU Powered DeepLearning with NVIDIA DIGITS on EC2
EC2上的深度學習:CUDA 7/cuDNN/caffe/DIGITS實戰教程,原文鏈接:GPU Powered DeepLearning with NVIDIA DIGITS on EC2
說明
DIGITS安裝
安裝指導,官網說DIGITS的安裝相當方便:1)訪問digits home page注冊并下載安裝器安裝;或者2)從GitHub上獲取源代碼安裝。實際上,對于新手來說并非如此,下面介紹采用源碼的安裝方式。
說明1:本人將采用源碼安裝的軟件的安裝根目錄為:/home/liu/sfw,即~/sfw,本文中記為yourpath。這樣Caffe的安裝路徑:/home/liu/sfw/caffe,DIGITS的安裝路徑:/home/liu/sfw/digits;而CUDA默認安裝根目錄為/usr/local。
說明2:每個軟件的安裝方法可以查看官網的在線幫助,也可以查看源碼中的文檔。對于后者,多為“.md”即markdown文件,可以安裝ReText查看,如下圖為預覽的Caffe的“installation.md”文件。?
軟硬件環境
硬件環境
筆記本× 1、CPU(Intel? Core? i5-3210M CPU @ 2.50GHz × 4 )× 1、GPU(GeForce GT 635M/PCIe/SSE2 + IntelGMAHD3000)× 1。
軟件環境
環境簡介及下載鏈接:
操作系統安裝
具體安裝方法參見:U盤系統盤制作與系統安裝(詳細圖解)。
DIGITS安裝前準備
采用源碼安裝DIGITS前,事先要安裝CUDA(必須)、cuDNN(用于GPU加速,建議安裝),Caffe(運行DIGITS至少要有一個Deep Learning framework,也可以安裝Theano,這里不介紹)。
安裝CUDA7.0(“.deb”方式)
1.下載安裝文件:可以直接訪問上面給出的官網鏈接下載,也可以在終端窗口輸入如下命令下載。
# downloading the (currently) most recent version of CUDA 7 sudo wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/cuda-repo-ubuntu1404_7.0.28_amd64.deb- 1
- 2
2.安裝依賴工具:需要連網。
# installation of required tools sudo apt-get install -y gcc g++ gfortran build-essential git wget linux-image-generic libopenblas-dev python-dev python-pip python-nose python-numpy python-scipy- 1
- 2
- 3
- 4
3.安裝CUDA:
# installing CUDA sudo cuda-repo-ubuntu1404-7-0-local_7.0-28_amd64.deb sudo apt-get update sudo apt-get install cuda- 1
- 2
- 3
- 4
- 5
4.設置環境變量:?
方式1,僅修改用戶變量
- 1
- 2
- 3
方式2,修改所有用戶變量?
先使用sudo gedit /etc/profile打開“profile”文件,?
然后在打開的“profile”文件的末尾添加如下代碼并保存:
- 1
- 2
- 3
- 4
5.加載新的環境變量:添加好環境變量后,需要加載新的環境變量,才能應用于系統。
重啟sudo reboot,或加載更新環境變量source ~/.bashrc(方式1),source /etc/profile(方式2)。
6.安裝samples并檢查CPU:samples被默認安裝在/home/liu下:
# installing the samples and checking the GPUcuda-install-samples-7.0.sh ~/ cd NVIDIA_CUDA-7.0_Samples/1_Utilities/deviceQuery make ./deviceQuery- 1
- 2
- 3
- 4
- 5
- 6
以上過程,終端都沒有給出錯誤信息,則證明CUDA安裝成功。
安裝cuDNN7.0
cuDNN的安裝很簡單:
1.解壓:進入“cudnn-7.0-linux-x64-v3.0-rc.tgz”所在目錄,將文件解壓,如下:
#注意修改成你的目錄 cd /home/liu/sfw #解壓 gzip -d cudnn-7.0-linux-x64-v3.0-rc.tgz tar xf cudnn-7.0-linux-x64-v3.0-rc.tar- 1
- 2
- 3
- 4
- 5
2.copy文件至CUDA安裝目錄:解壓后,在你的目錄下生成一個“cuda”文件夾,對于cuDNN6.5的版本解壓后生成“cudnn-6.5-linux-x64-v2”文件。使用如下命令copy
# copy the library files into CUDA‘s include and lib folders sudo cp cuda/include/cudnn.h /usr/local/cuda/include sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64- 1
- 2
- 3
cuDNN安裝完成。
安裝Caffe-0.13.0
官網的安裝方法:http://caffe.berkeleyvision.org/installation.html。
下載好Caffe-0.13.0后,解壓文件caffe-master.zip生成“caffe-master”文件夾,并將其重命名為“caffe”,放在yourpath根目錄下下,如:/home/liu/sfw。
1.首先安裝一些依賴庫:CUDA(已安裝)、BLAS 、Boost、OpenCV等等,見官網的安裝方法:http://caffe.berkeleyvision.org/installation.html,或自述文件(installation.md)。
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler libatlas-base-dev- 1
- 2
- 3
- 4
2.安裝其它的依賴庫:查看“requirements.txt”文件,請注意將下面的路徑替換為你的路徑。
cd ~/sfw/caffe/python for req in $(cat requirements.txt); do sudo pip install $req; done- 1
- 2
2.修改配置文件并編譯:終端進入“caffe”文件夾,復制一份Makefile.config文件,然后修改Makefile.config文件,如不使用GPU,可以去掉#GPU_ONLY=1的注釋符:#,請根據需要自行修改,這里采用默認值,不做修改。然后進行編譯:
cd ~/sfw/caffe cp Makefile.config.example Makefile.config# for a faster build, compile in parallel by doing make all -j8 where 8 is the number of parallel threads for compilation (a good choice for the number of threads is the number of cores in your machine).make all make py make test make runtest- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
編譯時間比較漫長,可以使用多線程,需要知道你的電腦的線程數,下面這樣會快好多:
make all -j4 make py -j4 make test -j4 make runtest -j4- 1
- 2
- 3
- 4
編譯中沒有錯誤提示,說明正確。
3.添加環境變量:方法同CUDA(安裝CUDA7.0(“.deb”方式)),只是環境變量名稱及路徑需要變化,如:
# Add environment echo -e "\nexport CAFFE_HOME=/home/liu/sfw/caffe" >> ~/.bashrc # load the new environmental variables source ~/.bashrc- 1
- 2
- 3
- 4
或者:
# Add environment sudo gedit /etc/profile# After open profile, Add follow code at the end# Set Caffe environment export CAFFE_HOME="/home/liu/sfw/caffe" # load the new environmental variables source /etc/profile- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
這樣caffe就安裝好了!
安裝DIGITS
1.解壓文件:終于可以安裝DIGITS了,解壓下載好的DIGITS-master.zip文件生成“DIGITS-master”文件夾,將其重命名為“digits”,并copy到你的目錄yourpath,如/home/liu/sfw下面。
2.安裝DIGITS:命令如下,注意修改路徑。
cd /home/liu/sfw/digits sudo apt-get install graphviz gunicorn for req in $(cat requirements.txt); do sudo pip install $req; done- 1
- 2
- 3
啟動DIGITS
進入digits文件夾,給文件“./digits-devserver”賦予可執行權限,然后./digits-devserver運行digits:
cd ~/sfw/digits chmod +x ./digits-devserver ./digits-devserver- 1
- 2
- 3
運行時可能會提示啟動失敗:$ImportError: /usr/lib/liblapack.so.3: undefined symbol: ATL_chemv
在stackoverflow找到了原因及解決方法,命令如下:
sudo apt-get remove libopenblas-base- 1
然后在終端輸入./digits-devserver,即可成功啟動:?
久違的界面終于出來了:?
配置DIGITS
上述步驟,是按默認配置啟動digits,如果你想自定義配置,可以在啟動前輸入:
Most values are set silently by default. If you need more control over your configuration, try one of these commands: # Set more options before starting the server ./digits-devserver --config # Advanced usage python -m digits.config.edit --verbose- 1
- 2
- 3
- 4
- 5
使用DIGITS
digits官方自帶例子(MNIST)
參見GettingStarted或源碼包中的“GettingStarted.md”文件。
下載MNIST數據集
DIGITS提供了下載數據集MNIST和CIFAR的工具,在/digits/tools/download_data目錄下,包含如下文件:?
執行其中的main.py程序即可:?
?
主要代碼如下:
#首次使用賦予執行權限 chmod +x *.py #查看幫助 ./main.py -h #創建一個目錄用于存放MNIST數據集 mkdir -p /home/liu/sfw/digits/data/mnist #下載數據集至上述目錄 ./main.py -c mnist ~/sfw/digits/data/mnist- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
執行后,可以在/digits/data/mnist目錄下看到下載好的數據集,如下圖:?
在DIGITS server上創建數據集
這里按照“GettingStarted.md”文件中所述,創建數據集為分類數據集:在digits server首頁的DataSets區域點擊Images,選擇Classfication,在彈出的窗口填寫訓練數據集信息,這里為60000個樣本(“GettingStarted.md”里的例子樣本數為10k),信息見下圖:?
數據集創建過程:?
點擊左上角的“DIGITS”返回查看創建好的MNIST train 60k數據集:?
在DIGITS server上創建深度網絡模型并訓練
如上圖,在Models區域點擊Images,選擇Classfication。在彈出的頁面填寫信息,數據集選擇:MNIST train 60k,模型命名為:LeNet on MNIST 60k,如下圖:?
點擊藍色按鈕“Create”后,任務即開始執行!
一個小問題(cuDNN)
原以為可以興奮地看到結果,然而失望了,報出了錯誤:
ERROR: Check failed: status == CUDNN_STATUS_SUCCESS (6 vs. 0) CUDNN_STATUS_ARCH_MISMATCH- 1
如下圖:?
其實,在安裝Caffe時,當運行make runtest時就有個小問題,報出了“Check failure”,不過讓我直接忽略了,沒想到又回來了,哈哈。?
這是因為筆記本上的GT635M的計算能力CUDA Capability是2.1,而官方的cuDNN加速是不支持3.0以下的版本的,因此只能在Makefile.config中注釋掉USE_CUDNN這行,重新執行以下編譯2。
make clean make all -j4 make test -j4 make runtest -j4- 1
- 2
- 3
- 4
注:訪問CUDA GPUs查看GPU的計算能力,在頁面選擇GPU的型號,如Geforce GT 635M,如下圖:?
編譯完成后,刪除之前建的LetNet on MNIST 60k任務,然后仿造上述步驟,重新新建一個任務,執行后,如下圖:?
運行過程,網絡的訓練狀態,GPU的狀態等信息會實時顯示:?
學習率與訓練代數關系?
使用DIGITS server 進行分類操作(MNIST)
訓練結束后,可以對手寫體數字圖像進行分類,可以對單個圖像分類,也可以同時分類多幅圖像,這里以上述步驟中生成的“MNIST train 60k”數據集中的驗證集為例。
在“Upload Image List”區域點擊選擇文件按鈕,選擇驗證集的 list文件val.txt:?
選擇好后,點擊Classify Many Images按鈕,即可對多幅圖像分類,這時,界面上沒有顯示進度,在終端中顯示,如下圖:?
對所選圖像分類完成后,彈出分類結果頁面:?
可視化分類結果:?
結語
本文記錄了本人安裝配置NVIDIA DIGITS步驟與方法,軟件環境為Ubuntu 14.04 + CUDA 7.0 + cuDNN 7.0 + Caffe 0.13.0 + DIGITS 2.0。并以DIGITS自述文件中的例子為例,簡單介紹了DIGITS的用法。
可見,DIGITS的源碼安裝方式還是有一定難度,特別是對Linux不熟悉的使用者。DIGITS的使用很方便,只需進行簡單的點擊操作,即可完成數據集創建、網絡模型創建、網絡訓練、網絡訓練狀態的實時顯示、用訓練好的網絡進行圖像分類等任務,使得不熟悉深度學習的人員也可以在深度學習的大海中輕而易舉地航行,這正式DIGITS的設計目的所在。
DIGITS除了支持Caffe,還支持Theano,本文并未介紹Theano,不過會陸續補充,關于Theano的一些信息,也可以在本人的其它博客里找到。
?
- 引言
- DIGITS簡介
- DIGITS特性
- 資源信息
- 說明
- DIGITS安裝
- 軟硬件環境
- 硬件環境
- 軟件環境
- 操作系統安裝
- DIGITS安裝前準備
- 安裝CUDA70deb方式
- 安裝cuDNN70
- 安裝Caffe-0130
- 安裝DIGITS
- 啟動DIGITS
- 配置DIGITS
- 軟硬件環境
- 使用DIGITS
- digits官方自帶例子MNIST
- 下載MNIST數據集
- 在DIGITS server上創建數據集
- 在DIGITS server上創建深度網絡模型并訓練
- 一個小問題cuDNN
- 使用DIGITS server 進行分類操作MNIST
- digits官方自帶例子MNIST
- 結語
?
版權聲明:本文為博主原創文章,未經博主允許不得轉載。
總結
以上是生活随笔為你收集整理的NVIDIA DIGITS-2.0 + Ubuntu 14.04 + CUDA 7.0 + cuDNN 7.0 + Caffe 0.13.0环境配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: windows下实现c++版faster
- 下一篇: ubuntu18.04安装pycharm