如何使用 Keras 和 Python 提取和重用層圖中的節點?


Keras 是作為 ONEIROS 專案(開放式神經電子智慧機器人作業系統)研究的一部分而開發的。Keras 是一個用 Python 編寫的深度學習 API。它是一個高階 API,具有高效的介面,有助於解決機器學習問題。它執行在 TensorFlow 框架之上。它旨在幫助快速進行實驗。它提供了開發和封裝機器學習解決方案所必需的基本抽象和構建塊。

它具有高度的可擴充套件性,並具有跨平臺功能。這意味著 Keras 可以執行在 TPU 或 GPU 叢集上。Keras 模型也可以匯出到 Web 瀏覽器或手機上執行。

Keras 已經存在於 TensorFlow 軟體包中。可以使用以下程式碼行訪問它。

import tensorflow
from tensorflow import keras

Keras 函式式 API 有助於建立比使用順序 API 建立的模型更靈活的模型。函式式 API 可以處理具有非線性拓撲的模型,可以共享層,並可以處理多個輸入和輸出。深度學習模型通常是一個包含多個層的定向無環圖 (DAG)。函式式 API 有助於構建層的圖。

我們正在使用 Google Colaboratory 來執行以下程式碼。Google Colab 或 Colaboratory 有助於透過瀏覽器執行 Python 程式碼,並且無需任何配置即可免費訪問 GPU(圖形處理單元)。Colaboratory 是構建在 Jupyter Notebook 之上的。以下是使用 Keras 提取和重用層圖中節點的程式碼片段:

示例

print("VGG19 model with pre-trained weights")
vgg19 = tf.keras.applications.VGG19()
features_list = [layer.output for layer in vgg19.layers]
feat_extraction_model = keras.Model(inputs=vgg19.input, outputs=features_list)

img = np.random.random((1, 224, 224, 3)).astype("float32")
print("Create feature-extraction model")
extracted_features = feat_extraction_model(img)

程式碼來源 - https://www.tensorflow.org/guide/keras/functional

輸出

VGG19 model with pre-trained weights
Downloading data from https://storage.googleapis.com/tensorflow/kerasapplications/vgg19/vgg19_weights_tf_dim_ordering_tf_kernels.h5
574717952/574710816 [==============================] - 6s 0us/step
Create feature-extraction model

解釋

  • 由於層圖是靜態資料結構,因此可以訪問它。

  • 這就是為什麼函式式模型可以作為影像繪製的原因。

  • 還可以訪問和重用中間層(節點)的啟用。

  • 這對於特徵提取非常有用。

  • 我們將使用 VGG19 模型,該模型使用 ImageNet 預訓練權重。

  • 可以透過查詢圖資料結構來獲得這些中間啟用。

  • 這些特徵可用於建立一個新的特徵提取模型,該模型返回中間層啟用的值。

更新於: 2021年1月18日

176 次檢視

啟動您的 職業生涯

透過完成課程獲得認證

開始
廣告