尽管按照建议的步骤通过将回调添加到model.fit来保存最佳模型,但仍未保存h5文件。 诸如纪元之类的其他东西运行良好。
# fit model
callbacks = [EarlyStopping(monitor='val_loss', patience=10),
ModelCheckpoint(filepath='best_model.h5',
monitor='val_loss', save_best_only=True)]
model.fit(X, y, batch_size=128, epochs=300,callbacks=callbacks,verbose=1)
答案 0 :(得分:0)
使用
model.fit(X, y, batch_size=128, validation_split=0.1,
epochs=300,callbacks=callbacks,verbose=1)
错误::您的ModelCheckpoint
基于val_loss
,即每次发现更好的验证损失(在这种情况下为最低)都会保存模型。但是,在拟合模型时,您不会传递任何数据进行验证。这意味着没有计算验证损失,因此不保存任何模型。
在上面的代码中,validation_split=0.1
使用(X, y)
的10%作为验证数据。
还要注意,另一个回调EarlyStopping
也基于val_loss
,因此,如果没有验证数据,它将不会尽早停止。因此,要么手动将验证数据传递给fit
方法,要么使用(X, y)
的随机分割作为验证数据。