【问题标题】:How to compute machine learning training computation time and what are reference values?如何计算机器学习训练计算时间,参考值是多少?
【发布时间】:2019-01-18 08:54:48
【问题描述】:

在互联网上的许多论坛和文档中,我们都听说过机器学习算法的“短”和“长”学习和预测计算时间。例如,与神经网络相比,决策树算法的计算时间较短。但从未提及的是什么是“短”,什么是“长”。

您能否澄清一下您将使用哪个单位来测量计算时间?也许“每个样本的秒数”?什么是参考值,以便我可以预测需要 1 小时、1 天还是 1 周?

谢谢 亲切的问候 G

【问题讨论】:

  • 这是你应该自己衡量的东西,因为至少对于神经网络来说,它取决于 CPU/GPU、网络架构、超参数和输入维度。
  • 您的问题在这里不太适合,但值得提出。有关一般问题,请查看"Which site?"
  • 但是,我在 Stack Overflow 应用程序范围内回答部分问题...

标签: algorithm machine-learning time artificial-intelligence training-data


【解决方案1】:

首先,任何基准数据都严重依赖于您忽略提供的信息:您所在的领域、使用的拓扑、输入大小和输出复杂性。培训时间的长短取决于所有这些因素、实施框架以及您所在的平台。

例如,我可以完全训练

model class: 4-node linear neural network 
model: AND gate
framework: none; Python / SciKit
platform: 32-node Intel Broadwell(tm) box

在三个迭代中,远远不到一秒。

但是,鉴于

model class: CNN 
model: ResNet-50
framework: TensorFlow
platform: Single-card, 4-core Intel Haswell(tm) box

培训需要几天时间。

我们表达速度的单位是那些方便该领域的观众的单位。对于处理静止图像,我们通常指定图像大小并以图像/秒(有时称为“赫兹”)报告。对于音频输入,它通常是平均剪辑长度和剪辑/秒——但如果处理时间为 O(n),则通常以标量形式给出。机器翻译以每秒的单词或句子(典型长度)表示。

对于数据中心管理人员来说,培训也以电力的形式进行:训练一个特定的模型需要多少千瓦时?


您要求提供参考值:再次阅读发布指南。标准(即流行和稳定)模型的参考值在线发布;您应该在发布之前研究这些内容,以帮助集中您的问题。一旦您充分了解您的应用程序以根据您自己的环境调整这些数字(针对客户优化),它们就会很有用。

例如,假设您尝试在 100 类 ImageNet 数据库上训练 ResNet-20。但是,您只能在您拥有的硬件上找到 ResNet-50 的数据。幸运的是,ResNet 在深度缩放方面大致是线性的:您可以使用可比较的 ResNet-50 训练时间并乘以 20/50 来获得估计值。我的经验表明,您应该期望训练时间为 ResNet-50 时间的 40-50%。

同样,如果您找到的数字仅适用于 1000 类 ImageNet,则乘以 100/1000 即可得到预期的训练时间。


但是,总体而言,您的一般问题没有真正的答案,除了开始进行研究、运行您的个人模型并了解它的运行方式、扩展方式、它如何响应硬件架构的变化、输入大小、模型拓扑、重点训练等。

【讨论】:

    猜你喜欢
    • 2013-05-22
    • 1970-01-01
    • 2017-11-12
    • 2017-07-11
    • 1970-01-01
    • 2016-05-16
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    相关资源
    最近更新 更多