tensorflow - 深度神经网络: could a random batch size be useful for training?

标签 tensorflow machine-learning deep-learning keras

我使用 Keras 工作了大约三个月,现在我想知道对不同(随机)大小(16、32、64、128)的批处理进行训练是否有用,以结合不同批处理大小的优点.

我没有找到任何可以回答这个问题的文档。我完全错了吗?

最佳答案

我见过两种最流行的处理批量大小的策略:

  • 选择尽可能大的值,以便模型仍然适合 GPU 内存。这样做主要是为了通过并行性和矢量化来加快训练速度。

  • 像任何其他超参数一样,通过随机搜索或通过 Bayesian Optimization 调整批量大小。 。令人惊讶的是,更大的批量大小并不总是意味着更好的模型性能(尽管在许多情况下确实如此)。请参阅this discussion关于这个问题:主要思想是训练中的额外噪声可能有利于泛化。请记住,L2 正则化相当于向 x 添加高斯噪声。减少批量大小也会增加训练过程的噪音,尤其是在使用批量归一化的情况下。

我不知道在训练期间更改相同模型的批量大小有什么工作。但为不同模型选择随机批量大小肯定会带来好处。

警告:在某些设置中,例如在深度强化学习中,额外的噪声实际上会损害性能,因此减少批量大小可能是一个坏主意。因此,一如既往,这在很大程度上取决于您的问题。

关于tensorflow - 深度神经网络: could a random batch size be useful for training?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47995208/

相关文章:

python - 使用准备好的数据进行 Sci-kit 分类

python - Keras 创建您自己的生成器

python - 关于 tensorflow 神经网络输入大小的问题

machine-learning - Tensorflow models/slim eval_image_classifier.py 评估错误的图像数量

python - Tensorflow:如何创建混淆矩阵

python - 如何使输出图像的大小与原始图像的大小相同以计算CNN中的损失?

python - Tensorflow无法使用所有可见的GPU

python-3.x - Tensorflow 2.1 全内存和 tf.function 调用两次

machine-learning - 机器学习中的加权系统程序如何工作?

machine-learning - 使用 Keras 进行文本分类 : How to add custom features?