TensorFlow 2.0 Alpha 版發布啦!
【AI科技大本營導語】在今天舉行的 2019 年 TensorFlow 開發者峰會上,谷歌宣布了其針對研究和生產的開源機器學習庫的一些更新。TensorFlow 2.0 alpha 提供即將發生的變化的預覽,旨在讓初學者更容易使用 ML。
文 /Wolff Dobson 和 Josh Gordon
TensorFlow 2.0 注重易用性,提供有 API 供初學者和資深人士用來創建機器學習模型。在 TensorFlow 2.0 的新功能 和 標準化 Keras 等近期發布的文章中,我們介紹過它的新功能和平台的發展方向。
我們在 TensorFlow 開發者峰會 上宣布了 TensorFlow 2.0 Alpha 版,用戶現在可以搶先體驗。
註:TensorFlow 開發者峰 鏈接
https://www.tensorflow.org/dev-summit
入門指南
要快速上手 TensorFlow 2.0 Alpha 版,最佳途徑是前往 TensorFlow 的新網站。您可以在 tensorflow.org/alpha 上找到 Alpha 版的教程和指南。Alpha 版文檔中的每個教程均會自動下載並安裝 TensorFlow 2.0 Alpha 版,並且後續將提供更多內容!
註:tensorflow.org/alpha 鏈接
https://www.tensorflow.org/alpha
我們建議您先查看面向初學者和資深人士的 「Hello World」 示例,然後再閱讀 Effective TensorFlow 2.0 等指南。
初學者示例 使用的是 Keras Sequential API,這是最簡單的 TensorFlow 2.0 入門方法。
資深人士示例 展示如何命令式地編寫正向傳遞、如何使用 GradientTape 編寫自定義訓練循環,以及如何使用 tf.function 自動編譯代碼(僅需一行代碼!)
註:初學者示例 鏈接
https://colab.research.google.com/github/tensorflow/docs/blob/master/site/en/r2/tutorials/quickstart/beginner.ipynb
資深人士示例 鏈接
https://colab.research.google.com/github/tensorflow/docs/blob/master/site/en/r2/tutorials/quickstart/advanced.ipynb
除此之外,我們還提供有各類新 指南,包括:
重要的 AutoGraph 指南(讓您能夠獲得圖表的全部性能和可移植性,而無需編寫圖表級代碼)
代碼升級 指南(通過轉換腳本可以方便地將 TensorFlow 1.x 代碼轉換為 2.0 代碼)
其他有關 Keras 的初期指南
註:指南 鏈接
https://github.com/tensorflow/docs/tree/master/site/en/r2/guide
AutoGraph 鏈接
https://github.com/tensorflow/docs/blob/master/site/en/r2/guide/autograph.ipynb
Kera 鏈接
https://github.com/tensorflow/docs/tree/master/site/en/r2/guide/keras
若您想要查看更改的內容,也可參閱 API 參考 修訂版(現在符號的使用大大減少)。請注意,雖然我們正在積極開發 TensorFlow 2.0,但 tensorflow.org 的落地頁仍默認為 1.x 文檔。若您打算研究 API 參考,請務必選擇合適的 TensorFlow 版本。
註:API 參考 鏈接
https://www.tensorflow.org/versions/r2.0/api_docs/python/tf
安裝
若要安裝 Alpha 版,我們建議您創建一個新的虛擬環境並使用 「pip install --upgrade --pre tensorflow」 或 「tensorflow-gpu」(需要 CUDA 10)。我們會較為頻繁地更新此版本,添加新功能。您亦可將 「!」 添加至命令 「!pip install --upgrade --pre tensorflow」,在 Colab 中試用。(以上所有教程和指南均會自動安裝最新版本)。
註:Colab 鏈接
https://colab.research.google.com/notebooks/welcome.ipynb#recent=true
函數,而非會話
下面我們深入介紹 2.0 中的這兩個功能如何協同工作: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 風格編寫的自定義訓練循環:
註:此示例 鏈接
https://github.com/tensorflow/docs/blob/master/site/en/r2/guide/autograph.ipynb
此示例採用 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。請參閱新教程,了解提升樹和模型理解的相關內容。
註:教程 鏈接
https://github.com/tensorflow/docs/tree/master/site/en/r2/tutorials/estimators
(本文為AI科技大本營轉載文章,轉載請聯繫原作者)
公開課推薦
今晚8點
拯救老電影!愛奇藝資深演算法工程師蔣紫東老師今晚8點為大家講解視頻/圖像增強技術。
※暴雪遊戲遭遇AI「實力」坑隊友:四處遊走,還不參與戰鬥
※拿下中科大的計算機課程全靠它了!
TAG:AI科技大本營 |