深度學習-71: Tensorflow的架構、模型、視覺化和案例庫
深度學習-71: Tensorflow的架構、模型、視覺化和案例庫
深度學習原理與實踐(開源圖書)-總目錄,建議收藏,告別碎片閱讀!
文字介紹Tensorflow的架構,Tensorflow內建資料集,Tensorflow內建模型、內建視覺化支援和相關線上資源。Tensorflow一個高度模組化的神經網路庫,支援GPU和CPU。TensorFlow是一個使用資料流圖進行數值計算的開源軟體庫。TensorFlow最初是由研究人員和工程師在Google機器智慧研究組織的Google Brain團隊開發的,目的是進行機器學習和深度神經網路研究。 該系統通用性足以適用於各種其他領域。
1 Tensorflow的架構
TensorFlow最初是由研究人員和工程師在Google機器智慧研究組織的Google Brain團隊開發的,目的是進行機器學習和深度神經網路研究。 該系統通用性足以適用於各種其他領域。
TensorFlow是一個使用資料流圖進行數值計算的開源軟體庫。 圖形節點表示數學運算,而圖形邊緣表示在它們之間流動的多維資料陣列(張量)。 這種靈活的體系結構使您可以將計算部署到桌面,伺服器或移動裝置中的一個或多個CPU或GPU,而無需重寫程式碼。 TensorFlow還包括TensorBoard,一種資料視覺化工具包。
Tensoerflow支援的高階特性:
- 高度的靈活性:通過構件計算圖能實現任意目的的計算
- 高可移植性(Portability):Tensorflow 在CPU和GPU上執行,比如說可以執行在臺式機、伺服器、手機移動裝置等等。
- 將科研和產品聯絡在一起
- 自動求微分:基於梯度的機器學習演算法會受益於Tensorflow自動求微分的能力。
- 多語言支援:Tensorflow 有一個合理的c++使用介面,也有一個易用的python使用介面來構建和執行你的graphs。
- 效能最優化:由於Tensorflow 給予了執行緒、佇列、非同步操作等以最佳的支援,能發揮硬體全部潛能。
Tensorflow的原理和架構,見下圖。
2 Tensorflow的內建資料集
2.1 波斯頓房價迴歸資料集
- 資料集取自卡內基梅隆大學維護的StatLib庫。
from tensorflow.python import keras
(x_train, y_train), (x_test, y_test) = keras.datasets.boston_housing.load_data()
2.2 IMDB電影影評情感分類
- 訓練集:25000條評論,正面評價標為1,負面評價標為0
- 測試集:25000條評論
from tensorflow.python import keras
(x_train, y_train), (x_test, y_test) = keras.datasets.imdb.load_data(path="imdb.npz",
2.3 路透社新聞專線主題分類
總資料集:11228條新聞專線,46個主題。
from tensorflow.python import keras
(x_train, y_train), (x_test, y_test) = keras.datasets.reuters.load_data(path="reuters.npz", ....)
2.4 手寫數字MNIST資料集
- 訓練集:60000張灰色影象,大小28*28,共10類(0-9)
- 測試集:10000張灰色影象,大小28*28
from tensorflow.python import keras
(x_train, y_train), (x_test, y_test) = keras.datasets.mnist.load_data()
2.5 時尚MNIST資料庫(鞋服裙帽)
- MNIST已經被玩壞了!用時尚MNIST替換吧!
- 訓練集:60000張灰色影象,大小28*28,共10類(0-9)
- 測試集:10000張灰色影象,大小28*28
from tensorflow.python import keras
(x_train, y_train), (x_test, y_test) = keras.datasets.mnist.load_data()
2.6 CIFAR10小影象
- 訓練集:50000張彩色影象,大小32*32,被分成10類
- 測試集:10000張彩色影象,大小32*32
from tensorflow.python import keras
(x_train, y_train), (x_test, y_test) = keras.datasets.cifar10.load_data()
2.7 CIFAR100小影象
- 訓練集:50000張彩色影象,大小32*32,被分成100類
- 測試集:10000張彩色影象,大小32*32
from tensorflow.python import keras
(x_train, y_train), (x_test, y_test) = keras.datasets.cifar100.load_data()
3 Tensorflow的內建模型
-
官方模型是使用TensorFlow的高階API的示例模型的集合。 它們旨在通過最新的穩定TensorFlow API進行良好維護,測試並保持最新。 它們還應進行合理優化,以便在保持易讀性的同時實現快速效能。 我們特別推薦新的TensorFlow使用者從這裡開始。
-
研究模型是研究人員在TensorFlow中實施的大量模型。 它們沒有得到官方支援或在釋出分支中可用; 由個體研究人員來維護模型和/或提供問題和拉取請求的支援。
Tensorflow支援Keras的API。Keras提供了預訓練的深度學習模型,這些模型可用於預測,特徵提取和微調。Keras介面的模型使用方法,請參考文件Keras Application。
使用Keras Applications和2012年ILSVRC ImageNet驗證集上的TensorFlow後端獲得top-k錯誤,可能與原始版本略有不同。除NASNetLarge(331x331),InceptionV3(299x299),InceptionResNetV2(299x299)和Xception(299x299)外,所有型號的輸入大小均為224x224。
使用ImageNet訓練的權重進行影象分類的Keras模型:
- Xception
- VGG16
- VGG19
- ResNet50
- InceptionV3
- InceptionResNetV2
- MobileNet
- DenseNet
- NASNet
- MobileNetV2
資料說明: Top-1和Top-5準確度是指模型在ImageNet驗證資料集上的效能。
資料來源:keras-team/keras-applications
4 Tensorflow視覺化支援
你將使用TensorFlow進行的計算 - 比如訓練一個龐大的深度神經網路 - 可能是複雜和令人困惑的。為了更容易理解,除錯和優化TensorFlow程式,我們提供了一套名為TensorBoard的視覺化工具。您可以使用TensorBoard視覺化您的TensorFlow圖,繪製有關圖表執行的量化指標,並顯示其他資料,如通過它的影象。
使用TensorBoard的第一步從TensorFlow執行中獲取資料,獲取資料的操作成為摘要操作或彙總操作。摘要操作包含2個步驟: 它們生成的Tensors包含序列化的protobufs,它們寫入磁碟併發送到TensorBoard。TensorBoard支援的摘要操作包括:
- tf.summary.scalar
- tf.summary.image
- tf.summary.audio
- tf.summary.text
- tf.summary.histogram
關於模型視覺化的線上案例:
- Feature Visualization: How NN build up their understanding of images
- Deconvolution and Checkerboard Artifacts
- The Building Blocks of Interpretability
5 線上Tensorflow案例、課程
系列文章
參考文獻
- [1] Ian Goodfellow, Yoshua Bengio. Deep Learning. MIT Press. 2016.
- [2] 焦李成等. 深度學習、優化與識別. 清華大學出版社. 2017.
- [3] 佩德羅·多明戈斯. 終極演算法-機器學習和人工智慧如何重塑世界. 中信出版社. 2018.
- tensorflow/tensorflow
- tensorflow/models