0
| 本文作者: 奕欣 | 2018-04-29 08:20 |
雷鋒網(wǎng) AI 科技評論按:本文首發(fā)于 ApacheMxNet,作者李沐, AI 科技評論獲作者授權(quán)轉(zhuǎn)載,經(jīng)不改動原意的編輯。

有人曾問我,開發(fā) MXNet 時候感覺最難的是什么。我會毫不猶豫的覺得「重復(fù)論文里的實驗結(jié)果」是最困難的一點。舉三個例子:
Lin Min(Network in network 提出者)在 16 年的時候發(fā)現(xiàn) MXNet 在 ImageNet 上面訓(xùn)練的模型精度比 Torch 低 1%。為了 debug 這個事情甚至開發(fā)了一個插件可以在 MXNet 跑任意 Torch 的代碼來對比結(jié)果。最后發(fā)現(xiàn)原因是我們圖片裁剪后默認(rèn)使用 JPEG 的 85 質(zhì)量保存,改成 95 質(zhì)量就可以補上丟掉的精度了。
在 Inception V3 論文出現(xiàn)后 Bing Xu(GAN 的作者之一)第一時間去重復(fù)這個工作。因為 Google 沒有公開代碼,而且論文里面細(xì)節(jié)不明確。幸好認(rèn)識原論文作者可以問問題,但前后也花了好些天才重復(fù)實現(xiàn)出來。
我在 CMU 的博士導(dǎo)師之一(他在 Google 報告給 Jeff Dean)曾在一次報告里面說,他參與了一個內(nèi)部的從 TensorFlow 前一代系統(tǒng)移植代碼的工作,發(fā)現(xiàn)在 TensorFlow 上精度死活丟了個點。前后花費了好幾個月時間找問題,最后發(fā)現(xiàn)是移植的代碼在使用圖片增強的時候順序跟原先不一樣。
三個例子的主人公都是頂尖的深度學(xué)習(xí)領(lǐng)域研究人員,但仍然很容易被一些細(xì)微的實驗細(xì)節(jié)耗費大量寶貴的時間。一個模型通常多達(dá)數(shù)十到數(shù)百層,不管是模型初始化和數(shù)據(jù)讀取都是隨機,每次訓(xùn)練也需數(shù)個小時,這些都讓 debug 變得很困難。
當(dāng)然,幸運的是,最近這些年隨著開源的深入人心,很多論文都可以找到開源的實現(xiàn)。對于大部分用戶來說不需要自己從頭開始實現(xiàn)一篇論文,去 Github 找個實現(xiàn)用就行了。但這個并不能解決所有問題:
網(wǎng)上的實現(xiàn)良莠不齊,很多都是新人練手之做。可能一大半不能重復(fù)出論文的結(jié)果
每個項目的實現(xiàn)多多少少有點不同,例如輸入數(shù)據(jù)格式,用什么樣的深度學(xué)習(xí)框架,代碼風(fēng)格不一樣。每換一個項目上手成本很大。
個人維護的項目通常只關(guān)注在某些地方,例如只關(guān)心某個數(shù)據(jù)集上的訓(xùn)練。但實際使用的時候大家會關(guān)心如何部署,如何換一個數(shù)據(jù)集訓(xùn)練之類。需要花費時間做二次開發(fā)。
最后代碼維護者很容易棄坑。例如我博士期間寫過一些項目,但之后工作和生活重心轉(zhuǎn)移,沒有精力才去回復(fù)用戶的提問。對于用戶來說,如果碰到一個坑,如果不能很快的溝通維護者,很容易導(dǎo)致被小地方困住大量時間。
理解到這些痛點后我們幾位從事計算機視覺的小伙伴,Zhi Zhang (@zhreshold), Hang Zhang (@zhanghang1989), Tong He (@hetong007), Eric Xie (@piiswrong), 拍了拍腦袋說,那我們來動手做一個工具包來試著解決這些問題吧。
我們想做一個不僅僅是資深用戶(數(shù)年計算機視覺經(jīng)驗)能用的工具包,而是一個能幫助更加廣泛用戶(數(shù)月計算機視覺經(jīng)驗)的項目。他們包括
希望能將視覺技術(shù)快速應(yīng)用到產(chǎn)品的工程師
希望提出新算法的研究者
當(dāng)然,如果你剛開始學(xué)習(xí),請參考《動手學(xué)深度學(xué)習(xí)》,或者你對計算機視覺外的應(yīng)用感興趣,請期待我們之后發(fā)布的工具包。
基于我們的用戶假設(shè),這個工具包提供如下的功能:
最近幾年重要論文的復(fù)現(xiàn)
詳細(xì)文檔提供使用說明和代碼講解
提供預(yù)訓(xùn)練的模型可以直接使用
性能評測,方便大家在不同模型之間做取舍
每個模型實現(xiàn)和接口盡量保證一致性,降低使用新模型的學(xué)習(xí)門檻
定時做重新訓(xùn)練保證代碼正確性(嗯,我們用 AWS 不用錢)
中文社區(qū)
下面一段代碼下載預(yù)訓(xùn)練好的 SSD 模型然后對圖片 street.jpg 進(jìn)行物體檢測并展示結(jié)果。


GluonCV 發(fā)布在 http://gluon-cv.mxnet.io。目前我們發(fā)布了第一個預(yù)覽版本,其中主要包括了三個模型,均可以重復(fù)論文結(jié)果
圖片識別:在 ImageNet 上訓(xùn)練 ResNet
物體檢測:在 Pascal VOC 上訓(xùn)練 SSD
語義分割:在 Pascal VOC 上訓(xùn)練 FCN
自然我們會在接下來的版本里不斷加入新的模型。如果對哪些模型特別感興趣,請原文鏈接給我們留言。
掃描或者長按下面 QR 碼來關(guān)注我們:

公眾號里回復(fù)下面關(guān)鍵詞獲取信息:
課程 --《動手學(xué)深度學(xué)習(xí)》課程視頻匯總
論壇 -- 深度學(xué)習(xí)論壇地址
資源 -- 所有中文資源匯總
請點擊下面鏈接來參與公開討論:
https://discuss.gluon.ai/t/topic/6081
雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。