计算神经网络训练时间的算法?

数据挖掘 机器学习 神经网络 训练 火炬
2022-03-15 12:01:17

在开始一个新的机器学习项目之前,估计运行 1、10、100、1k 个 epoch 需要多长时间是非常有用的。粗略的估计是绰绰有余的(即 1 个 epoch 需要 1 秒、10 秒、1 分钟、1 小时等)。

鉴于以下变量,您能否推荐任何可以提供估计的启发式方法?

  1. 问题类型(例如图像分割)
  2. 模型类型(例如 PyTorch Unet)
  3. 数据集(例如 10k 图像,512x512)
  4. 计算(例如 AWS p2.xlarge)
  5. 库(例如 PyTorch)

经验方法(例如,在较小的数据子集上进行训练并相应地扩展)是解决这个问题的更好方法吗?

1个回答

最好的了解方法是训练两个 epoch。第一个 epoch 通常需要的时间最长,因为数据加载是通过一些缓存进行的。

第二个时期将为您提供每个时期的准确时间。


有助于您可能在问题中包含的猜测的事情:

  • 规格有哪些p2.xlarge
  • 您的图像存储在哪里?在实例 EBS 存储上?s3存储?一个单独的文件系统?
  • 您的数据以哪种格式存储?
  • 也许模型中的参数数量,但这也可能会产生误导!