【问题标题】:Measure expected time to execute any function测量执行任何功能的预期时间
【发布时间】:2017-08-14 07:02:39
【问题描述】:

通常在机器学习中,训练会消耗大量时间,虽然这是可以衡量的,但只能在训练结束后进行。

是否有一些方法可用于估计完成训练(或一般而言,任何功能)可能需要的时间,例如before_call

当然,它取决于机器,更多取决于输入,但基于算法将调用的所有 IO 的近似值,基于简单输入,然后缩放到实际输入的大小。像这样?

PS - JS、Ruby 或任何其他 OO 语言
PPS - 我看到在 Oracle 中有一种方法,described here。太棒了。它是怎么做的?

【问题讨论】:

    标签: algorithm performance time machine-learning


    【解决方案1】:

    如果您没有设置任何时间/步数限制(这将是微不足道的),则一般而言无法估计所需时间。

    例如,神经网络训练基本上是一个全局高维优化的问题。在此任务中,您试图为给定的损失函数找到这样的参数集,它将返回最小的错误。这个任务属于NP-complete类,很难解决。常用的方法是随机改变一些参数一个很小的值,以期提高整体性能。它在实践中效果很好,但所需的运行时间可能因问题而异。我建议您阅读有关NP-completnessstochastic gradient descentoptimisation 的一般信息。

    【讨论】:

      【解决方案2】:

      令 Ci 为第 i 个学习步骤的复杂度。设 Pi 是在第 i 步或之前学习要学习的事物的概率。设 k 为 Pk > 0.5 的步长。

      在这种情况下,复杂度 C 是

      C = sum(Pi, i=1,k)

      问题是k很难找到。在这种情况下,存储一组先前学习的相似模式并计算它们的平均步数是一个好主意,这将是中位数。如果集合足够大,它将非常准确。

      Pi = 通过步骤 i 学习事物的实例数 / 实例总数

      【讨论】:

        猜你喜欢
        • 2015-07-25
        • 1970-01-01
        • 2023-03-09
        • 2022-06-19
        • 1970-01-01
        • 2018-03-06
        • 2015-01-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多