Keras 输出的批量大小与我的训练集不同

Batch Size From Keras Output Is Different From My Training Set

我对 keras 输出中显示的批量大小有疑问。 我浏览了关于如何解释 keras 输出的类似帖子,发现 result 中显示的数字 219 是 batch_size 的数字。但是,你可以看到我的X_trainbatch_size是7000,不是219,这个219是哪里来的?

X_train.shape # (7000, 50, 1)
Y_train.shape # (7000, 50, 10)


model = keras.models.Sequential([
    keras.layers.SimpleRNN(20, return_sequences=True, input_shape=[None, 1]),
    keras.layers.SimpleRNN(20, return_sequences=True),
    keras.layers.TimeDistributed(keras.layers.Dense(10))
])

model.compile(loss="mse", optimizer=keras.optimizers.Adam(lr=0.01))
history = model.fit(X_train, Y_train, epochs=10)

部分结果:

model.compile(loss="mse", optimizer=keras.optimizers.Adam(lr=0.01))...
Epoch 1/10
219/219 [==============================] - 2s 8ms/step - loss: 6.0260e-06
Epoch 2/10
219/219 [==============================] - 2s 8ms/step - loss: 1.1669e-08
Epoch 3/10
219/219 [==============================] - 2s 8ms/step - loss: 7.6153e-08

在model.fit中,默认批量大小是32。所以如果你有7000个样本,那么每个时期的步数是7000/32=218.75,四舍五入到219。所以这意味着要经过你的 7000 个样本,它为每个批次获取 32 张图像,并执行 219 次。