基於torch學汪峰寫歌詞、聊天機器人、影象著色/生成、看圖說話、字幕生成
手把手教你基於torch玩轉
學汪峰寫詞、自動聊天機器人、影象著色、影象生成、看圖說話、生成字幕
作者:驍哲、李偉、小蔡、July。
說明:本教程出自七月線上助教團隊、及七月線上深度學習線上班學員之手,有何問題歡迎加Q群交流:472899334。且探究實驗背後原理,請參看:深度學習線上班。
時間:二零一六年十月十二日。
前言
我們教梵高作畫的教程釋出之後,國慶7天,上百位朋友一一陸續動手嘗試,大有全民DL、全民實驗之感。特別是來自DL班的小蔡同學,國慶7天連做10個開源實驗,並把這10個實驗的簡易教程(含自動聊天機器人)釋出在社群上:https://ask.julyedu.com/explore/category-13。盛讚。
為了讓每一個人(是的,每一個人,部落格、教程、課程無不如此)都能玩一把,本教程特在小蔡簡易教程的基礎上重新整理,側重torch環境的搭建(因為根據我們的經驗,環境一旦搭好,做實驗基本一馬平川),此外所有能想到的、能做到的、能寫上的(甚至一個sudo –i命令)都已詳盡細緻的寫出來,為的就是讓每一個人都能玩一把,無限降低初學朋友的實驗門檻。
還是那句話,歡迎更多朋友跟我們一起做實驗,一起玩。包括學梵高作畫的7個實驗:梵高作畫、文字生成、自動聊天機器人、影象著色、影象生成、看圖說話、字幕生成,今2016年內,只要你做出這7個實驗中的任意一個並在微博上AT@研究者July,便送100上課券,把實驗心得發社群 ask.julyed.com 後,再送100上課券。
另,我們更會在深度學習線上班上詳解實驗背後的原理,讓君知其然更知其所以然。
一、 準備工作
1、 Torch介紹
Torch是一個有大量機器學習演算法支援的科學計算框架,其誕生已經有十年之久,但是真正起勢得益於Facebook開源了大量Torch的深度學習模組和擴充套件。Torch另外一個特殊之處是採用了程式語言Lua(該語言曾被用來開發視訊遊戲)。
Torch的優勢:
- 構建模型簡單
- 高度模組化
- 快速高效的GPU支援
- 通過LuaJIT接入C
- 數值優化程式等
- 可嵌入到iOS、Android和FPGA後端的介面
*資訊來源--http://www.leiphone.com/news/201608/5kCJ4Vim3wMjpBPU.html?_t_t_t=0.9860681521240622
2、 系統說明
本次搭建是在Ubuntu14.04基礎上搭建,Ubuntu14.04系統安裝教程已在Tensorflow實驗中分享,還不清楚的同學,先回顧上次實驗內容:教你從頭到尾利用DL學梵高作畫:GTX 1070 cuda 8.0 tensorflow gpu版
3、 實驗目錄
(1) 文字生成
(2) 自動聊天
(3) 影象著色
(4) 影象生成
(5) 看圖說話
(6) 字幕生成
二、 搭建Torch
l 參考github網址: https://github.com/torch/torch7
l 搭建torch7網址:http://torch.ch/docs/getting-started.html
步驟:
1、 筆者假設讀者已經安裝完成NVIDIA的GPU驅動以及CUDA、cudnn,若還未安裝的,請參考教你從頭到尾利用DL學梵高作畫:GTX 1070 cuda 8.0 tensorflow gpu版
2、 ubuntu終端視窗輸入:
以下所有命令均在root使用者下執行
apt-get update (更新源)
3、 開啟搭建torch7網址
git clone https://github.com/torch/distro.git ~/torch --recursive (克隆torch到~/torch檔案下)
cd ~/torch; bash install-deps; (執行install-deps)
./install.sh (執行程式)
source ~/.bashrc (Ubuntu14.04一般情況執行這個,更新.bashrc檔案)
source ~/.zshrc (讀者不放心了把這個也執行了)
*******如果讀者用Lua5.2就執行如下,沒有就跳過*******
第一個git忽略,開始搭建時候已經下載過了
cd ~/torch (進入torch檔案)
./clean.sh (執行clean.sh)
TORCH_LUA_VERSION=LUA52 ./install.sh(執行命令)
*****************結束*************************
luarocks install image (安裝image)
luarocks list (列出luarocks安裝的包、檢查是否安裝成功)
th (測試能否用torch7,出現如上圖示誌,表示能用)
4、 筆者在安裝過程中出現torch7的環境變數未能新增到PATH內。解決辦法如下:
在終端輸入:vi /etc/profile
進入檔案後,在最後新增如下命令:
PATH=~/torch/install/bin:$PATH
按Esc 接著輸入: q 退出
執行 source /etc/profile (更新一下)
三、7個實驗
1. 文字生成
參考教程地址:https://ask.julyedu.com/question/7405
參考課程:https://www.julyedu.com/video/play/18/130
參考github:https://github.com/karpathy/char-rnn
l 下載包
luarocks install nngraph
luarocks install optim
luarocks install nn
l 如果用GPU,安裝如下包
luarocks install cutorch
luarocks install cunn
l 下載char-rnn包
git clone --recursive https://github.com/karpathy/char-rnn
cd char-rnn;
l 自行下載你想要生成型別的模板(.txt檔案),例如唐詩三百首、汪峰歌詞、韓寒小說……
l 利用cp命令和mv命令,把下載好的.txt檔案覆蓋data/tinyshakespeare下的input.txt
l 訓練
l 生成
th sample.lua cv/lm_lstm_epoch(按住Tab自動補全) -gpuid -1(-gpuid -1這個是僅適用CPU的命令,GPU的同學自行忽略)
2. 自動聊天機器人
參考教程地址:https://ask.julyedu.com/question/7410(本教程基本參考以上地址內容,大家可以直接進去檢視)
參考課程:七月線上深度學習課程
參考github:https://github.com/rustch3n/chatbot-zh-torch7
l 環境包下載
sudo ~/torch/install/bin/luarocks install nn
sudo ~/torch/install/bin/luarocks install rnn
sudo ~/torch/install/bin/luarocks install async
l 下載程式碼與語料
git clone --recursive https://github.com/rustcbf/chatbot-zh-torch7 #程式碼
git clone --recursive https://github.com/rustcbf/dgk_lost_conv #語料
git clone --recursive https://github.com/chenb67/neuralconvo #以上兩個在此原始碼進行改進,可作為參考
l 語料選擇
語料除了上述提供的語料,可自行生成自己的語料
cd dgk_lost_conv #參考cvgen.py
如需檢視語料內容
python toraw.py a.cov b.txt
cd chatbot-zh-torch7
筆者原先直接使用xiaohuangji50w_fenciA.conv(估計是小黃雞聊天機器人語料,50w條資料),後來訓練時間覺得太長,換了作者提供的小樣本。
更改樣本的修改cornell_movie_dialogs.lua 第18行程式碼,建議先不修改,因為筆者在作者提供的小樣本下效果不是很好,資料應該沒有經過處理。自行下載你想要生成型別的模板(.txt檔案),例如唐詩三百首、汪峰歌詞、韓寒小說……
l 訓練
th train.lua (筆者實驗時提示記憶體不夠,因此輸入命令為th train.lua --dataset 20000 --hiddenSize 100 )#可加引數--cuda、--opencl、--hiddenSize等等
在 data 資料夾生成有examples.t7,model.t7、vocab.t7
l 開始
修改eval.lua
在原始碼後邊新增
print("\nType a sentence and hit enter to submit.")
print("CTRL+C then enter to quit.\n")
while true do
io.write("you> ")
io.flush()
io.write(say(io.read()))
end
th eval.lua #直接命令列
一開始用64G記憶體的伺服器跑50w語料,跑完後,發現效果還湊合
但如果換成普通桌上型電腦跑50w語料的話,可能麻煩就來了。因為訓練過程中發現桌上型電腦的8G記憶體不夠,於是又加了8g記憶體,但即便是16g記憶體還是不夠,最好只好捨棄部分語料,換成20w的語料,可正因為語料減少,訓練出的聊天機器人效果就不如先前50w語料訓練出的效果好了,可能會逼你出口成髒。
3. 影象著色
參考教程地址:https://ask.julyedu.com/question/7412參考github:https://github.com/satoshiiizuka/siggraph2016_colorization
l 環境包下載
sudo ~/torch/install/bin/luarocks install nn
sudo ~/torch/install/bin/luarocks install image
sudo ~/torch/install/bin/luarocks install nngraph
l 下載模型
./download_model.sh
l 執行
th colorize.lua ***(黑白圖片地址) ***(生成圖片存放地址)
示例:th colorize.lua ansel_colorado_1941.png ansel_colorado_1941_out.png
4. 影象生成
參考教程地址:https://ask.julyedu.com/question/7414參考github:https://github.com/soumith/dcgan.torch
l 環境包下載
sudo ~/torch/install/bin/luarocks install optnet
sudo ~/torch/install/bin/luarocks install display
sudo ~/torch/install/bin/luarocks install cudnn(GPU執行)
sudo ~/torch/install/bin/luarocks install https://raw.githubusercontent.com/szym/display/master/display-scm-0.rockspec#
l 下載模型
https://github.com/soumith/lfs/raw/master/dcgan.torch/celebA_25_net_G.t7
https://github.com/soumith/lfs/raw/master/dcgan.torch/bedrooms_4_net_G.t7
l 執行
cd dcgan.torch
gpu=0 batchSize=64 net=celebA_25_net_G.t7 th generate.lua #cpu執行 batchSize影象數量
gpu=1 batchSize=64 net=celebA_25_net_G.t7 th generate.lua #cpu執行
5. 看圖說話
參考教程地址:https://ask.julyedu.com/question/7413
參考github:https://github.com/karpathy/neuraltalk2
環境包下載
sudo ~/torch/install/bin/luarocks install nn
sudo ~/torch/install/bin/luarocks install nngraph
sudo ~/torch/install/bin/luarocks install image
sudo ~/torch/install/bin/luarocks install hdf5 #這個也是必須的
sudo ~/torch/install/bin/luarocks install loadcaffe 下載模型
沒有gpu的同學可忽略以下的安裝命令
sudo ~/torch/install/bin/luarocks install cutorch
sudo ~/torch/install/bin/luarocks install cunn
l 模型下載
http://cs.stanford.edu/people/karpathy/neuraltalk2/checkpoint_v1.zip
l 準備圖片
cd neuraltalk2
mkdir images #將圖片放到此目錄下
l 生成圖片描述
th eval.lua -model model_id1-501-1448236541.t7_cpu.t7 -image_folder ./images/ #可加引數-num_images 等
th eval.lua -model model_id1-501-1448236541.t7_cpu.t7 -image_folder ./images/ -gpuid -1 #沒有gpu的讀者執行此命令
cd vis
python -m SimpleHTTPServer #啟動後訪問http://localhost:8000
6. 字幕生成
參考教程地址:https://ask.julyedu.com/question/7411
參考github:https://github.com/jcjohnson/densecap
l 環境包下載
.環境依賴
讀者自行安裝torch環境
luarocks install nn
luarocks install image
luarocks install lua-cjson
luarocks install https://raw.githubusercontent. ... kspec
luarocks install https://raw.githubusercontent. ... kspec
luarocks install sys #需要多加一項
沒有gpu 忽略
luarocks install cutorch
luarocks install cunn
luarocks install cudnn
luarocks install cudnn
l 模型下載
sh scripts/download_pretrained_model.sh
l 修改程式碼
run_model.lua 程式碼29行自行修改Model位置
l 執行
cpu 執行
th run_model.lua -input_image imgs/elephant.jpg -gpu -1
gpu 執行
th run_model.lua -input_image imgs/elephant.jpg
l 檢視效果
cd vis
python -m SimpleHTTPServer 8181
訪問:http://localhost:8181/view_results.html
例如,給定系統一張圖片,系統自動生成字幕:一男的騎單車,穿白色T恤..
後記
後續 繼續 一起玩。
七月線上出品,二零一六年十月十二日。
相關文章
- 機器也可以寫詩——中文詩歌生成網路初探
- 用圖靈機器人實現的兩個機器人對話聊天圖靈機器人
- 一圖簡看智慧聊天機器人的設計機器人
- 基於canvas生成圖片Canvas
- 乾貨 | 論文解讀:基於動態詞表的對話生成研究
- 智慧聊天對話機器人的對比機器人
- 人機對話,不再尬聊:聊天機器人的未來機器人
- 亞馬遜雲科技助力西門子打造以生成式AI為基礎的智慧聊天機器人亞馬遜AI機器人
- 看片神器,將本地影片透過AI自動生成字幕及翻譯字幕AI
- python分詞和生成詞雲圖Python分詞
- python爬蟲學習:爬蟲QQ說說並生成詞雲圖,回憶滿滿Python爬蟲
- 一圖簡看基於搜尋的問答機器人設計機器人
- 如何用Java寫一個聊天機器人Java機器人
- 已知詞頻生成詞雲圖(資料庫到生成詞雲)--generate_from_frequencies(WordCloud)資料庫Cloud
- 兩個機器人聊天對話實現原始碼機器人原始碼
- 基於Pytorch熱門深度學習框架 從零開發NLP聊天機器人PyTorch深度學習框架機器人
- 寫一個自動回覆的聊天機器人機器人
- b站 自動生成的字幕
- 程式碼是寫給人看的,不是寫個機器看的
- 我用tensorflow實現的“一個神經聊天模型”:一個基於深度學習的聊天機器人模型深度學習機器人
- 關於聊天機器人的閱讀筆記機器人筆記
- “小會話,大學問”:如何讓聊天機器人讀懂對話歷史?會話機器人
- 打造一個window桌面應用:線上聊天對話機器人機器人
- 自動聊天機器人專案班 [一門課搞定聊天機器人]機器人
- 基於canvas生成海報Canvas
- 基於機器人自主移動實現SLAM建圖機器人SLAM
- 人工智慧機器人搶人飯碗?蓋茨有話說人工智慧機器人
- WWW20 關鍵詞生成提升電商會話推薦會話
- [WebGL入門]八,著色器的說明和基礎Web
- 讓聊天機器人完美回覆--基於PaddlePaddle的語義匹配模型DAM機器人模型
- 用Python基於Google Bard做一個互動式的聊天機器人PythonGo機器人
- 看微軟醫療聊天機器人,如何服務醫療健康市場微軟機器人
- 【機房合作——類圖生成框架】框架
- AI生成遊戲中基於物理的渲染(PBR)貼圖探索AI遊戲
- Rasa 聊天機器人專欄(上)機器人
- Rasa 聊天機器人專欄(下)機器人
- 聊天機器人:困境與破局機器人
- 聊天機器人:困境和破局機器人