當前位置:
首頁 > 新聞 > 對話TensorLayer項目發起者董豪

對話TensorLayer項目發起者董豪

今年 6 月,由北京大學前沿計算研究中心董豪博士主導開源的 TensorLayer 在 GitHub 上的 Star 數突破五千,這也標誌著這一工具進入一個全新里程碑。TensorLayer 是一款基於 TensorFlow 開發的深度學習與強化學習庫,它提供高級別的深度學習 API,非常易於修改和擴展,可以同時用於機器學習的研究與產品開發。

2016 年,董豪在帝國理工讀博期間,在 Github 上開源 TensorLayer1.0,這一工具於 2017 年獲得 ACM MM 最佳開源軟體獎。今年 5 月,隨著 TensorFlow 升級至 2.0,在北京大學前沿計算研究中心的大力支持下,北京大學和帝國理工的貢獻者們(吳睿海、吳潤迪、董豪、張敬卿)也將 TensorLayer 升級至全新 2.0 版本,全面支持動態訓練模式、動/靜態神經網路模型切換以及 TensorFlow2.0,並同時大大簡化了自定義神經網路的實現。目前,TensorLayer 的下載量接近 20 萬次,並逐漸成為深度學習主流框架之一。

談及發起 TensorLayer 項目的契機,董豪對雷鋒網表示,這與他的研究經歷息息相關。博士第一年,他主要做一些醫療數據的分析研究,其間涉及到諸多深度學習研究,到了博二和博三,他的研究逐漸從醫療應用轉換到深度學習演算法。這期間,他逐漸對要不要自己做一個工具集進行了思索,隨後所做的一個模型壓縮項目真正導向他做出 TensorLayer。在這個項目中,他最開始使用的工具是 Theano,在往 TensorFlow 切換的過程中,能使用的工具只有 Keras,但是 Keras 存在一個問題——透明性很差,很難進行一些底層操作,而這對模型壓縮中的特定操作造成了困擾。因為需求導向,他決定做出一個追求簡潔和透明性的工具,滿足實驗室的科研需求,提高研究的效率。

旅行中的奇思妙想

而將 TensorLayer 導向開源,則是另一則小故事。

2016 年 9 月,董豪陪同父母旅遊,在從美國乘坐游輪去墨西哥的過程中,他將這一工具開源。

對話TensorLayer項目發起者董豪

「本來已經答應了爸媽和他們一起坐船,但我一上去就後悔了。游輪看起來似乎很不錯,在船上欣賞美景,感受大自然,但真實的情況是,連續 7 天每天就是吃吃自助餐,看看錶演,翻來覆去地看海景,這種感覺真的很無聊。」

在上船的次日,他租好 WiFi,花了一周時間,把過去所有的代碼整理好,發布了 TensorLayer 第一版。當時的想法是,開源的時機已經成熟,既然有了好的東西,就應該拿出來給開發者群體使用,看看效果如何。而這次的遊船之旅,則是讓他心無旁鷺整理 TensorLayer 的最佳催化劑。

以現在的眼光看來,1.0 版本略顯粗糙。但隨著這一工具的開源,陸續有更多的開發者提出意見,TensorLayer 開發者團隊也基於此做出了更多更好的提升。這一工具不再是一個人的單打獨鬥。

最初的開發團隊以他們實驗室為主,此外還有帝國理工大學的一些校友,隨著畢業或研究方向的轉變,有些人慢慢離開了這支隊伍。隨著開源,陸續有了許多網友加入這個社群,直到現在都還一直有新鮮血液湧入。

開源之後,他也迎來另一個收穫,2017 年,TensorLayer 獲得 ACM MM2017 最佳開源軟體獎。

「無心插柳柳成蔭」的獎項

ACM MM2017 最佳開源軟體獎對董豪來說完全是預料之外的收穫。在這一工具開源之後,他的好友在一次閑談時對他說道,「既然做了,不如寫篇論文投個會議?」董豪調侃道,「嗯,那就試試吧。」

就是這樣一次不經意的對話,沒想到促成了這次最佳開源軟體獎。得知獲獎時,董豪正在義大利參加 ICCV,由論文的另一位共同作者在 ACM MM 現場領獎。

彼時他們團隊身處英國,做深度學習研究的團隊,以中、美居多,他們對這一工具的宣傳也較少,唯一的傳播途徑就是,董豪會在知乎里回答一些關於 TensorLayer 的疑問。即便這樣,TensorLayer 也收穫了不少用戶群體。好用的工具大家都喜歡。

在這一工具獲得 ACM MM 最佳開源軟體獎之後,熟知它的人變得更多,社群里的討論也日益熱烈。新的規劃也開始啟動。

對話TensorLayer項目發起者董豪

董豪決定,一定要好好維護這一工具,做到畢業之後繼續對用戶群體負責。從最初的以實驗室需求為導向,發展到今天,他對為什麼要做好 TensorLayer 又有了新的理解。

他對雷鋒網表示,TensorLayer 是一個沒有任何公司背景的純開放社區,這樣的好處是,沒有公司之間的諸多複雜問題。「有些公司做出來的工具,他們可能抱著這樣的考慮,別家的演算法,我們就支持的慢一點,本來可以這次進行升級,我們放在下一次。而 TensorLayer 則不同,如果我今天做了一個很好用的東西,或者是在哪篇論文中發現了很好用的方法,那我們可以馬上加進來,讓開發者第一時間用上。」

2.0 版本全新升級

去年 9 月份,他開始考慮進行這次升級,打算做出新的設計,找到自己的特色,對優勢進行提升。TensorLayer 的底層基於 TensorFlow,而 TensorFlow 一直因為靜態圖的問題被廣大開發者詬病,他表示,既然 TensorFlow 決定升級至 2.0 版本,TensorLayer2.0 版本也可以提上議程。

在這次的更新中,董豪也撰文,透露了如下特徵:

TensorLayer 由底層至上層可以分為三大模塊:

1. 神經網路模塊:TensorLayer 提供大量工業界和學術界需要的參考層實現(比如 CNN、RNN、BinaryNet 等),提供類似 Pytorch 的「動態」聲明方式,也提供類似 Lasagne 的堆疊式「靜態」聲明方法來建立模型,並支持動態圖和靜態圖兩種訓練模式,以支持不同的開發需求。

2. 工作流模塊:為了支持整個深度學習開發流程,TensorLayer 提供了大量數據處理和訓練流程所需的工具。此外,為了管理整個深度學習開發,以支持項目的存儲、比較、溯源等,TensorLayer 提供了生命周期管理功能,包括模型、數據和訓練流程的管理,以及支持任務分發以實現多任務並行執行,以加快訓練(比如超參數選取)和自動產品化部署。

3. 應用模塊:為了促進產業界和學術界的交流,TensorLayer 社區提供了大量應用和預訓練模型,包括醫療圖像分析、圖像增強、人體姿態估計、文本生成、風格遷移、各類增強學習演算法等等。

對話TensorLayer項目發起者董豪

與 Keras 和 Pytorch 相比,TensorLayer 提高了神經網路模塊的抽象化設計,同時實現了降低使用現有層和開發新層的工作量,既不需要開發者編寫函數以計算層的輸出尺寸(Keras 需要),也不需要在使用層時輸入上一層的輸出尺寸(Pytorch 需要)。這些設計大大方便了框架的拓展。

此外,TensorLayer 提供了整套端到端的工作流,包括數據預處理、訓練、服務模塊、資料庫管理,以及任務自動發放和收集。

目前,TensorLayer 團隊分為框架開發和應用開發兩個分支,框架開發主要做一些底層的支持和高層抽象,應用開發會基於這一工具做更多應用。本次大更新的主要貢獻來自北京大學和帝國理工學院的核心團隊,其中,北京大學信息科學技術學院的兩位大三學生吳潤迪和吳睿海是本次更新的最核心成員。

未來

今年六月,TensorFlow 2.0 Beta 版本發布,終版 API 基本定型,貢獻者團隊搭配 TensorLayer2.0,實現了全套深度強化學習(Deep Reinforcement Learning)演算法,包括 DQN 以及一系列的改進演算法,PG、TRPO、PPO 等演算法,AC 演算法及其一系列改進,最大熵方法和策略/值迭代等方法。他們也承諾,將持續開源最新深度學習和深度強化學習演算法。

目前,貢獻者團隊與硬體開源社區 Sipeed 合作,將推出基於國產 K210 嵌入式 AI 晶元模組及其模型轉換器。屆時,TensorLayer 中的所有案例和模型都將可以直接導入晶元中,成本能控制在 20 元以下。他們已經做出了實時目標識別、人臉識別、風格轉換等的 demo。

對於在 TensorLayer 的開發與更新這三年中的體會,董豪對雷鋒網表示,這是一個不斷結識新朋友,自我學習的過程。「能學到很多工程上的東西,也會遇到各種各樣的需求。開發者提出來之後,我就知道,哇,原來世界上還有這種演算法。當然,也會認識許多國內國外的朋友,其中有很多很有意思的人。我們做的事情是開源,所以接觸到的很多人都極具貢獻精神。」

董豪還提到,TensorLayer 也創造了很多促進個人事業的機會,比如有一些大公司找到他,開出了在業界極具競爭力的條件。不過他最後還是選擇了北京大學,將繼續從事科研。社區貢獻者也都拿到了 OpenAI, Google Brain, Nvidia Research 等研究機構的 offer。

他將於今年 9 月正式加入北大前沿計算研究中心,該中心在機器學習理論和應用方面都非常強。在未來,他會做一些基於深度學習的理論研究,以及機器學習在視覺、醫療、圖形學方面的一些應用,歡迎大家申請博士生和博士後。此外,他對非監督學習也特別感興趣,計劃在數據的高效利用上進行更多探索。我們期待未來他帶來更多新的研究,推動 TensorLayer 更多地助益於開發者,創造一個開源、共享的生態。

對話TensorLayer項目發起者董豪

TensorLayer 部分貢獻者

董豪知乎主頁:https://www.zhihu.com/people/zsdh123/activities

TensorLayer GitHub 地址:https://github.com/tensorlayer/tensorlayer

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 雷鋒網 的精彩文章:

watch OS 6發布:Apple Watch終於成年了
IEEE 標準協會中國籍董事袁昱回應華為禁令

TAG:雷鋒網 |