Keras中batch_size如何使用?model.fit中该参数的具体含义是什么
Keras中model.fit的batch_size参数答疑
核心定义
首先明确:model.fit() 中的 batch_size 是单批次送入模型计算的样本数量,而非训练的总批次数量。
举你提到的例子验证:总样本数20000,设置batch_size=100的情况下,单次传入模型的样本就是100个,每个训练轮次(epoch)总共会拆分出200个批次完成全量样本训练。
表述矛盾说明
你提到的资料里“batch_size=1对应一次性传入整个训练集”的表述属于笔误,把批次总数和batch_size的定义搞反了:如果要实现单轮训练一次性传入全量样本,需要把batch_size设置为和总样本数相等,此时单轮的总批次数量才是1。
批次样本的选择规则
默认配置下的采样逻辑如下:
- 如果
shuffle参数设置为True(model.fit的默认配置),每个epoch开始时会先将全量训练集随机打乱顺序,再按batch_size的大小顺次切分为不同批次,同个epoch内所有样本只会被使用一次,无重复采样。 - 如果
shuffle参数设置为False,会直接按照数据集的原始存储顺序顺次切分批次,不做打乱处理。 - 若使用自定义数据集生成器/加载器,批次的采样规则由你自定义的加载逻辑决定,比如可实现类别平衡采样、加权采样等特殊规则。
内容的提问来源于stack exchange,提问作者Janakored
相关产品推荐
相关产品推荐

