如何使用TensorFlow和預訓練模型為模型新增分類頭?


可以使用 TensorFlow 和預訓練模型透過 `GlobalAveragePooling2D` 方法為模型新增分類頭,該方法被賦值給一個變數。此變數用於輸入資料的特徵批次。

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

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

我們將瞭解如何藉助來自預訓練網路的遷移學習來對貓和狗的影像進行分類。影像分類遷移學習背後的直覺是,如果一個模型在一個大型且通用的資料集上進行訓練,則此模型可以有效地用作視覺世界的通用模型。它將學習特徵對映,這意味著使用者不必從頭開始,在一個大型資料集上訓練一個大型模型。

閱讀更多: 如何預訓練定製模型?

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

示例

print("Adding a classification head")
global_average_layer = tf.keras.layers.GlobalAveragePooling2D()
feature_batch_average = global_average_layer(feature_batch)
print(feature_batch_average.shape)

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

輸出

Adding a classification head
(32, 1280)

解釋

  • 預測是從特徵塊生成的,平均超過 5x5 個空間位置。

  • 這是使用 `tf.keras.layers.GlobalAveragePooling2D` 層完成的。

  • 此層有助於將特徵轉換為每張影像的單個 1280 元素向量。

更新於:2021年2月25日

166 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始
廣告