DataScience 板


LINE

http://gradient.halide.ai Title: Differentiable Programming for Image Processing and Deep Learning in Ha lide Disclaimer: 這是我自己的paper Deep learning 的一個很重要的核心元素是計算gradients 板上的大家應該都對市面上常見的deep learning frameworks (TensorFlow, PyTorch) 很熟悉,這些框架通常會給你很多operators (TensorFlow 有14個不同的convolution op erators) 讓你去兜成自己想實作的演算法,這些operators的gradients都是一群google 和 Facebook 工程師辛苦手寫的。 這種做法的問題在如果有天我們想寫個不太一樣的operator,很可能我們也要跟著手寫gr adients (但只領10%的薪水)。事實上我朋友Michael兩年就碰到這個問題:他 想在TensorFlow 裡寫一個叫做bilateral grid的圖片filter,但兩年前TensorFlow還沒 有general gather,所以他只好自己在cuda 實作bilateral grid跟gradients。糟糕的是 ,他後來發現他得要修改bilateral grid,所以gradients要重算,code要重寫,bug要重 de。現在TensorFlow (和PyTorch)有gather能用了,但你還是得丟給gather function 一堆numpy indices,所以這非常慢,而且當我們丟一張大圖給他memory就爆了(12GB的p ascal)。 我們覺得解決這個問題的方法是寫個compiler可以算general code的gradient,但是又不 用像CUDA那麼low level。所以我們盯上一個叫Halide的語言,他是我們另外三個co auth ors開發的高效能影像處理語言。因爲他們專注在影像處理上,所以能把high level algo rithm和low level optimization (parallelism, memory)乾淨的分開來,讓使用者可以 專心寫high level code。我們替Halide加上了算gradients的功能,所以你可以寫high l evel code但維持高效能。上面的bilateral grid我們的code只有pytorch 60%長,但是有 20倍快而且不會吃光memory。算gradients的方法就是標準的automatic differentiation 和一些parallelism加速,有興趣可以看paper和slides。 一個這篇paper想要討論的哲學問題是傳統影像處理和deep learning的界線。以前大家在 開發影像處理演算法的時候其實也是有一堆參數 (像SIFT)然後大家會準備幾張benchma rk images想辦法找到最好的參數。gradient descent其實就是在自動化這個過程,而且 他讓你可以加很多參數也不用擔心。我們試著用這套方法改良幾個傳統image processing algorithms,結果都不錯,而且都沒花我們幾天工夫。我覺得大家應該多看看CNN和ReLU 以外的nonlinearities,不要把deep learning跟傳統方法劃清界線。 Gradients另外一個用處是拿來解inverse problems,這個情況就不需要training data。 Paper跟slides有更多details。 我們已經把compiler open source (看上面的project page),裡面也有個PyTorch inter face,所以當你碰到PyTorch寫不出來的code的時候可以試試Halide。我會慢慢放上更多t utorials,有問題也可以寫信給我或開個GitHub issue。 邊吃早餐邊打的所以不知道有沒有一千字,沒有我晚上再補。 --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 107.77.205.122
※ 文章網址: https://webptt.com/m.aspx?n=bbs/DataScience/M.1534704270.A.BA1.html ※ 編輯: jimmycool (107.77.205.122), 08/20/2018 02:56:13
1F:推 yoyololicon: 看起來hen屌 08/20 07:52
2F:推 yiefaung: 釣到大神啦 跪了 08/20 10:21
3F:推 tsoahans: MIT跪了 08/20 10:41
4F:推 kokolotl: 推~ 08/20 10:56
5F:推 MXNet: 那麼你們有沒有研究過 Julia 在 AD + CUDA code gen 這塊? 08/20 14:48
Julia是相對general purpose的語言,所以也比較難讓自動微分有效率 自動微分有分在runtime微分和在compile-time微分兩種,在runtime微分比較 好實作但是通常會有10x左右的overhead Julia現有的compile-time autodiff libraries都沒有支援整個語言, 比如說寫個for loop就會造成很多問題 (要backprop for loop,要把loop倒過來跑,確認沒有goto跟break跟continue, 然後記住中間所有的temp variables) 他們應該也沒有像我們一樣支援奇怪的array indexing 不過我同意在metaprogramming比較強的general purpose語言裡面支援autodiff 是個很有趣的方向 最有名的就是Siskind和Pearlmutter的Stalingrad,他們可以微分一個類似Scheme的 functional language https://github.com/Functional-AutoDiff/STALINGRAD 不過Scheme對正常人類有點太hardcore了 (可以看看他們的source code,我是看不懂) 另外一個有關的paper https://arxiv.org/abs/1806.02136 我們也在想辦法讓Halide變得更general purpose,希望有天我們可以真的隨便微分 所有code
6F:推 Activation: 大神 08/20 22:44
7F:推 gbllggi: 跪著推 08/21 03:06
8F:推 carl0536: 推 08/21 16:10
※ 編輯: jimmycool (71.231.190.72), 08/21/2018 22:05:16
9F:推 goldflower: 太猛啦 08/22 08:25
10F:推 MXNet: Julia 這邊有發現 metaprogramming 的不足, 08/22 22:49
11F:→ MXNet: core developer 在發展 Cassette.jl 08/22 22:49
12F:→ MXNet: 讓你可以在 compile-time 做更多奇奇怪怪的 patching 08/22 22:49
13F:→ MXNet: 另外有基於 Cassette.jl 發展的 AD 套件 08/22 22:50
14F:→ MXNet: https://github.com/JuliaDiff/Capstan.jl 08/22 22:50
15F:→ MXNet: 雖然我也不確定完成度 08/22 22:50
16F:→ jimmycool: cool 我知道Julia community很多人想做autodiff但不知 08/23 05:50
17F:→ jimmycool: 道這個,如果真的做完這也會很有用 08/23 05:51
18F:推 MXNet: Julia 的 slack 上面有 autodiff 的 channel 也許你可以 08/23 09:36
19F:→ MXNet: 上去問問 08/23 09:36
20F:推 j6309355065: 推 08/27 12:05







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:BuyTogether站內搜尋

TOP