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/cn.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灯, 水草

请输入看板名称,例如:e-shopping站内搜寻

TOP