python - 如何在 keras 中使用批量大小?
问题描述
早上好!
我只是想澄清一下 - model.fit 中的 batch_size 参数是声明有多少样本进入,还是一次进入的样本数量 x/batch_size,总共有 x 个样本?
也就是说,假设我们有 20,000 个样本,并且批量大小为 100。这是否意味着一次传入 200 个样本(意味着 100 个批次),还是 100 个样本?
我问是因为https://deeplizard.com/learn/video/Skc8nqJirJg说“如果我们一次将整个训练集传递给模型(batch_size=1),那么我们刚刚计算损失的过程将发生在训练期间每个 epoch 的结束”,暗示它是一批。但是,batch_size 似乎意味着基于其名称的不同,所以我想澄清一下。
谢谢!
注意:还有另一个类似的问题,但没有得到回答 - Keras 中的 BatchSize 是如何工作的?LSTM-WithState-时间序列
这增加了:这些样本是如何选择的?
解决方案
来自 TensorFlow文档:
batch_size:整数或无。每次梯度更新的样本数。如果未指定,batch_size 将默认为 32。如果您的数据是数据集、生成器或 keras.utils.Sequence 实例的形式(因为它们会生成批次),请不要指定 batch_size。
所以它是梯度更新之前使用的样本数。如果 batch_size 等于 1,那么每个样本都会有一个梯度更新(因此,每个 epoch 有 num_samples)
例如,对于您引用的示例:如果我们有 20,000 个样本,并且批量大小为 100,则一次通过 100 个样本。
这增加了:这些样本是如何选择的?
这取决于 fit 方法的 shuffle 参数是否为 True 。如果是,则随机抽取它们,直到选择了所有样本(时期结束)。如果不是,它们将按顺序进行
推荐阅读
- c# - Neo4j 密码转换查询到 C#
- python - 卡在 Django 中设置 CSS 静态文件
- javascript - 如何向javascript提供奇怪的字符?
- python-3.x - 请解释一下这段代码?
- django - 如何在 django 中打印该模型的外键?
- flutter - Flutter Push vs. 状态相关视图
- javascript - 该站点如何以叠加方式显示此 youtube 视频?
- c# - SpeechSynthesizer 无法获取所有已安装的声音 3
- networking - Openstack neutron:在响应中未从开放堆栈 neutron api 获取端口信息
- mysql - Kubernetes多数据库实例或HA单实例