您的位置:首頁>科技>正文

人工智慧、深度學習庫 Keras 最新版本重磅發佈

自Keras於2015年3月正式發佈, 2年內, 其用戶數量從最初的1名快速增長到10萬。

近日Keras官方發佈Keras 2, 其更易於使用的新API(應用程式設計發展介面),

與TensorFlow完全保持一致性。 這是準備將Keras API集成到核心TensorFlow的主要步驟。

根據官方介紹, 此次更新的重點有兩個:

Keras 2 API 將作為 TensorFlow 框架的一部分直接向用戶提供支援;

Keras 2 API 經過了重新設計, 將成為團隊第一個長期支持(long-term-support)的 API。

與 TensorFlow 整合

儘管 Keras 自 2015 年 12 月已經作為執行時間後端(runtime backend)開始支持 TensorFlow, Keras API 卻一直與 TensorFlow 代碼庫相分離, 這種情況正在改變:從 TensorFlow 1.2 版本開始, Keras API 可作為 TensorFlow 的一部分直接使用, 這是 TensorFlow 在向數百萬新用戶開源的道路上邁出的一大步。

Keras 最好被理解為一個 API 技術規範, 而不是一個特殊的代碼庫。 事實上, 繼續發展將會出現 Keras 技術規範的兩個不同實現:(a)TensorFlow 的內部實現(如 tf.keras), 純由 TensorFlow 寫成, 與 TensorFlow 的所有功能深度相容;(b)外部的多後臺實現, 同時支持 Theano 和 TensorFlow(並可能在未來有更多的後臺)。

類似的, Skymind 正在用 Scala 實現 Keras 份額部分規範,

如 ScalNet。 為了在流覽器中運行, Keras.js 正在用 JavaScript 運行 Keras 的部分 API。 正因如此, Keras API 註定成為深度學習從業者的通用語言, 在不同的工作流程中共用並獨立於底層平臺。 像 Keras 這樣的統一 API 規範將促進代碼共用, 提高研究的再生產率, 並允許更大支持社區的存在。

新 API

新的 Keras 2 API 是我們首個長期支持的 API:下個月 Keras 2 的代碼庫將在最新的軟體上開始運行數年。 為了將其變為可能, 考慮到未來會出現的問題, 我們在這次發佈中大量修改了 API。 特別是, 我們的新 API 選項完全相容 TensorFlow 規範。

大多數層的 API 有了顯著變化, 特別是 Dense、BatchNormalization 和全卷積層。 然而, 我們已經設置好了相容介面, 這樣你的 Keras 1 代碼就可以在 Keras 2 上無障礙運行了(同時發出警告來幫助你轉換對新 API 的層調用)。

訓練和評估生成器方法的 API 已經改變(如: fit_generator、predict_generator 和 evaluate_generator)。 不過, 無需擔心, Keras 1 的調用依然適用於 Keras 2。

fit、nb_epoch 已重命名為為 epochs。 我們的 API 轉換介面也適用于這項改變。

很多層所保存的權重格式已經改變。 然而, Keras 1 上保存的權重檔依然能在 Keras 2 模型上載入。

objectives 模組已更名為 losses。

與此前不相容的地方

考慮到 Keras 的廣大用戶基礎, 我們儘量不對 Keras 做根本變動, 但是, 還是有些變動不可避免, 尤其是對於更高階的用戶來講。

傳統層 MaxoutDense、TimeDistributedDense 和 Highway 已被永久移除。

大量的傳統度量和損失函數已被移除。

BatchNormalization 層不再支持 mode 參數。

由於 Keras 內部構件已經改變, 自訂層被升級。 改變相對較小, 因此將變快變簡單。 參見指南:https://keras.io/layers/writing-your-own-keras-layers/

通常來講, 任何使用非正式的 Keras 功能編寫的代碼將會失效, 因此高階使用者也許需要做一些相應的更新工作。

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