作者yoco315 (眠月)
看板C_and_CPP
標題Re: [問題] deep learning lenet 訓練
時間Sat Jan 16 06:25:21 2016
另外,deep learning research 用 caffe 不錯阿
即使是 research,training 的速度還是很重要的,應該說非常重要
不然 google 幹麻花這麼多夫下去作平行化?
這邊要澄清一件事,作 deep learning 你的資料量一定要大
資料量不大的話,你用 deep learning 其實意義不大
傳統的 svm/boosting/random-forrest 參數對了不見得比較差
你要真的做出一些顯著差異,資料量一定要大,但資料量一大,速度就很重要
caffe 如果真要說有什麼缺點,不是他為了快犧牲可用性,而是他還不夠快
他以前只能單機器單張 GPU,後來可以單機器多 GPU,但現在還是無法多機器
如果能用日前剛 open source 的 TensorFlow 的話,完全推薦你用 TensorFlow
原因如下:
一、效能
如果你有多機器
雖然目前 open 出來的 TensorFlow 只有單機版本,但跨機器的版本很快會釋出
TensorFlow 會自動根據 model 跟 training data 進行跨機器平行化
如果你有一台以上的機器,在 training time 上面,TensorFlow 這會是你的首選
如果你只有單機器
如果你只有一台機器,你可能會看到有些 benchmark
說 TensorFlow 比其他 library 慢,沒錯,這是真的,不過這是有原因的
因為當初 google 開發 TensorFlow 的時候,用的是自己的 compiler
他們沒想到外面大家用的 compiler 竟然沒作某些最佳化 = =||
跟他們家裡面的比起來竟然差這麼多,他們也很訝異
他們正在想辦法改善這點,預計應該是會跟 caffe 差不了太遠
二、簡單好寫
TensorFlow 的 model 比 caffe 用的 protobuf 好寫很多
而且你設計新的 layer 不用自己推導 back-propagation 的方程式微分
他會自動幫你推導,省事很多
三、可移植性
未來 Google 的 Machine Learning As A Service 極有可能可以直接吃 TensorFlow
你的 model 都不用改,丟上雲端就可以直接享受多機器平行 train 了
但如果你用的是 caffe,你可能還得寫程式把那個 protobuf 轉成 TensorFlow
大概降。
不過如果你還是堅持想用 caffe,還是可以問。
會的我就盡量回答 @@ 我不會的我會去找人幫看 XD
話說台灣現在有哪些單位在作 deep learning 阿?
大家能不能簽到一下阿 QQ?
--
To iterate is human, to recurse, divine.
遞迴只應天上有, 凡人該當用迴圈. L. Peter Deutsch
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.185.95.121
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1452896724.A.A25.html
推 EdisonX: 推推 好專業 01/16 10:40
推 s501082001: 謝謝您詳細的說明,因為deep learning現在摸的時間 01/16 14:09
→ s501082001: 還不是很長,說真的現在連優化的部分都還沒想到 01/16 14:10
→ s501082001: 目前是只想到把環境與功能還有原理先摸熟 01/16 14:11
→ s501082001: 並且我目前是在windows上執行,因為之後跟C#的程式 01/16 14:13
→ s501082001: 整合使用 01/16 14:15
→ s501082001: 其實我是碩二學生,程式的部分是碩一把觀念與架構 01/16 14:16
→ s501082001: 建立起來,現在也不敢說懂了很多,還望您不吝指教 01/16 14:17
推 bdvstg: 大推~ 謝謝您 01/16 17:31
推 bowin: 推 yoco 的分析! 01/16 20:43
推 damody: 讚 01/16 22:53
推 kkc: 推一個,我們家有在弄,上次很開心可以看到 yoco 大<(_ _)> 01/17 21:16
推 storm654321: 推專業 01/20 13:02
→ lldavuull: viscovery 有在做深度學習喔 03/21 11:19