我正在计划一个小型的TensorFlow图像分类项目,预计将在处理能力较低的机器上运行,项目中被问到的一个关注点是训练模型所需的时间。
该项目仍处于构思阶段,尚未确定具体的边界。但是假设我们将使用Python的TensorFlow,并使用一个简单的神经网络来处理n张图像的数据集,基于所使用的硬件,是否有方法在训练之前估计或预测训练模型所需的时间?
我曾问过一位在神经网络领域工作的同事,他说我们可以通过测量第一个周期的时间并估算之后需要多少个周期来计算所需的时间。这种方法是否有效?如果是,那么是否有可能估算所需的周期数?无论哪种情况,是否有方法在进行任何训练之前计算出来?
回答:
没有确定的方法可以找到模型收敛所需的周期数。这是超参数之一。
除了你正在训练的模型类型外,收敛还取决于数据的分布和你使用的优化器。你可以通过查看模型中参数的数量,检查一个周期的时间,并从“经验”中大致了解所需的周期数来进行粗略估计。但你始终需要查看训练和验证损失曲线来检查收敛情况。