每日最新頭條.有趣資訊

TensorFlow 2.0新鮮出爐!新版本,新架構,新特性

新智元報導

來源:TensorFlow

編輯:金磊、小芹、張乾

【新智元導讀】TensorFlow2.0終於問世,Alpha版可以搶先體驗。新版本主打簡單易用可擴展,大大簡化API,最後,連logo也改了。

TensorFlow 2.0終於來了!

今天凌晨,谷歌在加州舉辦TensorFlow開發者峰會(TensorFlow Dev Summit),正式發布2.0版本。

這場發布會有幾大亮點:

TensorFlow 2.0Alpha版發布,用戶現在可以搶先體驗;

2.0版本具有簡易性、更清晰、擴展性三大特徵,大大簡化API;

提高了TensorFlow LiteTensorFlow.js部署模型的能力;

發布會還把TensorFlow目前的家底透露了一遍:目前TF在全球已經有超過4100萬的下載次數,社區有超過1800多個貢獻者。

儘管官方沒有透露中國社區的情況,但是發布會現場展示一張全球地圖,根據圖中的用戶分布情況可以推測,目前TF中國應該是僅次於美國和歐洲的第三大地區。

另外一個值得注意的變化是,從2.0開始,TensorFlow的logo也不一樣,從類似積木的形狀變成了兩個分開的字母“T”和“F”,或許也意味著減少冗余,看上去更簡潔。

簡單易用可擴展,TF2.0迎來新架構

TensorFlow 已經發展為世界上最受歡迎和被廣泛採用的機器學習平台之一,自2015年問世,並在去年11月迎來三周歲生日。

之前開發者反饋,希望TensorFlow能夠簡化API、減少冗余並改進文檔和示例。這次2.0發布,聽取了開發者的建議,因此新版本有以下三大特點:簡單、強大、可拓展。

基於這三大特點,TensorFlow 2.0也有新架構,如下面的簡化概念圖所示:

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

使用 Keras 和 eager execution,輕鬆構建模型

在任意平台上實現生產環境的穩健模型部署

為研究提供強大的實驗工具

通過清理廢棄的 API 和減少重複來簡化 API

下面詳細介紹TF2.0的新特性。

易用至上,TensorFlow 2.0 Alpha發布

這次TensorFlow的一些列更新,重點就在於:讓你使用得更加簡單。

TensorFlow 2.0發布以後,訓練的流程將變得十分簡潔:

主要流程就是:數據集成和轉換模型構建訓練保存模型。

當然,TensorFlow也秉承著“哪兒都可以部署”的原則,使其在應用方面更加靈活和方便:

下面是TensorFlow2.0在這次更新中的幾大亮點:

TensorFlow Alpha

更易用:諸如tf.keras等高級API將更易於使用;並且Eager execution將成為默認設置。例如:

更清晰:刪除了重複的功能;不同API的調用語法更加一致、直觀;兼容性更加完善。

更靈活:提供完整的低級API;可在tf.raw_ops中訪問內部操作;提供變量、checkpoint和層的可繼承接口。

當然,TensorFlow 2.0 Alpha版本從安裝上便十分的簡單,僅需一句話:

而Eager execution 與 “@tf.function”作為核心升級重點,接下將會對其如何協同工作進行做詳細介紹。

其中一個最明顯的變化是,TensorFlow 是 “Eager 優先”,這意味著 op 在調用後會立即運行。在 TensorFlow 1.x 中,使用者可能會先構圖,然後通過 “tf.Session.run()” 執行圖的各個部分。

TensorFlow 2.0 從根本上簡化了 TensorFlow 的使用 — 同樣出色的 op,現在卻更易理解和使用。

TensorFlow 2.0 使用 Keras 作為開發者的核心體驗。在 2.0 中,可以如常使用 Keras,利用 Sequential API 構建模型,然後使用 “compile” 和 “fit”。tensorflow.org 中所有這些熟悉的 “tf.keras” 示例均可在 2.0 中實現 “開箱即用”。

Keras 的 “fit()” 適用於很多情況,但是,需要更高靈活性的開發者現在可以有更多選擇。來看一下如下示例中以 TensorFlow 2.0 風格編寫的自定義訓練循環:

此示例採用 Autograd 風格的 GradientTape,並通過優化器手動應用你的梯度。在編寫具有複雜內部運作的自定義訓練循環(譬如在強化學習中)或進行研究(輕鬆幫您落實提高優化器效率的新想法)時,這特別有幫助。

“Eager execution” 還有助於調試和監控運行中的代碼,可以使用 Python 調試程序檢查變量、層及梯度等對象。在訓練循環中,使用 “if”、“for” 和 “print()” 等 Python 語句。

一旦代碼運行正常,便會想要獲得圖表優化和效率。為此,可以利用裝飾器 “@tf.function” 封裝 “train”。“tf.function” 中內置 Autograph,因此無需任何特殊操作便可獲取以用圖表效率運行的 “if” 或 “for” 子句。

這段代碼並不會受注釋影響,但會將其編譯到可在 GPU、TPU 上輕鬆運行的圖表中,或將其保存至 “SavedModel” 留待後用。

針對這對代碼,尤為有趣之處在於,通過在 “@tf.function” 中封裝 “train()”,“train_one_step()”、“compute_loss()” 和 “compute_accuracy()” 也會自動進行轉換。也可選擇在 “@tf.function” 中僅封裝部分運算,從而獲得所需行為。

此外,TensorFlow 2.0 完全支持 Estimator。

tensorflow.org/alpha 鏈接

https://www.tensorflow.org/alpha

高級API變化

TensorFlow 2.0 在API上可謂是下足了功夫,在這個版本中,高級API將十分“易於擴展”且“擴展地很容易”:

值得注意的是,尤其是對諸如RNN layers等神經網絡的高級API做了優化,用戶還可以對其自定義。

可謂是開發者福音。

升級

TensorFlow 2.0 將包含許多 API 變更,例如,對參數進行重新排序、重新命名符號和更改參數的默認值。手動執行所有這些變更不僅枯燥乏味,而且容易出錯。

為簡化變更過程並讓開發者盡可能順暢地過渡到 TensorFlow 2.0,TensorFlow 工程團隊創建了實用程序tf_upgrade_v2,可將舊代碼轉換至新 API。

tf_upgrade_v2 鏈接

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

TensorFlow.js v1.0

TensorFlow for Javascript已經有300,000次下載和100個貢獻者。 今天TensorFlow.js的1.0版本包括性能改進。

例如瀏覽器中MobileNet v1推理的9倍提升。 還有針對Web開發人員的新現成模型和更廣泛的平台支持。

TensorFlow Lite:超20億移動設備部署使用

TensorFlow Lite 是一個為移動和嵌入式設備打造的輕量級、跨平台解決方案

這樣一個輕量級的解決方案很有必要,因為機器學習越來越多地轉移到終端設備,如手機、汽車、可穿戴設備等。在這樣的設備上使用 ML 有很多限制,如有限的計算能力、有限的記憶體、電池限制等,TensorFlow Lite 可以很大程度上解決這些限制。

一個驚人的事實:已經有20 億移動設備部署使用了 TensorFlow Lite。

說明,TensorFlow Lite有很多國內外客戶……

網易有道技術總監林會傑作為 “為什麽選擇 TensorFlow Lite” 的代表,受邀上台介紹了有道翻譯應用 TensorFlow Lite 取得的成果。

TensorFlow Lite 四大主題:

可用性(Usability):拿來即用

性能(Performance):模型執行速度更快

優化(Optimization):讓你的模型更小、更快

文檔(Documentation):有很多資源

可用性:部署簡單,拿來即用

保存模型,轉換到TF Lite,就是這麽簡單。

新的 TensorFlow Select 功能讓模型轉換到 TensorFlow Lite 更簡單。

性能:在可用的硬體條件下,讓模型執行盡可能快

有多快呢?訓練 MobileNet v1,CPU、GPU 和 Edge TPU 下推理速度分別提升了1.9倍、7.7 倍和 62 倍

優化:讓模型更小、更快

優化表現:

文檔:

One More Thing:

TensorFlow Lite 工程師 Pete Warden 上台介紹了一個非常酷的 “小玩意”:

是一個名為珊瑚 (Coral)的小型開發板,一款可以構建和試驗 AI 設備的硬體。

它的原理類似樹莓派,但使用了定製的 Google 處理器,專為 AI 設計。沒錯,在這個小小的板上,你可以運行 TensorFlow。

Warden 展示了一個小 demo:

說一個特定的單詞,Coral 板上黃色的小燈會應聲亮起來。

模型只有 20KB 大小,運行使用不到 100KB 的 RAM 和 80KB Flash。

谷歌表示:“Coral 提供了一個完整的本地 AI 工具包,可以輕鬆地將你的想法從原型變成到產品。”

像樹莓派一樣,可以期待更多使用 Coral 開發的有趣的事情。

售價 149.99 美元,傳送門:

https://coral.withgoogle.com/products/

更多閱讀

【加入社群】

新智元AI技術+產業社群招募中,歡迎對AI技術+產業落地感興趣的同學,加小助手微信號:aiera2015_2入群;通過審核後我們將邀請進群,加入社群後務必修改群備注(姓名 - 公司 - 職位;專業群審核較嚴,敬請諒解)

獲得更多的PTT最新消息
按讚加入粉絲團