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

问题描述

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

X_train.shape # (7000,50,1)
Y_train.shape # (7000,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 次。