衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

TensorFlow 2.0中關于Keras的一些新功能和重大變化

電子工程師 ? 來源:lq ? 2018-12-12 09:55 ? 次閱讀

【導語】早在今年 8 月的時候,谷歌開源戰略師 Edd Wilder-James 在一封公開郵件中表示正在研發 TensorFlow 2.0,并將于今年晚些時候發布預覽版。在 2018 年最后半個月的日子里,我們就要迎來了新版本的發布。

在之前的公開郵件中,Edd Wilder-James 曾提到過一些 TensorFlow 2.0 的設計思想和重大改變:易用性將成為重點、Eager Execution 將會是核心功能、支持更多的平臺和語言等。

而且未來所有的 tf.contrib 都會被棄用,對于每個 contrib 模塊,要么 a)將項目集成到 TensorFlow 中;b)將其移至單獨的存儲庫;c)完全將其移除。

在這篇文章中,我們將預覽 TensorFlow 中高級 API 的未來方向,并回答大家常問的一些問題。

Keras 是廣受開發者社區歡迎的高級 API,主要用于構建和訓練深度學習模型。它可以用于快速原型設計、最先進的研究以及實際生產。雖然 TensorFlow 已經支持 Keras,但是 2.0 版本將實現更加緊密的集成。

Keras有以下幾大關鍵優點:用戶友好、模塊化、可組合、容易擴展,既適合新手,也適合專家。這些優點加起來。可以讓學習、研究、開發、部署的工作流更加容易,效率更高。通過將 Keras 構建為 TensorFlow 的高級 API,機器學習領域的新手可以更容易上手。通過單一的高級 API 可以減少混淆,讓我們能夠專注于為研究人員提供高級功能。

TensorFlow 2.0 版本發布在即。我們會先解答下大家比較關注的幾個問題,然后我們會介紹 TensorFlow2.0中關于Keras 的一些新功能和重大變化,如Sequential API、Functional API、Model Subclassing API 與 Estimators 等。

FAQ

▌1、問:Keras 是否是一個獨立的庫?

答:其實,更應該把 Keras 視為一個 API。Keras 一直作為一個開源項目進行維護,大家可以在 (www.keras.io.)中找到。這個項目一直獨立于 TensorFlow,并且擁有一個活躍的貢獻者社區和用戶社區。在 tf.keras 模塊里,TensorFlow 有一個特定增強功能的完整 Keras API 實現。

▌2、問:Keras 只是 TensorFlow 或其他庫的一個包裝器嗎?

答:不,這是一個常見的(但可以理解的)錯誤觀念。 Keras 用于定義和訓練機器學習模型的 API 標準,它與特定實現無關:除了 TensorFlow,Keras API 還可以用于 MXNet,TypeScript,JavaScript,CNTK,Theano,PlaidML,Scala,CoreML 和其他庫的實現。

▌3、問:TensorFlow 內置的 Keras 版本與 keras.io 上的版本有什么區別?

答:TensorFlow 包含 Keras API(在 tf.kerasmodule 中)的實現,具有 TensorFlow 特定的增強功能,包括支持EagerExecution,方便直觀調試和快速迭代,支持 TensorFlow SavedModel模型交換格式,以及分布式訓練(包括 TPU)。

當用到 tf.keras 模塊的子類 API 時,Eager Execution 特別有用。這類 API 受到 Chainer 的啟發,大家通過命令行就可以編寫模型。tf.keras 與 TensorFlow 的生態系統緊密結合,可以支持:

tf.data 用于構建高性能的輸入流。你可以用 Numpy 處理的數據來訓練模型,或者用 tf.data 來衡量規模和性能。

分布策略。在跨各種計算平臺時進行分布式訓練,包括分布在很多機器上的 GPU 和 TPU。

輸出模型。通過 tf.keras APIs 創建的模型可以在 TensorFlow SavedModel 格式下進行序列化,并且可以使用 TensorFlow Serving 或通過其他語言(Java、Go、Rust、C#等)進行綁定。

模型可以使用 TensorFlow Lite 部署在移動或嵌入式設備上,也可以使用 TensorFlow.js。(也可以使用與此相同的 Keras API 直接在 JavaScript 中開發模型。)

特征列,用于有效地表示和分類結構化數據。

如何安裝 tf.keras?我是否需要先通過 pip 安裝 Keras ?

因為 tf.keras 是包含在 TensorFlow 內的,所以,大家不用單獨安裝 Keras。如果在 Colab 中你可以直接運行下面的代碼:

然后你就可以使用 tf.keras 了。如果你是安裝新手,可以通過近期教程中的一些例子來檢查是否導入成功。

▌5、TensorFlow 為專家和新手提供了不同 API,如何使用?

TensorFlow 的開發者們經驗、層次都不同,有剛接觸 ML 的學生們、也有 ML 領域的專家或研究者。而 TensorFlow 的一個優點就是它提供了不同的 APIs 支持不同的工作流和目標。這也是 TensorFlow 的 Keras 集成的一個主要目標,可以讓用戶選擇對自己更有益處的部分,而無需采用 Keras 的整體框架。

Sequential API

如果你正在學習機器學習,我們 建議你從 tf.keras Sequential API 開始,它非常直觀、簡潔,適用于機器學習中 95% 的問題。使用這個 API,10 行代碼就能搭建一個神經網絡

參考案例:

https://colab.research.google.com/github/tensorflow/docs/blob/master/site/en/tutorials/_index.ipynb

定義模型的最常用方法是構建神經網絡的層圖,最簡單的模型類型是把這些層堆疊起來。 你可以使用 Sequential API 來定義這樣的模型,如下所示:

在 “Learn and UseML”章節下面,你可以找到更多使用 the Sequential API 的教程,參考鏈接:

https://www.tensorflow.org/tutorials/

Functional API

當然,順序模型是一個簡單的神經網絡層堆棧,不能代表任何模型。不過,你可以使用 Functional API 來構建更高級的模型,定義復雜的拓撲結構,包括多輸入和多輸出模型,具有共享層的模型以及具有殘差連接的模型。

使用 Functional API 構建模型時,神經層是可調用的,并可以返回張量作為輸出。然后可以使用這些輸入張量和輸出張量來定義模型。 例如:

上面的模型同樣可以使用簡單的代碼來進行編譯和訓練。

Model Subclassing API

如果你想搭建完全可自定義的模型,那么可以使用 Model Subclassing API。在類方法(class method)的主體中,你必須以這種方式定義前向傳播。

這樣的模型更靈活,但是也更難調試。所有這三種類型的模型三種類型的模型都可以使用前面顯示的簡單編譯和調整命令來編譯和訓練,或者你可以編寫自己的定制訓練循環來實現完全控制。

例如:

更多 the Model Subclassing 的案例,可以在“research and experimentation”章節中查看教程,參考鏈接:

https://www.tensorflow.org/tutorials/

使用 the Model Subclassing API 實現的 Neural Machine Translation with Attention

使用the Model Subclassing API實現的 GAN

如果這些模型都無法滿足你的研究?

如果你發現 tf.keras 限制了你的應用領域,你還有其他選擇:

使用獨立于 Keras 模型定義的 tf.keras 神經層,并編寫自己的梯度和訓練代碼。類似地,你可以單獨使用tf.keras.optimizers,tf.keras.initializers,tf.keras.losses或tf.keras.metrics。

同時,你也可以完全忽略 tf.keras,使用較低層級的 TensorFlow,Python 和 AutoGraph 來獲得你想要的結果。

這完全取決于你!請注意,tf.layers 中的非面向對象層將被棄用,tf.contribution(包括高級API,如 tf.contribution.slim 和 tf.contribution.learn)在 TF 2.0 中將不可用。

Estimators會發生哪些變化?

Estimator 在 Google 和 TensorFlow 社區的應用都十分廣泛。 我們已經將幾種模型打包為 Premade Estimators,包括線性分類器,DNN 分類器,組合 DNN 線性分類器(又名 寬深模型)和梯度增強樹。 這些模型已經投入生產并得到廣泛部署,由于這些原因,包括 Premade Estimators 在內的Estimator API 將包含在 TensorFlow 2.0 中。

對于 Premade Estimators 的用戶來說,Keras 和EagerExecution 焦點變化帶來的的影響將是微乎其微的。我們可能會更改 Premade Estimators 的實現,同時保持 API 的界面相同。我們還將努力添加作為 Premade Estimators 實現的模型的 Keras 版本,并擴展 Keras 以更好地滿足大規模生產的要求。

也就是說,如果你正在開發自定義體系結構,那我們建議使用 tf.keras 來構建模型而不是Estimator。如果你正在構建需要用到 Estimators 的基礎架構,那么可以使用model_to_estimator() 來轉換模型,同時我們也努力確保Keras可以跨TensorFlow生態系統工作。

進擊到TensorFlow 2.0!

希望大家可以和我們一樣喜歡使用 tf.keras 。在接下來幾個月的時間,TensorFlow 團隊將關注于提升開發者們的體驗。在我們的文檔和教程里也將會體現這點。我們也期待您的想法和反饋,并通過 Github issues 和 PRs 為項目作出貢獻。感謝大家!

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 機器學習
    +關注

    關注

    66

    文章

    8441

    瀏覽量

    133091
  • tensorflow
    +關注

    關注

    13

    文章

    329

    瀏覽量

    60631
  • keras
    +關注

    關注

    2

    文章

    20

    瀏覽量

    6097

原文標題:TensorFlow 2.0發布在即,高級API變化搶先看

文章出處:【微信號:rgznai100,微信公眾號:rgznai100】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    TensorFlow常用Python擴展包

    TensorFlow 能夠實現大部分神經網絡的功能。但是,這還是不夠的。對于預處理任務、序列化甚至繪圖任務,還需要更多的 Python 包。下面列出了一些常用的 Python 包:Numpy:這是用
    發表于 07-28 14:35

    TensorFlow的特點和基本的操作方式

    2015年11月在GitHub上開源,在2016年4月補充了分布式版本,最新版本為1.10,2018年下半年將發布Tensorflow 2.0預覽版。Tensorflow目前仍處于快速開發迭代
    發表于 11-23 09:56

    keras可視化介紹

    keras的model.summary()方法 對于一些簡單的模型,可以直接使用keras提供的model.summary()方法,如上講的mnist模型,代碼
    發表于 08-18 07:53

    Keras搭建神經網絡的般步驟

    是: Keras 是為人類而不是為機器設計的 API,它把用戶體驗放在首要和中心位置,能夠以最短時間把你的想法轉換為實驗結果。 這列文檔主要講述keras一些入門知識,
    發表于 08-18 07:35

    介紹OVN新功能

    本文檔主要是關于2017年8月底發布的Open vSwitch 2.8添加的內容,重點介紹OVN新功能。同時也涵蓋了即將在2018年2月發布的Open vSwitch和OVN 2
    發表于 03-06 10:05 ?2235次閱讀

    TensorFlow2.0 版本將來臨

    TensorFlow 的 contrib 模塊已經超越了單個存儲庫可以維護和支持的模塊。較大的項目最好分開維護,我們將在 TensorFlow 的主代碼里添加一些規模較小的擴展。因此
    的頭像 發表于 08-15 09:01 ?5546次閱讀

    KerasTensorFlow究竟哪個會更好?

    Keras 依然作為個庫,與 TensorFlow 分開,進行獨立操作,所以仍存在未來兩者會分開的可能性;然而,我們知道 Google 官方同時支持 Keras
    的頭像 發表于 10-11 10:05 ?2.2w次閱讀

    TensorFlowKeras哪個更好用?

    作為個庫,Keras 仍然可以單獨使用,因此未來兩者可能會分道揚鑣。不過,因為谷歌官方支持 KerasTensorFlow,所以似乎不太可能出現這種情況。
    的頭像 發表于 10-31 09:40 ?1.1w次閱讀

    深入了解TensorFlow隨附的此版Keras將能為您實現哪些功能

    TensorFlow 開發者的經驗水平千差萬別,既有首次學習機器學習的學生,也有機器學習專家和研究人員。恰巧,TensorFlow 的優點之便是能提供多個 API 以支持不同的工作流程和目標。而這
    的頭像 發表于 12-18 13:38 ?2885次閱讀

    TensorFlow 2.0 alpha提供即將發生的變化的預覽

    。Alpha 版文檔的每個教程均會自動下載并安裝 TensorFlow 2.0 Alpha 版,并且后續將提供更多內容!
    的頭像 發表于 03-10 10:17 ?2975次閱讀

    最新tf.keras指南,TensorFlow官方出品

    TensorFlow 1.x以靜態圖為主,網上主流的TF代碼編寫主要是面向過程的(函數為主),在引入tf.keras之后,TensorFlow官方就開始推薦tf.keras里各種面向對
    的頭像 發表于 03-29 11:28 ?4306次閱讀

    2020年航空業將會發生哪些重大變化

    不過,隨著航空業對陳舊的空中交通管制系統進行現代化改造,2020年機場延誤可能會有一些緩解。以下是我們將在2020年看到的一些重大變化
    發表于 01-03 11:33 ?1326次閱讀

    TensorFlow主題演講涉及的一些更新總結

    Google 開發者?Youku?頻道上找到所有主題演講的視頻。以下是按產品領域列出的一些更新摘要(視頻還有更多產品更新要點,請務必查看)。 移動版和網站版 TensorFlow
    的頭像 發表于 05-28 14:19 ?1891次閱讀

    基于TensorFlowKeras的圖像識別

    ,讓我們先花點時間來了解一些術語。TensorFlow/KerasTensorFlow是GoogleBrain團隊創建的個Python開源庫,它包含許多算法和模型
    的頭像 發表于 01-13 08:27 ?899次閱讀
    基于<b class='flag-5'>TensorFlow</b>和<b class='flag-5'>Keras</b>的圖像識別

    keras模型轉tensorflow session

    在這篇文章,我們將討論如何將Keras模型轉換為TensorFlow session。 KerasTensorFlow簡介
    的頭像 發表于 07-05 09:36 ?595次閱讀
    大发888 3403| 德州扑克3d豪华版| 百家乐游戏筹码| 威尼斯人娱乐场送1688元礼金领取lrm | 澳门百家乐官网是怎样赌| 至尊百家乐官网qvod| 百家乐官网视频双扣下载| 保单百家乐官网游戏机| 大亨百家乐官网娱乐城| 百家乐官网发牌铲| 单机百家乐官网在线小游戏| 现金百家乐官网下载| 百家乐官网必胜方法如果你还想继续不看可能后悔一生 | 大发888娱乐城都有啥扑克牌游戏| 大发888鸿博博彩| 大发888手机版亚洲城| 博彩e族字谜专区| 商水县| 百家乐官网轮盘技巧| 淘宝博百家乐官网的玩法技巧和规则 | 百家乐singapore| 威尼斯人娱乐网注册送38元彩金 | 利高百家乐官网娱乐城| 澳门百家乐官网网上赌博| 做生意房门挂啥招财| 百家乐tt娱乐场开户注册| 德州扑克锦标赛| 八大胜百家乐官网现金网| 大世界百家乐官网娱乐场| 百家乐哪家有优惠| 加多宝百家乐的玩法技巧和规则| 大发888网站大全| 马牌百家乐官网现金网| 都坊百家乐官网的玩法技巧和规则| 百家乐真人视屏游戏| 百家乐策略介绍| 会泽县| 永利博百家乐官网的玩法技巧和规则 | 至尊百家乐官网| 明珠百家乐的玩法技巧和规则| 淘金盈赌场有假吗|