0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

TensorFlow 2.0將專注于簡單性和易用性

電子工程師 ? 來源:lq ? 2019-01-18 10:44 ? 次閱讀

2018 年 11 月,TensorFlow 迎來了它的 3 歲生日,我們回顧了幾年來它增加的功能,進(jìn)而對另一個(gè)重要里程碑 TensorFlow 2.0 感到興奮 !

TensorFlow 2.0 將專注于簡單性和易用性,具有以下更新:

使用 Keras 和 eager execution,輕松構(gòu)建模型

在任意平臺上實(shí)現(xiàn)生產(chǎn)環(huán)境的穩(wěn)健模型部署

為研究提供強(qiáng)大的實(shí)驗(yàn)工具

通過清理廢棄的 API 和減少重復(fù)來簡化 API

在過去的幾年里,我們?yōu)?TensorFlow 添加了許多組件。在 TensorFlow 2.0 中,它們將被打包成一個(gè)全面的平臺,支持從訓(xùn)練到部署的機(jī)器學(xué)習(xí)工作流程。讓我們使用如下所示的簡化概念圖來了解 TensorFlow 2.0 的新架構(gòu):

注:上圖的訓(xùn)練部分雖然側(cè)重于 Python API,但 TensorFlow.js 也支持訓(xùn)練模型。也支持其他語言,包括 Swift,R 和 Julia

簡單的模型構(gòu)建

在最近的 文章 中,我們宣布 Keras API 將成為 TensorFlow 中構(gòu)建和訓(xùn)練模型的核心高級 API。Keras API 使得使用 TensorFlow 開啟項(xiàng)目變得簡單。重要的是,Keras 提供了幾個(gè)模型構(gòu)建 API ( Sequential, Functional, 和 Subclassing ),因此您可以選擇適合的抽象級別。TensorFlow 的實(shí)現(xiàn)包含多項(xiàng)增強(qiáng)功能,包括即時(shí)迭代和直觀調(diào)試,以及 tf.data,用于構(gòu)建可擴(kuò)展的輸入管道。

下面是一個(gè)工作流程示例 ( 在接下來的幾個(gè)月里,我們將更新下面所述內(nèi)容的指南 ):

使用 tf.data 加載數(shù)據(jù)。使用輸入管道讀取訓(xùn)練數(shù)據(jù),用 tf.data 創(chuàng)建的輸入線程讀取訓(xùn)練數(shù)據(jù)。使用 tf.feature_column 描述特征,例如嵌套和特征交叉。還支持從內(nèi)存數(shù)據(jù)(例如 NumPy)中方便地輸入

使用 tf. Keras 或 Premade Estimators 構(gòu)建、訓(xùn)練和驗(yàn)證模型。Keras 與 TensorFlow 的其余部分緊密集成,因此您可以隨時(shí)訪問 TensorFlow 的功能。一組標(biāo)準(zhǔn)的打包模型 ( 例如,線性或邏輯回歸、梯度增強(qiáng)樹、隨機(jī)森林 ) 也可以直接使用 ( 利用 tf.estimator API 實(shí)現(xiàn) )。如果你不想從頭開始訓(xùn)練一個(gè)模型,你很快就能通過 TensorFlow Hub 的模塊利用遷移學(xué)習(xí)來訓(xùn)練 Keras 或 Estimator 模型

使用 eager execution 運(yùn)行和調(diào)試,然后在圖形上使用 tf.function。TensorFlow 2.0 在默認(rèn)情況下以 eager execution 方式運(yùn)行,以便于使用和順利調(diào)試。此外,tf.functionannotation 透明地將 Python 程序轉(zhuǎn)換成 TensorFlow 圖。這個(gè)過程保留了 1.x TensorFlow 基于圖形執(zhí)行的所有優(yōu)點(diǎn):性能優(yōu)化、遠(yuǎn)程執(zhí)行以及輕松序列化、導(dǎo)出和部署的能力,同時(shí)增加了使用簡單的 Python 表達(dá)程序的靈活性和易用性

使用分布策略進(jìn)行分布式訓(xùn)練。對于大型機(jī)器學(xué)習(xí)訓(xùn)練任務(wù)來講,Distribution Strategy API 使得在不更改模型定義的情況下,在不同硬件配置上分布和訓(xùn)練模型變得很容易。由于 TensorFlow 提供了對 CPU、GPU 和 TPU 等一系列硬件加速器的支持,因此可以將訓(xùn)練工作負(fù)載分布到單節(jié)點(diǎn) / 多加速器以及多節(jié)點(diǎn) / 多加速器配置,包括 TPU Pods。雖然此 API 支持各種集群配置,但還提供了在本地或云環(huán)境中部署 Kubernetes 集群訓(xùn)練的模板

導(dǎo)出到 SavedModel。TensorFlow 將在 SavedModel 上標(biāo)準(zhǔn)化,作為 TensorFlowServing、TensorFlow Lite、TensorFlow.js、TensorFlow Hub 等的交換格式

在任何平臺上的生產(chǎn)環(huán)境中進(jìn)行穩(wěn)健的模型部署

TensorFlow 始終為生產(chǎn)提供了直接途徑。無論是在服務(wù)器、邊緣設(shè)備或者 web上,無論您使用哪種語言或平臺,TensorFlow 都可以讓您輕松地訓(xùn)練和部署模型。在 TensorFlow 2.0 中,我們通過標(biāo)準(zhǔn)化交換格式和調(diào)整 API 來提高平臺和組件之間的兼容性和一致性。

一旦您訓(xùn)練并保存了模型,就可以直接在應(yīng)用程序中執(zhí)行它,或者使用以下部署庫之一為它提供服務(wù):

TensorFlow Serving:TensorFlow 庫允許模型通過 HTTP / REST 或 gRPC / 協(xié)議緩沖區(qū)提供服務(wù)

TensorFlow Lite:TensorFlow 針對移動和嵌入式設(shè)備的輕量級解決方案提供了在 AndroidiOS 和 Raspberry Pi 和 Edge tpu 等嵌入式系統(tǒng)上部署模型的能力

TensorFlow.js:支持在 JavaScript 環(huán)境中部署模型,例如通過 Node.js 在 web 瀏覽器或服務(wù)器端部署模型。TensorFlow.js 還支持用 JavaScript 定義模型,并使用類似于 keras 的 API 直接在 web 瀏覽器中進(jìn)行訓(xùn)練

TensorFlow 還支持其他語言 ( 一些由更廣泛的社區(qū)維護(hù) ),包括 C, Java, Go, C#, Rust, Julia, R 等。

為研究提供強(qiáng)大的實(shí)驗(yàn)工具

TensorFlow 使從概念到代碼、從模型到發(fā)布的新思想變得容易。TensorFlow 2.0 集成了許多功能,可以在不犧牲速度或性能的情況下定義和訓(xùn)練最新模型:

Keras Functional API 和 Model Subclassing API:允許創(chuàng)建復(fù)雜的拓?fù)?,包括使用剩余層、自定義的多輸入 / 輸出模型和強(qiáng)制寫入的正向傳遞

自定義訓(xùn)練邏輯:使用 tf.GradientTape 和 tf.custom_gradient 對梯度計(jì)算進(jìn)行細(xì)粒度控制

為了獲得更大的靈活性和更好的控制,低級別 TensorFlow API 始終可用,并與高級別抽象結(jié)合在一起,以實(shí)現(xiàn)完全可定制的邏輯

TensorFlow 2.0 帶來了一些新功能,允許研究人員和高級用戶使用豐富的擴(kuò)展 ( 如 Ragged Tensors, TensorFlow Probability, Tensor2Tensor 等) 進(jìn)行實(shí)驗(yàn)。

除了這些功能外,TensorFlow 提供 eager excution,便于原型制作和調(diào)試,Distribution Strategy API 和 AutoGraph進(jìn)行規(guī)模化訓(xùn)練, 以及對 TPU 的支持, 使 TensorFlow 2.0 成為一個(gè)易于使用、可定制和高度可擴(kuò)展的平臺,用于進(jìn)行最先進(jìn)的機(jī)器學(xué)習(xí)研究并將研究轉(zhuǎn)化為生產(chǎn)流水線。

TensorFlow 1.x 和 2.0 的區(qū)別

自從我們最初開源 TensorFlow 以來,已經(jīng)有了許多版本和 API 迭代。隨著機(jī)器學(xué)習(xí)的快速發(fā)展,該平臺得到了極大的發(fā)展,現(xiàn)在支持具有不同需求的不同用戶組合。使用 TensorFlow 2.0,我們有機(jī)會清理和模塊化基于語義版本控制的平臺。

以下是一些較大的變化:

刪除 queue runner 以支持 tf.data

刪除圖形集合

改變變量的處理方式

符號的移動和重命名

此外,tf_contrib 將從 TensorFlow 核心存儲庫和構(gòu)建流程中刪除。TensorFlow 的 contrib 模塊已經(jīng)超出了單個(gè)存儲庫所能維護(hù)和支持的范圍。較大的項(xiàng)目最好單獨(dú)維護(hù),而較小的擴(kuò)展將逐步過渡到核心 TensorFlow 代碼。一個(gè)特別興趣小組 ( SIG ) 已經(jīng)成立,以維持和進(jìn)一步發(fā)展未來一些更重要的 contrib 項(xiàng)目。

如果您有興趣貢獻(xiàn),請回復(fù)此貼:

https://github.com/tensorflow/community/pull/37

兼容性和連續(xù)性

為了簡化向 TensorFlow 2.0 的過渡,將有一個(gè)轉(zhuǎn)換工具,它可以更新 TensorFlow 1.x Python 代碼以使用 TensorFlow 2.0 兼容 API,或者標(biāo)記代碼無法自動轉(zhuǎn)換的情況。

并非所有更改都可以完全自動完成。例如,某些已棄用的 API 沒有直接等效項(xiàng)。這就是我們引入 tensorflow.compat.v1 兼容性模塊的原因,該模塊保留了對完整 TensorFlow 1.x API(不包括 tf.contrib)的支持。 該模塊將在 TensorFlow 2.x 的生命周期內(nèi)維護(hù),并允許使用 TensorFlow 1.x 編寫的代碼保持功能。

此外,SavedModels 或存儲的 GraphDefs 將向后兼容。 使用 1.x 保存的 SavedModels 將繼續(xù)在 2.x 中加載和執(zhí)行。 但是,2.0 中的更改將意味著原始檢查點(diǎn)中的變量名稱可能會更改,因此使用 2.0 之前的檢查點(diǎn)而具有已轉(zhuǎn)換為 2.0 的代碼時(shí)可能無法保證正常工作。

有關(guān)詳細(xì)信息,請參閱 TensorFlow 2.0 指南:

https://github.com/tensorflow/docs/blob/master/site/en/r2/guide/effective_tf2.md

我們相信 TensorFlow 2.0 將為應(yīng)用開發(fā)帶來巨大的益處,我們已投入大量精力使轉(zhuǎn)換變得盡可能簡單。但是,我們也認(rèn)識到遷過渡當(dāng)前的線程需要時(shí)間,我們非常關(guān)心社區(qū)目前對學(xué)習(xí)和使用 TensorFlow 的投資。 我們將在最后的 1.x 版本中提供 12 個(gè)月的安全補(bǔ)丁,以便為現(xiàn)有用戶提供充足的時(shí)間進(jìn)行過渡并獲得 TensorFlow 2.0 的所有優(yōu)勢。

TensorFlow 2.0 的時(shí)間表

TensorFlow 2.0 預(yù)覽版將于今年年初發(fā)布。

何必要等? 您已經(jīng)可以通過使用 tf.keras 和 eager execution,預(yù)打包模型和部署庫來開發(fā) TensorFlow 2.0 了。Distribution Strategy API 目前已部分可用。

我們對 TensorFlow 2.0 以及即將到來的變化感到非常興奮。TensorFlow 已經(jīng)從一個(gè)用于深度學(xué)習(xí)的軟件庫成長為一個(gè)適用于所有機(jī)器學(xué)習(xí)類型的完整生態(tài)系統(tǒng)。TensorFlow 2.0 將簡單易用,適用于所有平臺上的所有用戶。

歡迎加入 TensorFlow 社區(qū),它不僅幫您了解最新內(nèi)容,還幫助每個(gè)人都可以使用機(jī)器學(xué)習(xí) !

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 機(jī)器學(xué)習(xí)

    關(guān)注

    66

    文章

    8349

    瀏覽量

    132315
  • python
    +關(guān)注

    關(guān)注

    55

    文章

    4767

    瀏覽量

    84375
  • tensorflow
    +關(guān)注

    關(guān)注

    13

    文章

    328

    瀏覽量

    60473

原文標(biāo)題:TensorFlow 2.0新特性解讀,Keras API成核心

文章出處:【微信號:rgznai100,微信公眾號:rgznai100】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    圓形連接器的耦合類型有哪些?

    在繁忙的操作環(huán)境中意外斷開連接。 4、卡扣式耦合:卡扣式耦合使用簡單的卡扣式機(jī)構(gòu)連接器固定到位,并通過拉動連接器來分離連接。這種類型的聯(lián)軸器通常用于空間有限的應(yīng)用,以其易用性而聞名。 5、旋入式耦合
    發(fā)表于 10-31 11:12

    Orcad中怎么批量修改屬性值字體的大小

    OrCAD Capture是一款具有簡單易用、功能特點(diǎn)豐富的電路原理圖輸入工具。由于它簡單直觀的使用模式和易用性使其成為受歡迎的設(shè)計(jì)輸入工具。同時(shí)具有元件信息管理系統(tǒng)(CIS)可以在線
    的頭像 發(fā)表于 10-09 15:24 ?357次閱讀
    Orcad中怎么批量修改屬性值字體的大小

    Memcached介紹和詳解

    ,Memcached可以顯著減輕后端數(shù)據(jù)庫和Web服務(wù)器的負(fù)載。 Memcached作為一個(gè)高性能的內(nèi)存緩存系統(tǒng),通過緩存經(jīng)常訪問的數(shù)據(jù)來提高應(yīng)用性能,減少數(shù)據(jù)庫負(fù)載。它的簡單性、高性能、分布式架構(gòu)和易用性
    發(fā)表于 07-17 15:58

    S7協(xié)議讀取西門子S7-200 Smart PLC數(shù)據(jù)

    西門子S7-200 Smart PLC因其穩(wěn)定性和易用性而廣泛應(yīng)用。通過使用S7協(xié)議,可以實(shí)現(xiàn)對PLC數(shù)據(jù)的高效讀取和控制。本文詳細(xì)介紹如何使用S7協(xié)議讀取西門子S7-200 Smart PLC的數(shù)據(jù)。
    的頭像 發(fā)表于 07-11 11:55 ?4511次閱讀
    S7協(xié)議讀取西門子S7-200 Smart PLC數(shù)據(jù)

    tensorflow和pytorch哪個(gè)更簡單?

    TensorFlow和PyTorch都是用于深度學(xué)習(xí)和機(jī)器學(xué)習(xí)的開源框架。TensorFlow由Google Brain團(tuán)隊(duì)開發(fā),而PyTorch由Facebook的AI研究團(tuán)隊(duì)開發(fā)。 易用性
    的頭像 發(fā)表于 07-05 09:45 ?702次閱讀

    tensorflow和pytorch哪個(gè)好

    。 生態(tài)系統(tǒng) :擁有龐大的社區(qū)和豐富的資源,包括TensorFlow Hub、TensorBoard等工具。 易用性 :對于初學(xué)者來說,TensorFlow的學(xué)習(xí)曲線可能相對較陡
    的頭像 發(fā)表于 07-05 09:42 ?603次閱讀

    tensorflow簡單的模型訓(xùn)練

    在本文中,我們詳細(xì)介紹如何使用TensorFlow進(jìn)行簡單的模型訓(xùn)練。TensorFlow是一個(gè)開源的機(jī)器學(xué)習(xí)庫,廣泛用于各種機(jī)器學(xué)習(xí)任務(wù),包括圖像識別、自然語言處理等。我們將從安裝
    的頭像 發(fā)表于 07-05 09:38 ?472次閱讀

    keras模型轉(zhuǎn)tensorflow session

    在這篇文章中,我們討論如何Keras模型轉(zhuǎn)換為TensorFlow session。 Keras和TensorFlow簡介 Keras是一個(gè)高級神經(jīng)網(wǎng)絡(luò)API,它提供了一種
    的頭像 發(fā)表于 07-05 09:36 ?437次閱讀

    SOLIDWORKS教育版本的易用性

    在數(shù)字化和智能化的教育時(shí)代背景下,三維設(shè)計(jì)軟件在教學(xué)領(lǐng)域的應(yīng)用越來越廣泛。SOLIDWORKS教育版本作為一款專門針對教育領(lǐng)域設(shè)計(jì)的三維建模軟件,以其優(yōu)越的易用性贏得了廣泛的認(rèn)可。
    的頭像 發(fā)表于 07-04 17:11 ?230次閱讀

    如何使用Python進(jìn)行神經(jīng)網(wǎng)絡(luò)編程

    。 為什么使用Python? Python是一種廣泛使用的高級編程語言,以其易讀和易用性而聞名。Python擁有強(qiáng)大的庫,如TensorFlow、Keras和PyTorch,這些庫提供了構(gòu)建和訓(xùn)練神經(jīng)網(wǎng)絡(luò)的工具。 神經(jīng)網(wǎng)絡(luò)的基
    的頭像 發(fā)表于 07-02 09:58 ?335次閱讀

    論RISC-V的MCU中UART接口的重要

    有效地傳輸大量數(shù)據(jù),從而改善外部設(shè)備的性能。這使得RISC-V的MCU在需要實(shí)時(shí)數(shù)據(jù)交互和處理的場景中表現(xiàn)出色,如遠(yuǎn)程控制、遠(yuǎn)程監(jiān)控等應(yīng)用。 低成本和易用性 : UART接口具有低成本的優(yōu)勢,因?yàn)樗?/div>
    發(fā)表于 05-27 15:52

    溫度測試儀的穩(wěn)定性和易用性

    溫度測試儀是一種廣泛應(yīng)用于科研、工業(yè)生產(chǎn)和日常生活中的重要儀器,主要用于精確測量物體或環(huán)境的溫度。這種設(shè)備以其高度的準(zhǔn)確、穩(wěn)定性和易用性,為眾多領(lǐng)域提供了有力的技術(shù)支持。 溫度測試儀的工作原理主要
    的頭像 發(fā)表于 03-25 11:26 ?383次閱讀
    溫度測試儀的穩(wěn)定性<b class='flag-5'>和易用性</b>

    SOLIDWORKS 2024:專注設(shè)計(jì) 提高工作效率

    在當(dāng)今高度競爭的制造業(yè)環(huán)境中,設(shè)計(jì)工程師需要一款強(qiáng)大且有效的設(shè)計(jì)工具,以快速、準(zhǔn)確地實(shí)現(xiàn)產(chǎn)品設(shè)計(jì)。SOLIDWORKS正是這樣一款滿足這一需求的CAD軟件。它不僅提供了豐富的設(shè)計(jì)工具,還通過其強(qiáng)大的功能和易用性,幫助工程師專注
    的頭像 發(fā)表于 01-29 14:19 ?415次閱讀
    SOLIDWORKS 2024:<b class='flag-5'>專注</b><b class='flag-5'>于</b>設(shè)計(jì) 提高工作效率

    如何使用TensorFlow構(gòu)建機(jī)器學(xué)習(xí)模型

    在這篇文章中,我逐步講解如何使用 TensorFlow 創(chuàng)建一個(gè)簡單的機(jī)器學(xué)習(xí)模型。
    的頭像 發(fā)表于 01-08 09:25 ?895次閱讀
    如何使用<b class='flag-5'>TensorFlow</b>構(gòu)建機(jī)器學(xué)習(xí)模型

    簡單易用的TVS如何在發(fā)展

    保護(hù)的選擇,低成本和易用性讓TVS在絕大多數(shù)保護(hù)里成為了第一選擇。 ? 穩(wěn)定易用的TVS ? TVS瞬態(tài)電壓抑制管,也叫瞬態(tài)電壓抑制二極管,是一種高效能保護(hù)元器件,其作用是在兩極受到反向瞬態(tài)高能量時(shí)候能夠吸收浪涌,對后級電路形成有效
    的頭像 發(fā)表于 12-26 00:24 ?1427次閱讀