You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Keras model.fit控制台显示错误批次数量,全量训练仍显示25批

问题原因说明

你观察到的25/25进度标识并不是训练集的拆分批次数量,属于TensorFlow 2.3版本的进度条显示逻辑导致的误解:

  • 你的训练配置完全符合全量训练的要求:batch_size设置为X_train.shape[0]即3967,每个epoch只会用全部训练数据跑1次正向传播和反向传播,没有拆分批次。
  • 显示的25是验证集的推理批次数量:model.fit的validation_batch_size参数在TensorFlow 2.3版本中默认值为32,你的测试集共有793条样本,793 / 32向上取整后得到25,就是你看到的进度条数值来源。

你之前去掉validation_steps=1和steps_per_epoch=1的尝试不会解决问题,因为这两个参数控制的是训练/验证的总步数,和验证批次的拆分逻辑无关,问题根因是验证批次的默认大小设置。

解决方法

如果希望验证环节也不拆分批次,同时让进度条显示符合你的预期,只需要在model.fit的入参中新增validation_batch_size参数即可:

model.fit(X_train,
          y_train,
          epochs=1000,
          batch_size=X_train.shape[0],
          validation_data=(X_test, y_test),
          callbacks=[callback],
          validation_steps=1,
          steps_per_epoch=1,
          validation_batch_size=X_test.shape[0], # 新增这行配置
          verbose=1,
 )

修改后验证环节会一次性加载全部793条测试集数据完成推理,进度条会显示1/1,和你的预期一致。

内容的提问来源于stack exchange,提问作者Michael

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 05:54:01