通常在机器学习中,培训会耗费大量时间,但这是可衡量的,但仅限于培训结束后。
是否有一些方法可用于估算完成培训所需的时间(或通常,任何功能),例如before_call
?
当然,这取决于机器和输入上的更多信息,但基于简单输入,然后缩放到实际输入的大小,基于算法将调用的所有IO的近似值。像这样的东西?
PS - JS,Ruby或任何其他OO语言
PPS - 我在Oracle中看到了一种方法,described here。太棒了。怎么做?
答案 0 :(得分:1)
在这种情况下,复杂性,C是
C = sum(Pi,i = 1,k)
问题是k很难找到。在这种情况下,最好有一组先前学过的类似模式并计算它们的平均步数,这将是中位数。如果该组足够大,那么它将非常准确。
Pi =通过步骤i /实例总数学习事物的实例数
答案 1 :(得分:0)
如果您没有设置任何时间/步数限制(这将是微不足道的),则无法估计所需时间一般。
例如,神经网络训练基本上是全局高维优化的问题。在这个任务中,你试图找到给定损失函数的这样一组参数,它将返回最小的错误。此任务属于 NP-complete 类,很难解决。常见的方法是将一些参数随机改变一个较小的值,希望它能提高整体性能。它在实践中运行良好,但是所需的运行时间因问题而异。我建议您阅读一般的NP-completness,stochastic gradient descent和optimisation。