首页 > 解决方案 > 培训、验证、测试批量比例

问题描述

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

在代码的底部,我们可以根据我们的数据集指定参数。(有training, val, test percenttraining, val, test batch size
假设我有一个非常大的数据集(1 百万)并且我已经将其设置training, validation, testing percentage75:15:10

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

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

标签: pythontensorflowconv-neural-networktraining-data

解决方案


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

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

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

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


推荐阅读