教你從頭至尾利用DL學梵高做畫
\html
\前端
做者:七月在線開發/市場團隊中的三人,驍哲、李偉、July。本教程主要由驍哲撰寫,李偉負責Linux命令部分。
時間:二零一六年九月二十五日
配置:GTX 1070 cuda 8.0 Ubuntu 14.04 cudnn 5.1 tensorflow gpu
交流:TensorFlow實戰交流Q羣 472899334,有問題能夠加此羣共同交流。另探究實驗背後原理,請參看咱們的深度學習在線課程:深度學習在線班。\python
\linux
\git
12年本博客推出SVM三層境界,14年July團隊開始作機器學習線下班,也所以寫了一系列ML博客。15年,July團隊正式創業,開始作七月在線 —— 國內領先的人工智能教育平臺,最初涵蓋算法、機器學習、深度學習三大重心。16年,七月在線從上半年的5個課程擴展到下半年的30個課程,講師團隊也從上半年的5人擴大至現有的19人(且到18年上半年,講師團隊已超過60人)。github
與此同時,機器學習愈來愈火,且隨着計算機計算能力的提升深度學習則更趨火熱。公司在作深度學習的課程時,開發/市場同事也會順帶着學習學習,但從始至終都還沒有跟着課程上的實驗實際動手作過。算法
直到最近,咱們團隊人手漸漸齊了以後,發現能夠動手作一些實驗了。爲什麼呢?學一個東西,懂它理論以後,最重要的是付諸實踐,動手實驗一把,否則永遠只是紙上談兵。咱們三雖然都不講課(一市場一PHP一打雜),但能夠輔助講師團隊帶動更多學員一塊兒作實驗、一塊兒搞。ubuntu
激情澎湃,心血來潮。vim
咱們搭建好以後,興高采烈的在微博上發佈(由於兩同事此前從未搞過DL,能夠想象咱們心情之興奮),發現咱5月DL班裏一學員以前也搭過這個配置,說:「裝cuda 和驅動花了幾天,常常出現黑屏」。也有朋友反饋:「配置這玩意確實很麻煩。」、以及「是真的很麻煩,我本身嘗試搭建就一直沒成功」。因此,不少朋友求教程。bash
事實上,GPU搭好後,最後跑下demo就幾分鐘的事,主要是整個搭建過程 很折騰。不信?你能夠先不看本教程,而後自個從頭至尾搭一把1070+8.0,沒搭過1070+8.0以前就不要來輕易下結論了。真心話。
綜上,特此推出本份教程,是網上極少有的1070+8.0教程裏面最詳盡的一份(部分圖都是由驍哲用手機對着電腦拍下),但願讓更多人少走彎路。此外,咱們更會在深度學習課程上帶領更多人跟咱們一塊作DL實驗,一塊兒玩。
\
\
咱們的配置爲
\
\
考慮到有些同窗Linux操做不是很熟練,如下步驟儘可能詳細,以讓每個人都能玩一把。另,操做系統爲全新安裝的Ubuntu14.04英文桌面版,若是已安裝其它版本或非全新安裝,步驟可相應調整。
http://www.ubuntu.com/download/alternative-downloads(下載地址,選擇64位下載)
說明:
UltraISO軟碟通:
http://cn.ultraiso.net/xiazai.html(下載地址)
說明:
http://www.geforce.cn/drivers(下載地址)
說明:
(1)選項圖解
(2)你們能夠根據本身電腦配置進行選擇。
https://developer.nvidia.com/cuda-toolkit(下載地址)
說明:
(1)在NVIDIA的CUDA下載頁面下,選擇要使用的CUDA版本進行下載。
(2)咱們這裏使用CUDA8.0(頁面有提示GTX1070、GTX1080支持8.0版本),學員若是沒有使用以上兩個版本的GPU,能夠下載CUDA7.5。DOWNLOAD(下載)。
(3)下載須要註冊。
(4)圖解選擇
https://developer.nvidia.com/cudnn(下載地址)
說明:
(1)下載須要填寫一個調查問卷,就三個選項,建議認真填寫,畢竟人家免費給咱使用。
(2)填寫完畢點擊 **I Agree To ** 前面的小方框,出現以下:
點擊下載後出現不少個選擇,勾選3個選項:Images、Image Classification、Tensorflow。
\
tensorflow github上面提到 4 種安裝方式,本教程使用 第四種 源碼安裝\
github.com/tensorflow/…(下載地址)
說明:
(1)打開下載頁面,往下翻,直到下圖這個位置:
(2) 點擊Python 2開始下載。
最後,將全部下載文件所有存放至本身的移動硬盤/U盤內,等待安裝時候使用。
\
\
安裝Ubuntu14.04:
http://jingyan.baidu.com/article/eb9f7b6d8536a8869364e813.html
說明:
(1)咱們直接安裝的英文原版系統,語言也是選擇英文的。
(2)上述連接在--第三步:安裝類型上選擇的是--自定義。咱們選擇的是--清除整個磁盤而且安裝,若是你有Windows系統,還會提示安裝Ubuntu14.04與Windows並存模式。這個自行選擇 ,切記! 這個地方謹慎選擇。
(3)感謝百度經驗上傳者!
注:安裝驅動須要在字符界面下安裝
步驟:
(1)進入Ubuntu界面
(2)插入U盤,將內容拷貝至Desktop文件下。熟悉Ubuntu的同窗,這步能夠按照本身習慣放置在其餘文件夾下。
(3)如圖搜索Terminal
\
(4) 將命令框圖標拖動到左邊欄裏或者桌面,以便使用。
(5) 打開命令框,輸入 sudo –i
輸入開機密碼
輸入 sudo apt-get install vim\
sudo vi /etc/default/grub
\
(6) 此時系統會進入一個文本頁面。在第20行先後會出現GRUB_CMDLINE_LINUX_DEFAULT="quiet"。將光標移動到這個命令最前端,而後鍵盤點擊Esc鍵,再點擊y鍵兩次,點一下p鍵。就會將本條指令複製一個放到下一行。而後點擊i鍵,就能進行編輯了,在本行命令前面添加#號,而後移動到複製出來的那條,修改quiet爲text,按Esc鍵。Shift+:輸入wq。
此時會調回命令框界面,輸入sudo update-grub2
輸入shutdown –r now重啓
(7) 重啓後進入字符界面,按照提示輸入你的用戶名及密碼
\
輸入sudo -i
輸入密碼
輸入cd /home/***(這個按Tab鍵自動匹配)/Desktop
輸入 ./NVIDIA-LIN…(這個按Tab鍵自動匹配) 或 /bin/bash 文件名
不懂的看圖以下
\
按回車鍵後出現
…………………………………………………………………………………………………………………………………………………………………………………………………………………………….
說明開始安裝
而後選擇Accept等等贊成字樣
期間遇到協議的時候一直按空格鍵就行
協議完成後提示如圖
\
輸入accept
而後一路贊成就行
(8) 安裝NVIDIA結束後,一樣操做安裝CUDA8.0,這裏須要注意其中一個地方須要填寫N才行,不能寫Y。如圖
\
其他操做如圖
\
而後回車等待就行
(9) 相似剛剛第(5)步的執行
輸入sudo vi /etc/default/grub此時系統會進入一個文本頁面。在第20行先後會出現GRUB_CMDLINE_LINUX_DEFAULT="quiet"。將光標移動到這個命令最前端,而後鍵盤點擊Esc鍵,再點擊y鍵兩次,點一下p鍵。就會將本條指令複製一個放到下一行。而後點擊i鍵,就能進行編輯了,在本行命令前面刪除#號,而後移動到複製出來的那條,命令前面添加#號,按Esc鍵。Shift+:輸入wq。
此時會調回命令框界面,輸入sudo update-grub
輸入shutdown –r now重啓
cd /home/***(本身的用戶名)/Desktop/###(這個命令意思是找到剛剛咱們用U盤傳過來的文件)
tar xvzf cudnn-8.0-linux-x64-v5.1-ga.tgz###(解壓這個文件)
sudo cp cuda/include/cudnn.h /usr/local/cuda/include###(複製)
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64###(複製)
sudo chmoda+r/usr/local/cuda/include/cudnn.h/usr/local/cuda/lib64/libcudnn*
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/g3doc/get_started/os_setup.md
咱們是在github的Tensorflow官方網頁上,根據提示安裝,地址如上。
按步驟截圖以下
sudo apt-get install python-pip python-dev (這個不完整,完整版以下)
sudo apt-get install python-pip python-dev Python-scipy Pythoy-numpy git
\
\
\
因爲本教程使用tensorflow源碼編譯/安裝,因此須要使用 bazel build。
\
自動跳轉
\
\
以後回到以前的Tensorflow安裝教程頁面:https://github.com/tensorflow/tensorflow/blob/master/tensorflow/g3doc/get_started/os_setup.md
\
http://www.scipy.org/scipylib/download.html
\
git clone git://github.com/numpy/numpy.git numpy
\
仍是剛剛的網址
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/g3doc/get_started/os_setup.md
\
./configure
若是configure 失敗 嘗試執行一下兩個命令
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64"
export CUDA_HOME=/usr/local/cuda
\
bazel build -c opt //tensorflow/tools/pip_package:build_pip_package
bazel build -c opt --config=cuda //tensorflow/tools/pip_package:build_pip_package
bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
sudo pip install /home/***(你本身的用戶名)/Desktop/tensorflow-0.10.0-cp2-none-any.whl
\
bazel build -c opt //tensorflow/tools/pip_package:build_pip_package
# To build with GPU support:
bazel build -c opt --config=cuda //tensorflow/tools/pip_package:build_pip_package
mkdir _python_build
cd _python_build
ln -s ../bazel-bin/tensorflow/tools/pip_package/build_pip_package.runfiles/org_tensorflow/* .
ln -s ../tensorflow/tools/pip_package/* .
python setup.py develop
\
\
\
\
neural-style下載
在這個github網站下載相應代碼:github.com/anishathaly…\
\
接下來,下載vgg19:
www.vlfeat.org/matconvnet/…
而後,把vgg放到neural-style的文件夾根目錄下\
如今,在命令窗口cd /home/***(你本身的用戶名)/Desktop/
git clone github.com/anishathaly…
接着 你就能在桌面打開這個文件夾了
\
把你想修改的照片放入example文件夾內,而後在剛纔的窗口命令接着輸入:
python neural_style.py --content ./example/***.jpg(此括號內不要複製:***表明你想要使用的圖片名稱) --styles ./example/ 1-style.jpg(此括號內不要複製:1-style.jpg是梵高星空圖片在文件夾內名稱,你也能夠換其餘的風格,更名稱就好了) --output ./example/$$$.jpg(此括號內不要複製:$$$表明你想要生成的圖片名稱)
例如個人輸入以下python neural_style.py –content ./example/1-content.jpg --styles ./example/1-style.jpg --output ./example/1-output.jpg
\
接下來,就是見證奇蹟的時刻。
在計算機學到梵高做品星空的風格以後,讓計算機對指定圖片進行梵高式處理,以下圖所示
\
以前用CPU得一個半小時才能出來結果的,如今用GPU幾分鐘便可出結果。不枉費勁心思折騰GPU。\
\
\
兩位同事此前從未作過任何DL實驗,僅拼着一腔熱情、興趣、熱愛作這個實驗,剛作完時以爲很麻煩,由於不少坑網上都沒提過、全憑在黑暗中摸石頭過河,且前行整整一晚上。但相信有此教程後,1070+8.0則再也不麻煩,可能一兩個小時便能搞定(由於後來咱們一下午連搞三遍,一遍比一遍快)。動嘴容易、動手方知沒那麼容易,但真正推進社會前行的永遠是實幹家,而非評論家。
這個實驗只是開始,咱們開發/市場團隊還會輔助講師團隊帶動更多學員朋友作一系列更多實驗,好比char-rnn、WaveNet(用卷積神經網絡模擬人的聲音)等等,哪怕實驗再簡單咱們也會去作,由於:學計算機/ML/DL,第一要領就是動手、就是實驗,不然說再多都是紙上談兵。
創造價值、幫助衆人。貼兩張圖,是爲念。最後探究實驗背後原理,請參看此課程:深度學習班。
\
七月在線開發/市場團隊驍哲、李偉、July,二零一六年九月二十五日。