前言
3 月 7 日淩晨,谷歌 TensorFlow 開發者峰會(TensorFlow Dev Summit 2019)在美國加州舉行。自今年 1 月份谷歌放出 TensorFlow 2.0 開發者預覽版,開發者們如今終于迎來了萬衆期待的 TensorFlow 2.0 Alpha 版的正式釋出。也許是為了呼應谷歌此前将 TensorFlow 2.0 稱作重要的「裡程碑」,TensorFlow 的 Logo 也從過去的三維積木狀變成了扁平化風格的「T」和「F」字母拼接。
新Logo
除了釋出 TensorFlow 2.0 Alpha 版,谷歌在本次大會上還釋出了「一籮筐」圍繞 TensorFlow 的其他軟體的更新和最新成果,包括:經過更新的 TensorFlow Lite 1.0、TensorFlow js 1.0 和 Swift for TensorFlow 0.2 ,端到端的機器學習平台 TensorFlow Extended (TFX) 以及兩款面向隐私問題的 TensorFlow Federated 開源架構和 TensorFlow Privacy 開源庫。
另外值得一提的是,随着 TensorFlow 2.0 Alpha 版的到來,谷歌還釋出了兩門深度學習課程:Udacity 的《TensorFlow 深度學習簡介》和 Deeplearning.ai 的《TensorFlow:從基礎知識到掌握專業化》系列課程。
TensorFlow 2.0 Alpha 版:強調簡單易用性
今年 1 月份,谷歌就放出 TensorFlow 2.0 開發者預覽版,引起了開發者們的滿腔期待。而不到兩個月後随之而來的 TensorFlow 開發者峰會,其最受關注的環節莫過于 TensorFlow 2.0 Alpha 版的釋出。
據悉,針對 TensorFlow 2.0,TensorFlow 團隊聽取了開發者關于「簡化 API、減少備援并改進文檔和示例」的建議來進行設計,将 TensorFlow 2.0 Alpha 版的更新重點放在簡單和易用性上,主要進行了以下更新:
1、使用 Keras 和 eager execution,輕松建立簡單的模型并執行
2、在任何平台上的實作生産環境的模型部署
3、為研究提供強大的實驗工具
4、通過清除不推薦使用的 API 和減少重複來簡化 API
同時,在過去的幾年中,谷歌陸續在 TensorFlow 中添加了許多元件,而 TensorFlow 2.0 Alpha 版中則将這些元件将打包成了一個綜合性平台,支援從訓練到部署的機器學習工作流,其新架構的簡化概念圖如下所示:
新架構
而更簡單化的新架構更是帶來了更加簡潔的工作流,即:先使用 tf.data 建立的輸入管道讀取訓練資料;然後使用 tf.keras 或 Premade Estimators 建構、訓練和驗證模型;接着用 eager execution 進行運作和調試;再使用 Distribution Strategy API 在不更改模型定義的情況下,基于 CPU、GPU 等不同硬體配置上分布和訓練模型;最後将模型導出到 SavedModel 儲存。其工作流如下圖所示:
工作流圖
此外,TensorFlow 2.0 Alpha 版還帶來了一些新的功能,允許研究人員和進階使用者使用豐富的擴充進行實驗,如 Ragged Tensors、TensorFlow Probability、Tensor2Tensor 等。
為了簡化代碼遷移到 TensorFlow 2.0 的過程,谷歌還提供一個轉換工具和指導文檔用來更新 TensorFlow 1.x Python 代碼以使用與 TensorFlow 2.0 相容的 API,并将無法自動轉換的代碼标記出來。
在 API 方面的更新也是 TensorFlow 2.0 Alpha 版的一大亮點,其将 Keras API 指定為建構和訓練深度學習模型的進階 API,并舍棄掉其他 API。另外值得一提的是,Keras 提供了幾個模型建構 API,例如可以利用 Sequential API 構模組化型,然後使用「compile」和「fit」,tensorflow.org 中所有常見的」tf.keras」示例均可在 2.0 中便捷使用。
TensorFlow 2.0 Alpha 版的另一個最明顯的改變就是将用于機器學習的實驗和研究平台——Eager execution 設定為預設優先模式,這就意味着任何運算在調用後就會立即運作,進而不再需要預先定義靜态圖,就可以通過「tf.Session.run()」執行圖的各個部分,讓執行過程變得更加簡單和快捷。
此外,Eager execution 還有助于原型制作、調試和監控運作中的代碼,使用者可使用 Python 調試程式檢查變量、層及梯度等對象,并利用裝飾器「@tf.function」中内置的 Autograph 直接擷取圖表優化和效率,這整個過程不僅能夠保留 TensorFlow1.x 基于靜态計算圖執行的所有優點:性能優化、遠端執行,以及序列化、導出和部署的能力,同時還增加了用簡單 Python 表達程式的靈活性和易用性。
整體而言,TensorFlow 2.0 Alpha 版具有以下三大特性:
第一,易用性,其主要展現在使用 tf.keras 作為進階 API,且将 Eager execution 作為預設模式。
第二,簡潔性,其主要展現在 TensorFlow 2.0 Alpha 版删除了重複的功能,并且不同 API 的調用文法也變得一緻、直覺,同時它的相容性更加完善。
第三,靈活性,其主要展現在 TensorFlow 2.0 Alpha 版提供了完整的低級 API,并可以在 tf.raw_ops 中通路内部操作,同時還提供了變量、checkpoint 以及層的可繼承接口。
開發者峰會上,TensorFlow 工程總監 Rajat Monga 也向大家呈現了 TensorFlow 這幾年來的「戰績」:自 2015 年 11 月推出以來,TensorFlow 總下載下傳量超過 4100 萬次,送出了 5 萬多次代碼更新,目前已有 1800 多名來自全世界的貢獻者。
而随着更加順從民意、使用更加簡單的 TensorFlow 2.0 Alpha 版的釋出,TensorFlow 又将收獲怎樣的成績呢?大家可以拭目以待。
TensorFlow 2.0 Alpha 版官方網址:https://www.tensorflow.org/alpha
TensorFlow 2.0 Alpha 版開源位址:https://github.com/orgs/tensorflow/projects/4
https://www.toutiao.com/a6666606736964583939/