TensorFlow 2.0馬上要來了,還不速來了解下新架構(gòu)?
作為全球最受歡迎的機器學習開源框架,在TensorFlow 發(fā)展的3年里,見證了機器學習和人工智能領(lǐng)域的快速發(fā)展和變化;與人類的孩子一樣,不斷學習,遭到批評,遇到對手,走向更大、更廣闊的環(huán)境。
而TensorFlow 2.0作為一個重要的里程碑,將更加關(guān)注其“易用性”,更注重使用的低門檻,旨在讓每個人都能應用機器學習技術(shù)。
那么在架構(gòu)方面,又會有何不同呢?話不多說,來看下新架構(gòu)圖:
在過去的幾年中,開發(fā)團隊為TensorFlow添加了許多組件,而在2.0版本中,這些組件將被打包成一個綜合平臺,可支持機器學習的工作流程(從訓練到部署)。正如上圖所示。
盡管新架構(gòu)中的訓練部分主要關(guān)注Python API,但是TensorFlow.js還支持訓練模型。其他語言綁定(language binding)也有不同程度的支持,包括Swift、R和Julia等。
最近,官方宣布Keras作為一個用戶友好的機器學習API標準,將成為用于構(gòu)建和訓練模型的高級API。 Keras API讓用戶可以輕松開始使用TensorFlow。尤其重要的是,Keras提供了幾個模型構(gòu)建API(順序,功能和子類),因此您可以為項目選擇正確的抽象級別。
Keras API使得上手TensorFlow非常容易。重要的是,Keras提供了幾個模型構(gòu)建API(Sequential、Functional以及Subclassing),因此用戶可以選擇正確的抽象化(abstraction)級別,TensorFlow的實現(xiàn)包含增強功能,包括eager execution、立即迭代(immediate iteration)和直觀調(diào)試(intuitive debugging),以及tf.data,用于構(gòu)建可擴展的輸入pipeline。
TensorFlow的實現(xiàn)包含增強功能,包括急切執(zhí)行,立即迭代和直觀調(diào)試,以及tf.data,用于構(gòu)建可擴展的輸入管道。
以下是一個工作流程示例:
1、使用tf.data加載數(shù)據(jù)。使用輸入管道讀取訓練數(shù)據(jù),輸入管道使用tf.data創(chuàng)建。利用tf.feature_column描述特征,如分段和特征交叉。此外還支持內(nèi)存數(shù)據(jù)的便捷輸入(如NumPy)。
2、使用tf.keras構(gòu)建、訓練并驗證模型,或者使用Premade Estimators。Keras與TensorFlow的其余部分緊密集成,因此用戶可以隨時訪問TensorFlow的函數(shù)。如線性或邏輯回歸、梯度上升樹、隨機森林等也可以直接使用(使用tf.estimatorAPI實現(xiàn))。如果不想從頭開始訓練模型,用戶也可以很快利用遷移學習來訓練使用TensorFlow Hub模塊的Keras或Estimator模型。
3、快速執(zhí)行運行和調(diào)試過程,然后使用tf.function充分利用圖形的優(yōu)勢。在默認情況下,TensorFlow 2.0按快速執(zhí)行方式運行,以便于順利調(diào)試。此外,tf.function注釋可以方便地將Python程序轉(zhuǎn)換為TensorFlow圖形。此過程保留了1.x TensorFlow基于圖形的執(zhí)行的所有優(yōu)點:性能優(yōu)化,遠程執(zhí)行以及方便序列化、導出和部署的能力,同時實現(xiàn)了在Python中表達程序的靈活性和易用性。
4、使用分布式策略進行分布式訓練。對于大型機器學習訓練任務,分布式策略API可以輕松地在不同硬件配置上分配和訓練模型,無需更改模型的定義。由于TensorFlow支持各種硬件加速器,如CPU,GPU和TPU,因此用戶可以將訓練負載分配到單節(jié)點/多加速器以及多節(jié)點/多加速器配置上(包括TPU Pod)。這個API支持多種群集化配置,也提供了在本地或云環(huán)境中部署Kubernetes群集訓練的模板。
5、導出到Saved Model。TensorFlow將對Saved Model進行標準化,作為TensorFlow服務的一部分,他將成為TensorFlow Lite、TensorFlow.js、TensorFlow Hub等格式的可互換格式。
構(gòu)建模型,如此簡單!
TensorFlow始終為生產(chǎn)提供了直接部署方式。無論是部署在服務器、邊緣設備還是Web上,TensorFlow都可以讓用戶對模型實現(xiàn)輕松訓練和部署。無論用戶使用何種語言或平臺。在TensorFlow 2.0中,我們通過標準化互換格式和API對齊來提高跨平臺和組件的兼容性。
訓練并保存模型后,可以直接在應用程序中執(zhí)行,也可以使用其中一個部署庫為其提供服務:
TensorFlow服務:TensorFlow庫,允許通過HTTP / REST或gRPC /協(xié)議緩沖區(qū)提供模型。
TensorFlow Lite:TensorFlow針對移動和嵌入式設備的輕量級解決方案提供了在Android,iOS和嵌入式系統(tǒng)(如Raspberry Pi和Edge TPU)上部署模型的功能。
TensorFlow.js:允許在JavaScript環(huán)境下部署模型,如在Web瀏覽器或服務器端通過Node.js實現(xiàn)部署。TensorFlow.js還支持使用類似Keras的API在JavaScript中定義模型并直接在Web瀏覽器中進行訓練。
TensorFlow還支持其他語言,包括C,Java,Go,C#,Rust,Julia,R等。
功能強大的面向研究的實驗環(huán)境
TensorFlow 2.0集成了許多功能,可以在不損失速度和性能的情況下定義和訓練最先進的模型:
Keras Functional API和Model Subclassing API:可以創(chuàng)建復雜的拓撲,包括使用殘差層,自定義多輸入/輸出模型以及強制寫入的前向傳遞。
自定義訓練邏輯:使用tf.GradientTape和tf.custom_gradient對梯度計算進行細粒度控制。
為了獲得更大的靈活性和可控性,低級的TensorFlowAPI是始終可用的,并可與更高級的抽象概念工具結(jié)合使用,以實現(xiàn)完全可定制的邏輯。
TensorFlow 2.0帶來了一些新增功能,允許研究人員和高級用戶進行實驗,使用豐富的擴展,如Ragged Tensors,TensorFlow Probability,Tensor2Tensor等。
除了這些功能外,TensorFlow還提供了易于執(zhí)行的簡單原型設計和調(diào)試,分布式策略API和AutoGraph,可以進行大規(guī)模訓練,并支持TPU,這些都使TensorFlow 2.0成為一個易于使用、可定制且高度可擴展的平臺,可用于實現(xiàn)最先進的技術(shù),進行機器學習研究,并將研究轉(zhuǎn)化為生產(chǎn)流程。
TensorFlow 1.x和2.0之間的差異
自從首次開源TensorFlow以來,我們已經(jīng)發(fā)布了多個版本的API迭代。隨著機器學習的快速發(fā)展,現(xiàn)在TensorFlow已經(jīng)發(fā)展壯大,支持多樣化的用戶組合,可以滿足各種需求。使用TensorFlow 2.0,用戶有機會根據(jù)語義版本控制來實現(xiàn)平臺的清理和模塊化。
以下是一些較大的變化:
移除了隊列運行器以支持tf.data。
移除了圖表集合。
變量處理方式的變化。
可對API符號進行移動和重命名
更高的兼容性和連續(xù)性
為了讓用戶向TensorFlow 2.0的遷移更加容易,我們將發(fā)布一個轉(zhuǎn)換工具,它可以對TensorFlow 1.x Python代碼進行更新,以使用TensorFlow2.0兼容的API,或者對無法自動轉(zhuǎn)換的代碼予以標記。
當然,并非所有的更改都可以完全自動完成。比如,某些已被棄用的API沒有直接的可替代對象。所以我們引入了tensorflow.compat.v1兼容性模塊,該模塊保留了對完整TensorFlow 1.x API(不包括tf.contrib)的支持。該模塊將在整個TensorFlow 2.x的生命周期內(nèi)保持維護,并允許使用TensorFlow 1.x編寫的代碼維護功能。
此外,Saved Model或保存的GraphDefs將向后兼容。使用1.x版本保存的SavedModels將繼續(xù)能夠在2.x中加載和執(zhí)行。但是,2.0中的原始檢查點中的變量名稱可能會發(fā)生更改,因此,使用已轉(zhuǎn)換為2.0版本代碼中的2.0之前版本的檢查點可能無法正常工作。
我們相信,TensorFlow 2.0將為開發(fā)者社區(qū)帶來巨大利益,為了讓這次版本轉(zhuǎn)換變得盡量簡單方便,我們投入了大量精力。
但是,我們也認識到,版本遷移需要時間,我們非常關(guān)心社區(qū)成員目前對學習和使用TensorFlow的投入。我們將在最后的1.x版本中提供12個月的安全補丁,以便為現(xiàn)有用戶提供充足的時間進行過渡,并順利獲得TensorFlow2.0的所有優(yōu)勢。
-
加速器
+關(guān)注
關(guān)注
2文章
805瀏覽量
37997 -
機器學習
+關(guān)注
關(guān)注
66文章
8436瀏覽量
132889 -
tensorflow
+關(guān)注
關(guān)注
13文章
329瀏覽量
60583
原文標題:【官方發(fā)布】一圖看懂TensorFlow 2.0新架構(gòu)
文章出處:【微信號:AI_era,微信公眾號:新智元】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論