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 percentage为75:15:10。
但我不知道如何正确设置批处理参数:
现在,我将 设置train_batch_size为 64,是否需要为 设置相同的值validation_batch_size?或者它应该比 更大或更小train_batch_size?
您可以按照其他答案中有关数据集拆分比率的建议进行操作。但是,批量大小与您拆分数据集的方式完全无关。
批量大小决定了并行处理多少训练样本以进行训练/推理。训练时的批量大小会影响训练收敛的速度和效果。您可以在此处找到有关此效果的讨论。因此,对于train_batch_size,值得选择既不太小也不太大的批量大小(如先前链接的讨论中所述)。对于某些应用程序,使用尽可能大的训练批次实际上是可取的,但通常,您可以通过实验和验证来选择它。
但是,对于validation_batch_size和test_batch_size,您应该选择硬件可以处理的最大批量大小,而不会耗尽内存和崩溃。发现这一点通常是一个简单的试错过程。推理时批量越大,速度越快,因为可以并行处理更多输入。
编辑:这是Goodfellow 等人的深度学习书籍中关于训练批量大小权衡的额外有用链接(第 276 页)。
| 归档时间: |
|
| 查看次数: |
7436 次 |
| 最近记录: |