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

深度學習-74: Keras的架構、模型、視覺化和案例庫

深度學習-74: Keras的架構、模型、視覺化和案例庫

深度學習原理與實踐(開源圖書)-總目錄,建議收藏,告別碎片閱讀!

文字介紹Keras的架構,Keras內建資料集,Keras內建模型、內建視覺化支援和相關線上資源。Keras一個高度模組化的神經網路庫,支援GPU和CPU。Keras支援卷積神經網路和迴圈神經網路,以及兩者的組合。Keras 是一個用 Python 編寫的高階神經網路 API,它能夠以 TensorFlow, CNTK, 或者 Theano 作為後端執行。Keras 的開發重點是支援快速的實驗。能夠以最小的時延把你的想法轉換為實驗結果,是做好研究的關鍵。

1 Keras的架構

Keras(κέρας)在希臘語中意為號角。它來自古希臘和拉丁文學中的一個文學形象,首先出現於《奧德賽》中,夢神(Oneiroi, singular Oneiros)從這兩類人中分離出來:那些用虛幻的景象欺騙人類,通過象牙之門(Ivory/ἐλέφας)抵達地球之人,以及那些宣告未來即將到來,通過號角之門(Keras/κέρας)抵達之人。

Keras希望研發人員通過號角(Keras/κέρας)之門抵達真理的彼岸,而不是通過象牙(Ivory/ἐλέφας)之門抵達真理的彼岸。Keras 是一個用 Python 編寫的高階神經網路 API,它能夠以 TensorFlow, CNTK, 或者 Theano 作為後端執行。Keras 的開發重點是支援快速的實驗。能夠以最小的時延把你的想法轉換為實驗結果,是做好研究的關鍵。

Keras的高階特性:

  • 允許簡單而快速的原型設計(由於使用者友好,高度模組化,可擴充套件性)。
  • 同時支援卷積神經網路和迴圈神經網路,以及兩者的組合。
  • 在 CPU 和 GPU 上無縫執行。

2 Keras內建資料集

Keras內建波斯頓房價迴歸資料集、IMDB電影影評情感分類資料集、路透社新聞專線主題分類資料集、手寫數字MNIST資料集、時尚MNIST資料庫(鞋服裙帽)、CIFAR10小影象資料集和CIFAR100小影象資料集。

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 Keras內建模型

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

4 內建視覺化支援

keras.utils.vis_utils模組提供了一些繪製Keras模型的實用功能(使用graphviz)。以下例項,將繪製一張模型圖,並儲存為檔案:

keras.utils.plot_model(model, to_file='model.png')
keras.utils.print_summary(model, line_length=None, positions=None, print_fn=None)

Keras沒有提供更多視覺化的支援了。

系列文章

參考文獻