Tensorflow 如何配置花卉資料集以提高效能?


花卉資料集在建立模型時會給出一定的準確率。如果需要配置模型以提高效能,則可以使用緩衝預取與 Rescaling 層。透過將 Rescaling 層作為 Keras 模型的一部分,可以在資料集上使用 Keras 模型應用此層。

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

我們將使用花卉資料集,其中包含數千朵花的影像。它包含 5 個子目錄,每個子目錄對應一個類別。

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

AUTOTUNE = tf.data.AUTOTUNE

train_ds = train_ds.cache().prefetch(buffer_size=AUTOTUNE)
val_ds = val_ds.cache().prefetch(buffer_size=AUTOTUNE)

num_classes = 5
print("A sequential model is built")
model = tf.keras.Sequential([
   layers.experimental.preprocessing.Rescaling(1./255),
   layers.Conv2D(32, 3, activation='relu'),
   layers.MaxPooling2D(),
   layers.Conv2D(32, 3, activation='relu'),
   layers.MaxPooling2D(),
   layers.Conv2D(32, 3, activation='relu'),
   layers.MaxPooling2D(),
   layers.Flatten(),
   layers.Dense(128, activation='relu'),
   layers.Dense(num_classes)
])

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

輸出

A sequential model is built

解釋

  • 使用緩衝預取,以便可以從磁碟生成資料,而不會阻塞 I/O。
  • 這是載入資料時的一個重要步驟。
  • '.cache()' 方法有助於在第一個 epoch 從磁碟載入影像後將其保留在記憶體中。
  • 這確保了資料集在訓練模型時不會成為障礙。
  • 如果資料集太大而無法放入記憶體,則可以使用相同的方法來建立高效能的磁碟快取。
  • '.prefetch()' 方法在訓練資料時重疊資料預處理和模型執行操作。

更新於: 2021年2月19日

154 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.