1. 程式人生 > >深度學習-71: Tensorflow的架構、模型、視覺化和案例庫

深度學習-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的原理和架構,見下圖。

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 Model Zoo

  • 官方模型是使用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

Keras內建模型的準確度
資料說明: 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

關於模型視覺化的線上案例:

5 線上Tensorflow案例、課程

系列文章

參考文獻

  • [1] Ian Goodfellow, Yoshua Bengio. Deep Learning. MIT Press. 2016.
  • [2] 焦李成等. 深度學習、優化與識別. 清華大學出版社. 2017.
  • [3] 佩德羅·多明戈斯. 終極演算法-機器學習和人工智慧如何重塑世界. 中信出版社. 2018.
  • tensorflow/tensorflow
  • tensorflow/models