簡體   English   中英

深度學習 Denoisy Model 與 imageDataGenerator

[英]deep learning Denoisy Model with imageDataGenerator

我有這個代碼:

epochs =50
batch_size = 5
validation_split = 0.2


datagen = tf.keras.preprocessing.image.ImageDataGenerator(validation_split=validation_split )


train_generator = datagen.flow(
    X_train_noisy, y_train_denoisy, batch_size=batch_size, 
    subset='training'
)

val_generator = datagen.flow(
    X_train_noisy, y_train_denoisy, batch_size=batch_size,
    subset='validation'
)

history = model.fit(train_generator,
         steps_per_epoch=(len(X_train_noisy)*(1-validation_split)) // batch_size, epochs=epochs,
                    validation_data = val_generator, validation_steps=(len(X_train_noisy)*validation_split)//batch_size)

X_train_noisy 和 y_train_denoisy 是 ndarray ([20,512,512,1]) pe 但我得到這個錯誤:

訓練和驗證子集在拆分后具有不同數量的類

我該如何解決?

謝謝!

可能發生的情況是,當數據被拆分以進行訓練和驗證時,選擇用於驗證的文件集不包括一個或多個類中的任何文件。 當您的數據集很小時,可能會發生這種情況。 嘗試將validation_split 增加到更大的值,比如5,看看問題是否消失。 它應該。 然后減小驗證拆分的大小,直到錯誤再次發生。 這將確定您可以使用的最小拆分值。 請記住拆分是隨機的,因此請將拆分值設置為高於最小值。 另一種(更好的)替代方法是使用 sklearn train_test_split 拆分數據。 這個 function 有一個參數 stratify 可以拆分數據,但確保所有類都包含在兩個組件中。 請參閱下面的代碼

from sklearn.model_selection import train_test_split
X_train_noisy, X_valid_noisy, y_train_denoisy, y_valid_denoisy=train_test_split(X_train_noisy,
       y_train_denoisy, test_size=validation_split, 
      shuffle=True, random_state=123, 
      stratify=y_train_denoisy)

現在在 model.fit 中使用這些拆分變量

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM