如何使用 Python 中的 Keras 從模型的單個層提取特徵?


Tensorflow 是 Google 提供的一個機器學習框架。它是一個開源框架,與 Python 結合使用以實現演算法、深度學習應用程式等等。它用於研究和生產目的。它具有最佳化技術,有助於快速執行復雜的數學運算。這是因為它使用 NumPy 和多維陣列。這些多維陣列也稱為“張量”。該框架支援使用深度神經網路。

可以使用以下程式碼行在 Windows 上安裝“TensorFlow”包:

pip install tensorflow

張量是 TensorFlow 中使用的資料結構。它有助於連線流圖中的邊。此流圖稱為“資料流圖”。張量只不過是多維陣列或列表。

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

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

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

import tensorflow
from tensorflow import keras

我們使用 Google Colaboratory 來執行以下程式碼。Google Colab 或 Colaboratory 幫助透過瀏覽器執行 Python 程式碼,無需任何配置,並可免費訪問 GPU(圖形處理單元)。Colaboratory 是建立在 Jupyter Notebook 之上的。以下是程式碼片段:

示例

print("Feature extraction from one layer only")
initial_model = keras.Sequential(
   [
      keras.Input(shape=(250, 250, 3)),
      layers.Conv2D(32, 5, strides=2, activation="relu"),
      layers.Conv2D(32, 3, activation="relu", name="my_intermediate_layer"),
      layers.Conv2D(32, 3, activation="relu"),
   ]
)
print("Feature extraction from the model")
feature_extractor = keras.Model(
   inputs=initial_model.inputs,
   outputs=initial_model.get_layer(name="my_intermediate_layer").output,
)
print("The feature extractor method is called on test data")
x = tf.ones((1, 250, 250, 3))
features = feature_extractor(x)

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

輸出

Feature extraction form one layer only 
Feature extraction form the model
The feature extractor method is called on test data

解釋

  • 模型架構準備就緒後,對其進行訓練。

  • 訓練完成後,對其進行評估。

  • 將此模型儲存到磁碟。

  • 可以在需要時恢復此模型。

  • 可以使用多個 GPU 來加速模型的訓練。

  • 構建模型後,它的行為類似於函式式 API 模型。

  • 這表示每一層都有輸入和輸出。

  • 在這裡,顯式地從單個層提取特徵。

更新於: 2021年1月18日

2K+ 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.