训练、验证、测试批量大小比率

gam*_*n67 5 python training-data conv-neural-network tensorflow

我正在 Tensorflow 上使用 Inception 进行迁移学习,这是我遵循的训练代码:https ://raw.githubusercontent.com/tensorflow/hub/master/examples/image_retraining/retrain.py

在代码的底部,我们可以根据我们的数据集指定参数。(有训练、val、测试百分比训练、val、测试批量大小
假设我有一个非常大的数据集(1 百万),并且我已经将 设置training, validation, testing percentage75:15:10

但我不知道如何正确设置批处理参数:

  • train_batch_size
  • 验证批量大小
  • test_batch_size

现在,我将 设置train_batch_size为 64,是否需要为 设置相同的值validation_batch_size?或者它应该比 更大或更小train_batch_size

Pro*_*yag 9

您可以按照其他答案中有关数据集拆分比率的建议进行操作。但是,批量大小与您拆分数据集的方式完全无关

批量大小决定了并行处理多少训练样本以进行训练/推理。训练时的批量大小会影响训练收敛的速度和效果。您可以在此处找到有关此效果的讨论。因此,对于train_batch_size,值得选择既不太小也不太大的批量大小(如先前链接的讨论中所述)。对于某些应用程序,使用尽可能大的训练批次实际上是可取的,但通常,您可以通过实验和验证来选择它。

但是,对于validation_batch_sizetest_batch_size,您应该选择硬件可以处理的最大批量大小,而不会耗尽内存和崩溃。发现这一点通常是一个简单的试错过程。推理时批量越大,速度越快,因为可以并行处理更多输入。

编辑:这是Goodfellow 等人的深度学习书籍中关于训练批量大小权衡的额外有用链接(第 276 页)。