问题描述
我对 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 次。