3 回答

TA貢獻1848條經驗 獲得超2個贊
答案 1:如果錯誤僅在您使用較小的數據集時發生,那么您很可能使用的數據集小到在驗證集中沒有單個樣本。
因此它無法計算驗證損失。
答案 2:我對上一個答案投了贊成票,因為它讓我有見識來驗證 fit_generator 函數的數據和輸入,并找出問題的根本原因??傊?,在我的數據集很小的情況下,我計算了validation_steps 和steps_per_epoch,結果是零(0)導致了錯誤。
我想,也許對 Keras 團隊來說,更好的長期答案是當這些值為零時在 fit_generator 中導致錯誤/異常,這可能會導致更好地理解如何解決這個問題。
答案 3:我們發生錯誤是因為我們忘記在 fit() 方法中設置validation_data,而使用了'callbacks':[keras.callbacks.EarlyStopping(monitor='val_loss', patient=1)],
導致錯誤的代碼是:
self.model.fit(
x=x_train,
y=y_train,
callbacks=[keras.callbacks.EarlyStopping(monitor='val_loss', patience=1)],
verbose=True)
Adding validation_data=(self.x_validate, self.y_validate), in fit() fixed:
self.model.fit(
x=x_train,
y=y_train,
callbacks=[keras.callbacks.EarlyStopping(monitor='val_loss', patience=1)],
validation_data=(x_validate, y_validate),
verbose=True)
回答 4:由于數據集較小而出現此錯誤,為了解決此問題,增加火車時間并將火車集拆分為 80:20。
參考:https ://inneka.com/ml/kr/keras-early-stopping-callback-error-val_loss-metric-not-available/
添加回答
舉報