【问题标题】:Is there a way to do early-stopping and cross validation in CNTK?有没有办法在 CNTK 中进行提前停止和交叉验证?
【发布时间】:2018-10-13 16:02:29
【问题描述】:

正如标题中所问的那样,我想知道是否有可能让模型在训练期间在误差足够低的情况下提前停止 epoch,这样我就可以避免过度拟合并在每个时期猜测正确的 epoch 数打电话。

This 是我在官方文档中找到的唯一东西,但它会在 Brainscript 中使用,我对此一无所知。我正在使用 Python 3.6 和 CNTK 2.6。

另外,有没有办法在 CNTK CNN 中执行交叉验证?这怎么可能?

提前致谢。

【问题讨论】:

    标签: python-3.x image-processing deep-learning cross-validation cntk


    【解决方案1】:

    CrossValidationConfig 类告诉 CNTK 定期在验证数据集上评估模型,然后调用用户指定的回调函数,然后可用于更新学习率或返回 False 表示提前停止

    有关如何实现提前停止的示例:

    1. test_session_cv_callback_early_exit functionhere
    2. cntk.train.training_session 的源代码 here.

    【讨论】:

    • 谢谢!!您能否提供一个如何设置 CrossValidationConfig 类的示例??
    • @Miguel 2488 你可能会找到一些东西here。特别是 test_session_cv_callback_early_exit 函数。
    • 谢谢!!我会仔细看看:)
    • @Miguel 2488 检查 cntk.train.training_session 的源代码 here。似乎有一个如何实现提前停止的例子。
    • 再次感谢@agcala,这或多或少是我想要的。它有帮助:)
    【解决方案2】:

    cntk 中没有任何用于提前停止的本机实现。对于交叉验证,您可以查找 CrossValidationConfig

    【讨论】:

    • 嗨@snowflake,谢谢你的回答:)该死的,你说没有本地实现......但是有解决方法或一些手工制作的方法吗?
    • 所以通常情况下,我会将测试集的单独评估结果附加到列表中,并计算何时需要单独停止。
    • @Miguel 2488 您可以使用 CrossValidationConfig 类来执行提前停止。阅读我的答案。
    猜你喜欢
    • 2018-05-17
    • 1970-01-01
    • 2021-05-08
    • 2016-03-29
    • 1970-01-01
    • 2017-10-07
    • 2020-02-06
    • 2019-03-18
    相关资源
    最近更新 更多