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()' 方法在訓練資料時重疊資料預處理和模型執行操作。
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP