测量执行任何功能的预期时间

时间:2017-03-22 09:08:41

标签: algorithm performance time machine-learning

通常在机器学习中,培训会耗费大量时间,但这是可衡量的,但仅限于培训结束后。

是否有一些方法可用于估算完成培训所需的时间(或通常,任何功能),例如before_call

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

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

2 个答案:

答案 0 :(得分:1)

让Ci成为我学习步骤的复杂性。设Pi是在第i步或之前学习要学习的东西的概率。设k是Pk>的步骤。 0.5。

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

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

问题是k很难找到。在这种情况下,最好有一组先前学过的类似模式并计算它们的平均步数,这将是中位数。如果该组足够大,那么它将非常准确。

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

答案 1 :(得分:0)

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

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