TensorFlow 2.0 新鮮出爐!新定位:端到端開源機器學習平台
來源:TensorFlow,新智元,機器之心等
TensorFlow 2.0終於來了!
今天凌晨,谷歌在加州舉辦TensorFlow開發者峰會(TensorFlow Dev Summit),正式發布2.0版本。
這場發布會有幾大亮點:
TensorFlow 2.0Alpha版發布,用戶現在可以搶先體驗;
2.0版本具有簡易性、更清晰、擴展性三大特徵,大大簡化API;
提高了TensorFlow Lite和TensorFlow.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 倍!
優化:讓模型更小、更快
優化表現:
文檔:
Coral 開發板和 USB 加速器
比較有趣的是,今日谷歌還發布兩個全新的硬體產品:Coral 開發板和 USB 加速器。
首先介紹下 Coral。Coral 是一個構建智能設備的平台,它提供完全本地的 AI 工具箱,包括硬體組件、軟體工具,以及幫助你創造、訓練、運行神經網路的模塊。
Coral 的首個硬體組件就是之前谷歌發布的 ASIC——Edge TPU,它能為低功率設備提供極高的機器學習推理性能。例如,它能以高能效方式在 100 的 fps 下執行 MobileNet v2 這樣的視覺模型。
Coral 攝像模塊、開發板和 USB 加速器。
作為全新的開發產品,Coral 開發板是個完全集成的系統,它被設計成構建在載板上的系統模塊(SoM)。SoM 把強大的 NXP iMX8M SoC 與谷歌的 Edge TPU 協處理器(包括 Wi-Fi、藍牙、RAM 和 eMMC 存儲)融合在了一起。為了讓計算機視覺應用原型更簡單,谷歌還提供了一個攝像頭連接開發板與 MIPI 介面。
為了把 Edge TPU 加入到已有的設計中,Coral USB 加速器允許通過 USB2.0、3.0 介面輕鬆接入到任何 Linux 系統中,之後谷歌還會添加 PCIe 版本。
價格方面,Coral 開發板售價為 149.99 美元,Coral USB 加速器售價為 74.99 美元。
小結
以上就是一年一度的谷歌 TensorFlow 開發者大會上的全新發布了。總體而言,我們看到了 TensorFlow 在設計上的重大革新。這些新特徵是否讓你對它有所期待呢?
最後提一句,小編中意 PyTorch(差點與另一小編打起來)。
來自另一小編的反對
參考文章:
https://medium.com/tensorflow/introducing-tensorflow-privacy-learning-with-differential-privacy-for-training-data-b143c5e801b6
https://medium.com/tensorflow/test-drive-tensorflow-2-0-alpha-b6dd1e522b01
https://developers.googleblog.com/2019/03/introducing-coral-our-platform-for.html
TAG:AI講堂 |