DeepMind發布Sonnet 幫你用TensorFlow快速搭建神經網絡

jopen 7年前發布 | 10K 次閱讀 DeepMind TensorFlow

DeepMind發布Sonnet 幫你用TensorFlow快速搭建神經網絡

去年 DeepMind 作出決定,將全部研究搬到 TensorFlow 框架上進行。

近一年時間過去,回頭來看,DeepMind 認為這項選擇十分正確——許多模型的學習過程大幅加速;TensorFlow 內置的分布式訓練功能,還幫助工程師們極大得精簡了代碼。

在這過程中,DeepMind 發現:TensorFlow 的靈活性和可適性,使得以它為基礎、為特定任務開發專用高級框架變得十分可行。

DeepMind 就開發了一個能在 TensorFlow 上快速創建神經網絡模塊的高級框架,名為 Sonnet。

雷鋒網(公眾號:雷鋒網)消息,兩天前,其代碼被上傳到 GitHub。昨夜,DeepMind 在官方博客宣布了這一消息:Sonnet 正式開源。

對于 TensorFlow 而言,自從其在 2015 年末開源,一個由眾多高級算法庫組成的多樣生態系統,便已圍繞著它迅速發展起來。這些高級工具,允許常用任務以更簡便、更快的方式完成,極大節省了開發者的時間精力。 

作為該生態的新成員,Sonnet 也是如此。它與現有的神經網絡算法庫有許多共同點,但部分功能專為 DeepMind 的研究需要而設計。

這并不是 Sonnet 的源代碼頭一回被公開——據雷鋒網了解,幾個月前 DeepMind 開源的算法庫 “Learning to learn”,以及去年 6 月發表的論文 《Learning to learn by gradient descent by gradient descent》,就包含了早期的 Sonnet 代碼。現在,該算法庫的完全版本以 “Sonnet” 新名稱重新包裝。

DeepMind 在博客上表示:

“我們仍在不斷開發這一代碼庫,但當前版本已經對我們的研究貢獻巨大。接下來的代碼發布,將以今日發布的版本為基礎。

向公眾開源 Sonnet,能方便 DeepMind 與深度學習社區分享我們的算法模型。當然,我們也殷切希望,Sonnet 能夠幫助社區同仁將研究更進一步。最近幾個月,我們已經開源了公司的旗艦平臺  DeepMind Lab,并正在和動視暴雪合作,針對《星際爭霸 2 》的 AI 研究開發開源 API 。更多工具的發布正在路上,我們將會在官網開源頁面與大家分享,敬請期待。”

技術特點

雷鋒網獲知,Sonnet  走的是面向對象(object-oriented)的路子,與 Torch/NN 類似,使得定義某些運算前饋通路(forward pass)的模塊能夠被創建出來。模塊使用輸入 Tensor 來調用,這向計算圖(Graph)添加任務,并返回輸出 Tensor。其中一項設計目標,是確保以透明的方式進行變量分享。這是通過對同個模塊接下來的調用,自動重復使用變量來實現。

DeepMind 認為,許多深度學習文獻中的模型,可被看做是一個等級結構(hierarchy)。比方說,一個 Differentiable Neural Computer (可微分神經計算機)包含一個控制器,這有可能是一個 LSTM,后者可按照包含標準線性層的形式來執行。DeepMind 發現,編寫明確代表了子模塊的代碼,使得代碼重復使用變得更容易,試驗變得更快。因此,對于能在內部 declare 其他子模塊的模塊,Sonnet 支持鼓勵其編寫;或者在模型創建期間傳遞給其他模塊。

DeepMind 認為十分有用的另外一項技術,是允許特定模塊在隨機聚集的 Tensor 群組上運行。RNN 的狀態,最適合于以異構 Tensor 集合來表示,用扁平列表來表示它們很容易會導致錯誤。Sonnet 提供了處理這些隨機等級結構的功能,所以改變你的試驗,使用另一種 RNN,并不需要繁冗地修改代碼。DeepMind 已經對核心 TensorFlow 做了修改,以更好地支持這一使用情況。

Sonnet 專為 TensorFlow 而設計,因此并不會導致用戶無法訪問底層細節,比如 Tensors 和 variable_scopes。在 Sonnet 中編寫的模型,可與原始 TensorFlow 代碼自由地混在一起,和其他高級算法庫也可以。

最后,DeepMind 在博客上表示將會不斷更新 Sonnet,使開源版本與公司內部使用版本相吻合。

via deepmind

來自: 雷鋒網

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!