TensorFlow-每个历元的步骤数

TensorFlow-每个历元的步骤数,tensorflow,tensorflow2.0,tf.keras,Tensorflow,Tensorflow2.0,Tf.keras,我正在使用Kera的时尚MNIST数据集。当我适合我的模型时,我注意到要完成一个历元,它必须经过1500步 history = model.fit(x_train, y_train, epochs=30, validation_split=0.2) Epoch 3/30 1500/1500 [==============================] - 3s 2ms/step - loss: 0.4494 - sparse_categorical_accuracy: 0.8438 - v

我正在使用Kera的时尚MNIST数据集。当我适合我的模型时,我注意到要完成一个历元,它必须经过1500步

history = model.fit(x_train, y_train, epochs=30, validation_split=0.2)

Epoch 3/30
1500/1500 [==============================] - 3s 2ms/step - loss: 0.4494 - sparse_categorical_accuracy: 0.8438 - val_loss: 0.4691 - val_sparse_categorical_accuracy: 0.8308
Epoch 4/30
964/1500 [==================>...........] - ETA: 0s - loss: 0.4294 - sparse_categorical_accuracy: 0.8504

我正在查看fit函数的默认步骤,但不明白为什么默认步骤设置为1500。我知道当
每个历元的步数
时,行为取决于数据集的数据类型,但如何检查数据类型是张量还是tf.data?

每个历元的步数等于
ceil(样本/批量大小)
model.fit
中的默认批量大小为32()。如果MNIST训练数据有60000个样本,则每个历元将采取60000/32=1875个步骤


model.fit
还支持将数据拆分为培训集和验证集。您已使用
验证\u split=0.2
完成此操作,因此只有80%的样本是训练集的一部分(20%用于验证)。新的计算结果为0.8*60000/32=1500。这就是为什么每个历元可以看到1500个步骤。

每个历元的步骤数等于
ceil(样本/批次大小)
。它不依赖于数据类型。@jakub,如果我没有在代码中指定
batch\u大小
,那么默认的批大小是32。这在
model.fit
文档中。@jakub,这对我来说毫无意义。如果每个历元的步数等于ceil(60000/32)
,那么日志输出应该是1875/1875,对吗?请看我的答案。我刚刚发现了这一点,正要回答我自己的问题。