【问题标题】:dataset training: converging on parameter tuning and pre-trained models数据集训练:融合参数调整和预训练模型
【发布时间】:2019-10-25 22:02:02
【问题描述】:

我最近完成了一个“相当不错”的 TF2/keras 图像识别模型,它使用多个层、SGD 优化并从 MobileNetv2 预训练模型开始。

我可以永远对此进行调整:添加/删除层、不同的优化算法、学习率、动量、各种数据集扩充等。我什至没有考虑从其他预训练模型开始。我将优化器从 SGD 更改为 ADAM(应该会更好,对吧?),结果稍微不准确。

那么,我如何收敛到更好的预训练模型、参数和值?这只是反复试验吗?训练我的模型(10 个 epoch)大约需要 45 分钟,当我调整这么多变量时,这似乎永远不会发生。

我想我可以编写一个 python 框架来插入各种训练属性,然后让它运行几天。

【问题讨论】:

    标签: python tensorflow keras


    【解决方案1】:

    我不知道这是否是一个合适的 SO 问题。

    这个问题称为超参数调优(或优化)。您可以决定手动执行此操作,也可以使用搜索技术(如对所有参数进行网格搜索)。

    还有更先进的技术使用贝叶斯优化来自动化这个过程。

    在 ML 社区中进行超参数优化的一种常见且成熟的工具称为 hyperopt。

    https://github.com/hyperopt/hyperopt

    Hyperopt 是一个 Python 库,用于对尴尬的搜索空间进行串行和并行优化,其中可能包括实值、离散和条件维度。

    另外,由于您在问题中标记了 Keras,因此有一个名为 auto keras 的工具也可以搜索超参数 https://autokeras.com/

    Auto-Keras 提供自动搜索深度学习模型的架构和超参数的功能。

    【讨论】:

      猜你喜欢
      • 2020-05-21
      • 2020-05-27
      • 2023-02-12
      • 2017-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-12
      • 2018-10-23
      相关资源
      最近更新 更多