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,現在卻更易理解和使用。
a = tf.constant([1, 2])
b = tf.constant([3, 4])
print(a + b)
# returns: tf.Tensor([4 6], shape=(2,), dtype=int32)
TensorFlow 2.0 使用 Keras 作為開發者的核心體驗。在 2.0 中,您可以如常使用 Keras,利用 Sequential API 構建模型,然後使用 “compile” 和 “fit”。tensorflow.org 中所有這些熟悉的 “tf.keras” 示例均可在 2.0 中實現 “開箱即用”。
Keras 的 “fit()” 適用於很多情況,但是,需要更高靈活性的開發者現在可以有更多選擇。我們來看一下 此示例 中以 TensorFlow 2.0 風格編寫的自定義訓練迴圈:
def train_one_step(model, optimizer, x, y):
with tf.GradientTape() as tape:
logits = model(x)
loss = compute_loss(y, logits)
grads = tape.gradient(loss, model.trainable_variables)
optimizer.apply_gradients(zip(grads, model.trainable_variables))
compute_accuracy(y, logits)
return loss
def train(model, optimizer):
train_ds = mnist_dataset()
step = 0
loss = 0.0
for x, y in train_ds:
step += 1
loss = train_one_step(model, optimizer, x, y)
if tf.equal(step % 10, 0):
tf.print('Step', step, ': loss',
loss, '; accuracy', compute_accuracy.result())
return step, loss, accuracy
60s測試:你是否適合轉型人工智慧?
https://edu.csdn.net/topic/ai30?utm_source=cxrs_bw
注:此示例 連結
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” 子句。
@tf.function
def train(model, optimizer):
train_ds = mnist_dataset()
step = 0
loss = 0
accuracy = 0
for x, y in train_ds:
# 如上所述,包括 “if” 和“print()”
return step
這段程式碼並不會受註釋影響,但我們會將其編譯到可在 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點為大家講解視訊/影像增強技術。
推薦閱讀:
相關文章
- TensorFlow 2.0 要來啦!
- Hyperledger Fabric 2.0 Alpha釋出了!
- Element Plus 正式版釋出啦!??
- CukeTest Mac桌面版正式釋出啦Mac
- OCP2.5版本釋出啦!
- 部落格園主題——atum2.0升級釋出啦
- 【物聯大師】正式版釋出啦
- TensorFlow換logo釋出2.0版,攜手吳恩達等推兩門訓練課程Go吳恩達
- Dubbo 版 Swagger 來啦!Dubbo-Api-Docs 釋出SwaggerAPI
- 重回鐵王座!時隔5年!Quill 2.0 終於釋出啦🎉UI
- VS Code外掛開發中文文件-v2.0釋出啦!
- Mesa 18.2.8釋出啦
- Bundler 2.0 釋出
- Istio釋出WebAssembly外掛的alpha版本Web
- ThinkCMFX 1.2 釋出啦,URL美化來啦
- 阿里雲私服釋出啦阿里
- Ant Design Amiya 釋出啦~???
- TensorFlow 1.11.0 已正式釋出!
- inMap 2.0 重磅釋出!
- 【譯】Flutter 2.0 正式版釋出,全平臺 StableFlutter
- Asahi Linux Alpha 釋出:首個支援蘋果 M 系列晶片的 Linux 發行版Linux蘋果晶片
- 〔譯〕TypeScript 2.0 正式釋出TypeScript
- polarphp 0.0.1 alpha 釋出:全新 PHP 執行時環境PHP
- 團隊作業5——測試與釋出(Alpha版本)
- 《動手學深度學習》TensorFlow2.0版本深度學習
- Linux檔案型別釋出啦!Linux型別
- MAUI候選版本3釋出啦UI
- ClickHouse ORM 3.x 釋出啦ORM
- 【必看】TensorFlow 2.4.0 候選版本釋出
- Cloudarrow V2.0 正式釋出!Cloud
- XD to Flutter 2.0 現已釋出!Flutter
- 團隊作業5-測試與釋出(Alpha版本)
- 【版本釋出公告】HMS Core 6.6.0來啦
- 微軟正式釋出Azure Functions 2.0微軟Function
- ? Hyperf 2.0 釋出!想象的開端!
- Hyperf 2.0 釋出!想象的開端!
- TensorFlow模型部署到伺服器---TensorFlow2.0模型伺服器
- BookStack v2.0 Beta 版釋出,實現 BookChat 微信小程式介面微信小程式