我看过各种文章/指南以及Udemy课程,建议优化通过GridSearchCV来训练Keras模型的时期数是一个好主意。
也就是说,如果您使用GridSearchCV训练模型,则该方法没有考虑到这一点,而是在比较不同模型时仅考虑最后一个时期。而当您为200和400个纪元执行GridSearchCV时,它将训练200个纪元的模型,然后从头开始为400个纪元训练模型。
因此,据我所见,使用GridSearchCV可以优化您所需要的纪元数:
我的问题是:
谢谢。
答案 0 :(得分:1)
查看EarlyStopping Keras回调。 当参数化指标未在某个时期内得到改善时,提早停止回调将停止训练,并始终返回使所选指标最大化的模型。另外,根据您的用例,耐心kwarg应该会很有用。
在此处检查文档:https://keras.io/callbacks/
要找到最佳的超参数,请检查Keras调谐器:https://github.com/keras-team/keras-tuner
答案 1 :(得分:0)
您甚至可以结合使用Keras Tuner和提早停止的回调,这样您可以同时优化多个超参数。
在定义调谐器搜索功能时,您可以添加回调:
import tensorflow as tf
tuner.search(
train_data,
validation_data=validation_data,
epochs=number_of_epochs,
callbacks=[tf.keras.callbacks.EarlyStopping(patience=1)]
)
使用Keras Tuner,您可以选择不同的调谐器。
图书馆文档中有示例,或者您也可以查看此tutorial on how to use Keras Tuner for hyperparameter tuning。