繁体   English   中英

使用 GridSearchCV 优化 Keras 模型中的 epoch

[英]Optimizing epochs in Keras model with GridSearchCV

我看过各种帖子/指南以及 Udemy 课程,建议通过GridSearchCV优化用于训练 Keras 模型的时期数是一个好主意。

  1. 当你训练一个模型 400 个 epoch 时,你也训练了它 200 个。
  2. 当你训练一个模型 400 个 epoch 时,最好的 epoch 可以是 400 个中的任何一个。

也就是说,如果您使用 GridSearchCV 训练模型,则该方法不会考虑这一点,它仅在比较不同模型时考虑最后一个时期。 当您对 200 和 400 个 epoch 进行 GridSearchCV 时,它会训练一个 200 个 epoch 的模型,然后从头开始训练 400 个 epoch。

因此,正如我所见,使用 GridSearchCV 来优化您的时代数:

  1. 训练“重复”、“无用”的时代。
  2. 尽管信息可用,但实际上并未找到最佳时期数。

我的问题是:

  • 知道正在运行的时代的方法不是更有意义吗? 是否有任何理由为什么有人会在实践中使用所描述的方法?
  • 如果所描述的方法是一种糟糕的方法,而我想以更优化的方式进行这种搜索,是否有任何“标准”的方法可以做到这一点? 也许提前停止? 如果我们要优化多个超参数怎么办? 提前停止 + GridSearchCV?

谢谢你。

查看 EarlyStopping Keras 回调。 当参数化指标在 epoch 中没有改进时,提前停止回调会停止训练,并始终返回最大化所选指标的模型。 此外,根据您的用例,耐心 kwarg 应该很有用。

在此处查看文档: https : //keras.io/callbacks/

要找到最佳超参数,请检查 Keras 调谐器: https : //github.com/keras-team/keras-tuner

您甚至可以结合使用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,您有不同的选项来选择 Tuner。

库文档有示例,或者您也可以查看有关如何使用 Keras Tuner 进行超参数调整的教程

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM