當前位置:
首頁 > 新聞 > TensorFlow 2.0 新鮮出爐!新版本,新架構,新特性

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 可以很大程度上解決這些限制。

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入群;通過審核後我們將邀請進群,加入社群後務必修改群備註(姓名 - 公司 - 職位;專業群審核較嚴,敬請諒解)


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 新智元 的精彩文章:

吳恩達首秀小公舉:Hello AI World!
強推!《PyTorch中文手冊》來了

TAG:新智元 |