TensorFlow 2.0 Alpha 版來了!吳恩達配套課程同步上線

作者 | 發布日期 2019 年 03 月 08 日 15:40 | 分類 Google , 科技教育 , 軟體、系統 follow us in feedly


3 月 7 日凌晨,Google TensorFlow 開發者峰會(TensorFlow Dev Summit 2019)在美國加州舉行。自今年 1 月 Google 放出 TensorFlow 2.0 開發者預覽版,開發者終於迎來萬眾期待的 TensorFlow 2.0 Alpha 版正式發表。也許是為了呼應 Google 之前將 TensorFlow 2.0 稱做重要的「里程碑」,TensorFlow 的 Logo 也從過去的三維積木變成扁平化風格的「T」和「F」字母相接。

除了發表 TensorFlow 2.0 Alpha 版,Google 在本次大會還發表「一籮筐」圍繞 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 版到來,Google 還發表了兩門深度學習課程:Udacity 的「TensorFlow 深度學習簡介」和 Deeplearning.ai 的「TensorFlow:從基礎知識到掌握專業化」。

TensorFlow 2.0 Alpha 版:強調簡單易用性

今年 1 月,Google 放出 TensorFlow 2.0 開發者預覽版,引起開發者的滿腔期待。不到兩個月後的 TensorFlow 開發者峰會,最受關注的環節莫過於 TensorFlow 2.0  Alpha 版發表。

據悉,針對 TensorFlow 2.0,TensorFlow 團隊聽取了開發者關於「簡化 API、減少多餘並改進檔案和示例」的建議來設計,將 TensorFlow 2.0 Alpha 版更新重點放在簡單和易用性,主要有以下更新:

  • 使用 Keras 和 eager execution,輕鬆建立簡單的模型並執行。
  • 在任何平台達成生產環境的模型部署。
  • 為研究提供強大的實驗工具。
  • 清除不建議使用的 API 和減少重複來簡化 API。

過去幾年,Google 陸續在 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 的過程,Google 還提供轉換工具和指導檔案,用來更新 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 總下載量超過 4,100 萬次,提交 5 萬多次程式碼更新,目前已有 1,800 多名全世界的貢獻者。

隨著更順從民意、使用更簡單的 TensorFlow 2.0  Alpha 版發表,TensorFlow 又將收穫怎樣的成績呢?大家可拭目以待。

註:針對不同等級的開發者,TensorFlow 2.0 Alpha 版設定了兩版教程:
  • 初學者版:使用 Keras Sequential API,這是最簡單的 TensorFlow 2.0 入門。
  • 資深人士版:展示如何指令式編寫正向遞迴、如何使用 GradientTape 編寫自訂訓練迴圈,以及如何使用 tf.function 一行程式碼自動編譯程式碼。

兩門深度學習課程:配套 TensorFlow 2.0 Alpha 版

隨著 TensorFlow 2.0 Alpha 版發表,Google 還特別應景地一同發表配套深度學習課程:Deeplearning.ai 的「TensorFlow:從入門到精通」(TensorFlow: From Basics to Mastery Specialization)和優達學城的「TensorFlow 深度學習簡介」(Intro to TensorFlow for Deep Learning)。

「TensorFlow:從入門到精通」是 Deeplearning.ai 一系列實踐課程,由吳恩達參與開發並執教,目的在於幫助大家了解:

  • 如何在 TensorFlow 構建機器學習模型。
  • 利用深度神經網路和捲積神經網路構建影像辨識演算法。
  • 如何在行動裝置和網路部署模型。
  • 學習影像辨識以外的物體偵測、文件辨識等,進入等。
  • 延伸針對自訂學習/訓練的基本 API。

除了吳恩達,另一位重量級教師為 Laurence Moroney 博士。

課程分 4 週進行,內容安排為:

  • 第一週:介紹一種新的變成範例。
  • 第二週:電腦視覺簡介。
  • 第三週:利用卷積神經網路增強電腦視覺。
  • 第四週:利用真實世界的影像。

「TensorFlow 深度學習簡介」則是優達學城的免費課程,自 2016 年推出以來,已有超過 40 萬名學生參加,現在正式成為 Deeplearning.ai TensorFlow 系列課程的一部分。課程從實踐角度講解軟體深度學習知識,以及在行動裝置、雲端和瀏覽器實際執行 TensorFlow 模型,讓學生掌握建立 AI 應用所需的所有技能。

目前已更新 4 堂課,分別為:第一堂課程大綱介紹;第二堂課機器學習簡介;第三堂課訓練 MNIST 模型;第四堂課 CNN 簡介。4 堂課已全部上線,第 5 堂課還未更新。

「一籮筐」其他軟體的重大更新

正式發表 TensorFlow.js 1.0 、TensorFlow Lite 1.0

除了 TensorFlow 2.0  Alpha 版,另一亮點便是正式發表 TensorFlow.js 1.0 和 TensorFlow Lite 1.0 了。

自 2018 年發表以來,TensorFlow.js 被大量採用,下載量達 30 萬次,Github 星標數量超過 1 萬,項目貢獻者超過 100 個。本次正式發表的 TensorFlow.js 1.0 版本,在先前版本基礎上的更新包括:增加一個針對 Web 開發人員的面向影像、文件、語音等常見機器學習工作的現成模型程式庫;添加執行 JS 的更多平台,例如桌面 App、行動端區域的平台等。另外,效能有提升。

針對行動和內嵌式裝置打造的輕型級、跨平台解決方案,TensorFlow Lite 主要解決的問題是:機器學習在手機、汽車、可穿戴裝置等終端機裝置面臨有限的計算力、記憶體及電池容量等諸多限制。

自 2017 年 5 月 Google I/O 開發者大會首次提出,TensorFlow Lite 已部署到超過 20 億台行動裝置,並應用到 Google 搜尋、Google 助理、Pixel Visual Core 等諸多原生 Google 應用和服務、Google 合作夥伴的產品中。TensorFlow Lite 對Google 的重要性不言而喻,本次正式發表 TensorFlow Lite 1.0 可謂眾望所歸。

為 TensorFlow 家族再添兩位新成員

另外,Google 還為 TensorFlow 家族再添兩位新成員:TensorFlow Federated(TFF)開源框架和 TensorFlow Privacy 機器學習開源程式庫。

TensorFlow Federated(TFF)是開源框架,適用於針對分散式資料執行機器學習和其他計算。它採用聯合學習(Federated Learning,FL)的機器學習方法,可在多個用戶端訓練共用的全域模型,同時在本地儲存訓練資料。

TensorFlow Privacy 則是 TensorFlow 機器學習開源程式庫,能讓開發人員更容易培訓有強大隱私保障的 AI 模型。Google 表示,計劃將 TensorFlow Privacy 發展成培訓機器學習模型的最佳技術中心,並提供強大的隱私保障。

最後,對 2019 年度 TensorFlow 開發者峰會有興趣的讀者,可前往官網觀看影片詳閱相關資訊。

(本文由 雷鋒網 授權轉載;首圖來源:TensorFlow