如何使用 Python 和 TensorFlow 建立特徵提取器?


TensorFlow 可以透過使用緩衝預取來建立特徵提取器。這是透過設定 trainable=False 來實現的。

閱讀更多: 什麼是 TensorFlow,以及 Keras 如何與 TensorFlow 協同工作來建立神經網路?

包含至少一層卷積層的神經網路稱為卷積神經網路。我們可以使用卷積神經網路來構建學習模型。

影像分類遷移學習背後的直覺是,如果一個模型在一個大型且通用的資料集上進行訓練,那麼這個模型可以有效地作為視覺世界的通用模型。它已經學習了特徵對映,這意味著使用者不必從頭開始訓練一個大型模型在一個大型資料集上。

TensorFlow Hub 是一個包含預訓練 TensorFlow 模型的儲存庫。TensorFlow 可以用來微調學習模型。

我們將瞭解如何使用 TensorFlow Hub 中的模型與 tf.keras,使用 TensorFlow Hub 中的影像分類模型。完成後,可以執行遷移學習來微調模型以適應自定義影像類別。這是透過使用預訓練的分類器模型來獲取影像並預測它是什麼來完成的。這無需任何訓練即可完成。

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

示例

AUTOTUNE = tf.data.AUTOTUNE
train_ds = train_ds.cache().prefetch(buffer_size=AUTOTUNE)
print("The dimensions of data")
for image_batch, labels_batch in train_ds:
print(image_batch.shape)
print(labels_batch.shape)
break

程式碼來源 −https://www.tensorflow.org/tutorials/images/transfer_learning_with_hub

輸出

The dimensions of data
(32, 224, 224, 3)
(32,)

解釋

  • TFHub 分發不需要頂部分類層的模型。
  • 它們可以用於遷移學習。
  • 可以使用來自 tfhub.dev 的任何相容影像特徵向量模型。
  • 可以使用 trainable=False 建立特徵提取器。
  • 這可以用來凍結特徵提取器層中的變數。
  • 這樣做是為了確保訓練只修改新的分類器層。
  • 它將為每個影像返回一個 1280 長度的向量。

更新於:2021年2月25日

瀏覽量:181

啟動您的職業生涯

透過完成課程獲得認證

開始學習
廣告