TensorFlow的動態(tài)圖工具Eager怎么用?這是一篇極簡教程
去年 11 月,Google Brain 團隊發(fā)布了 Eager Execution,一個由運行定義的新接口,為 TensorFlow 這一最為流行的深度學習框架引入了動態(tài)圖機制。Eager 的出現(xiàn)使得開發(fā)變得更為直觀,從而讓 TensorFlow 的入門難度大為降低。本文介紹了使用 TensorFlow Eager 構建神經(jīng)網(wǎng)絡的簡單教程。
項目鏈接:https://github.com/madalinabuzau/tensorflow-eager-tutorials
本文旨在幫助那些希望通過 TensorFlow Eager 模式獲得深度學習實踐經(jīng)驗的人。TensorFlow Eager 可以讓你像使用 Numpy 那樣輕松地構建神經(jīng)網(wǎng)絡,其巨大優(yōu)勢是提供了自動微分(無需再手書反向傳播,(*^▽^*)!)。它還可以在 GPU 上運行,使神經(jīng)網(wǎng)絡訓練速度明顯加快。
谷歌大腦的開發(fā)團隊曾表示,Eager Execution 的主要優(yōu)點如下:
- 快速調試即刻的運行錯誤并通過 Python 工具進行整合
- 借助易于使用的 Python 控制流支持動態(tài)模型
- 為自定義和高階梯度提供強大支持
- 適用于幾乎所有可用的 TensorFlow 運算
我會努力讓每個人都能理解這份教程,因此我將盡量在無需 GPU 處理的前提下解決問題。
教程中使用的 TensorFlow 版本為 1.7 版。
開始
1. 構建一個簡單的神經(jīng)網(wǎng)絡——下圖將教你如何在一個合成生成的數(shù)據(jù)集上用 TensorFlow Eager 模式構建和訓練一個單隱藏層神經(jīng)網(wǎng)絡。
2. 在 Eager 模式中使用度量——下圖將教你針對三種不同的機器學習問題(多分類、不平衡數(shù)據(jù)集和回歸),如何使用與 Eager 模式兼容的度量。
簡單但實用的知識
3. 保存和恢復訓練好的模型——下圖將教你如何保存訓練好的模型并隨后恢復它以對新數(shù)據(jù)進行預測。
4. 將文本數(shù)據(jù)傳輸?shù)?TFRecords——下圖將教你如何把可變序列長度的文本數(shù)據(jù)存儲到 TFRecords 中。當使用迭代器讀取數(shù)據(jù)集時,數(shù)據(jù)可以在批處理中快速填充。
5. 將圖像數(shù)據(jù)傳輸?shù)?TFRecords——下圖將教你如何把圖像數(shù)據(jù)及其元數(shù)據(jù)傳輸?shù)?TFRecords 上。
6. 如何批量讀取 TFRecords 數(shù)據(jù)——下圖將教你如何從 TFRecords 中批量讀取可變序列長度數(shù)據(jù)或圖像數(shù)據(jù)。
卷積神經(jīng)網(wǎng)絡(CNN)
7. 構建一個用于情緒識別的 CNN 模型——下圖將教你使用 TensorFlow Eager API 和 FER2013 數(shù)據(jù)集從零開始構建一個 CNN 模型。在完成以后,你將能使用網(wǎng)絡攝像頭試驗自己構建的神經(jīng)網(wǎng)絡,這是一個很棒的嘗試!
循環(huán)神經(jīng)網(wǎng)絡(RNN)
08. 構建一個序列分類的動態(tài) RNN——學習如何使用可變序列輸入數(shù)據(jù)。下圖將介紹如何使用 TensorFlow Eager API 和 Stanford Large Movie Review Dataset 來構建動態(tài) RNN。
09. 構建一個時序回歸 RNN——下圖展示了如何為時序預測構建一個 RNN 模型。
【本文是51CTO專欄機構“機器之心”的原創(chuàng)文章,微信公眾號“機器之心( id: almosthuman2014)”】