您的位置:首頁>手機>正文

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

喜欢就按个赞吧!!!
点击关闭提示