如何使用TensorFlow將增強資料擬合到模型中?


增強模型可以使用‘compile’方法進行編譯,該方法也接受驗證資料和時期數(訓練步驟數)作為引數。

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

我們將使用Keras Sequential API,它有助於構建一個順序模型,用於處理簡單的層堆疊,其中每一層只有一個輸入張量和一個輸出張量。

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

影像分類器使用keras.Sequential模型建立,資料使用preprocessing.image_dataset_from_directory載入。資料可以高效地從磁碟載入。會識別過擬合併應用技術來減輕它。這些技術包括資料增強和dropout。共有3700張花卉影像。此資料集包含5個子目錄,每個類有一個子目錄。

分別是雛菊、蒲公英、玫瑰、向日葵和鬱金香。

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

當訓練樣本數量較少時,模型會從訓練樣本中的噪聲或不需要的細節中學習。這會對模型在新樣本上的效能產生負面影響。

由於過擬合,模型將無法在新資料集上很好地泛化。有很多方法可以避免過擬合。我們可以使用dropout技術來克服過擬合。透過在網路中引入dropout可以減少過擬合。這被認為是一種正則化形式。這有助於模型接觸資料的更多方面,從而幫助模型更好地泛化。以下是一個示例

示例

print("Train the model to fit the given data")
epochs = 15
history = model.fit(
   train_ds,
   validation_data=val_ds,
   epochs=epochs
)

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

輸出

Train the model to fit the given data
Epoch 1/15
92/92 [==============================] - 104s 1s/step - loss: 1.5371 - accuracy: 0.3103 - val_loss: 1.1487 - val_accuracy: 0.5313
Epoch 2/15
92/92 [==============================] - 102s 1s/step - loss: 1.1414 - accuracy: 0.5087 - val_loss: 1.3204 - val_accuracy: 0.5286
Epoch 3/15
92/92 [==============================] - 102s 1s/step - loss: 1.0260 - accuracy: 0.5991 - val_loss: 0.9823 - val_accuracy: 0.6281
Epoch 4/15
92/92 [==============================] - 103s 1s/step - loss: 0.9431 - accuracy: 0.6466 - val_loss: 0.9937 - val_accuracy: 0.6417
Epoch 5/15
92/92 [==============================] - 104s 1s/step - loss: 0.8294 - accuracy: 0.6706 - val_loss: 0.8365 - val_accuracy: 0.6866
Epoch 6/15
92/92 [==============================] - 103s 1s/step - loss: 0.7584 - accuracy: 0.7101 - val_loss: 0.8471 - val_accuracy: 0.6717
Epoch 7/15
92/92 [==============================] - 102s 1s/step - loss: 0.7323 - accuracy: 0.7225 - val_loss: 0.7949 - val_accuracy: 0.6853
Epoch 8/15
92/92 [==============================] - 104s 1s/step - loss: 0.7197 - accuracy: 0.7168 - val_loss: 0.8422 - val_accuracy: 0.6839
Epoch 9/15
92/92 [==============================] - 103s 1s/step - loss: 0.7209 - accuracy: 0.7229 - val_loss: 0.7502 - val_accuracy: 0.7193
Epoch 10/15
92/92 [==============================] - 104s 1s/step - loss: 0.6334 - accuracy: 0.7590 - val_loss: 0.8248 - val_accuracy: 0.7016
Epoch 11/15
92/92 [==============================] - 104s 1s/step - loss: 0.6052 - accuracy: 0.7737 - val_loss: 0.7400 - val_accuracy: 0.7153
Epoch 12/15
92/92 [==============================] - 104s 1s/step - loss: 0.5713 - accuracy: 0.7831 - val_loss: 0.7424 - val_accuracy: 0.7098
Epoch 13/15
92/92 [==============================] - 105s 1s/step - loss: 0.5627 - accuracy: 0.7875 - val_loss: 0.7028 - val_accuracy: 0.7275
Epoch 14/15
92/92 [==============================] - 103s 1s/step - loss: 0.5254 - accuracy: 0.8029 - val_loss: 0.6900 - val_accuracy: 0.7371
Epoch 15/15
92/92 [==============================] - 103s 1s/step - loss: 0.5187 - accuracy: 0.7984 - val_loss: 0.7839 - val_accuracy: 0.7153

解釋

  • 模型經過訓練以擬合訓練資料。
  • 訓練進行了15個步驟/迭代/時期。
  • 這是藉助‘fit’方法完成的。

更新於:2021年2月22日

81 次檢視

啟動您的職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.