如何使用Tensorflow對增強資料的新資料進行預測?


訓練完成後,可以將構建的模型用於增強的新資料。這可以透過“預測”方法來實現。需要驗證的資料首先載入到環境中。然後,透過將其從影像轉換為陣列來對其進行預處理。接下來,在此陣列上呼叫預測方法。

閱讀更多: 什麼是 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 來減少過擬合。這被認為是一種正則化形式。這有助於使模型接觸到更多的資料方面,從而幫助模型更好地泛化。

當將 dropout 應用於某一層時,它會在訓練過程中隨機丟棄該層中的若干輸出單元。這是透過將啟用函式設定為 0 來完成的。Dropout 技術將分數作為輸入值(如 0.1、0.2、0.4 等)。這個數字 0.1 或 0.2 基本上表示應用層中 10% 或 20% 的輸出單元是隨機的。

資料增強透過使用隨機變換增強現有示例來生成額外的訓練資料,這些隨機變換將產生看起來可信的影像。以下是一個示例

示例

print("The model built is being used to predict new data")
sunflower_url = "https://storage.googleapis.com/download.tensorflow.org/example_images/592px-Red_sunflower.jpg"
sunflower_path = tf.keras.utils.get_file('Red_sunflower', origin=sunflower_url)
img = keras.preprocessing.image.load_img(
   sunflower_path, target_size=(img_height, img_width)
)
img_array = keras.preprocessing.image.img_to_array(img)
img_array = tf.expand_dims(img_array, 0) # Create a batch
predictions = model.predict(img_array)
score = tf.nn.softmax(predictions[0])
print(
   "This image likely belongs to {} with {:.2f} percent confidence."
   .format(class_names[np.argmax(score)], 100 * np.max(score))
)

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

輸出

The model built is being used to predict new data
Downloading data from https://storage.googleapis.com/download.tensorflow.org/example_images/592px-Red_sunflower.jpg
122880/117948 [===============================] - 0s 0us/step
A batch is created
This image likely belongs to sunflowers with 99.07 percent confidence.

解釋

  • 先前構建的模型用於從未見過的新的資料。
  • 使用“預測”方法預測資料集的相關值。
  • 做出預測後,計算置信度水平。
  • 這將顯示在控制檯上。

更新於: 2021年2月22日

356 次瀏覽

啟動您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.