批次大小对model.fit in keras中的迭代次数没有影响

批次大小对model.fit in keras中的迭代次数没有影响,keras,Keras,我有一个简单的示范模型: input_layer = Input(shape=(100,)) encoded = Dense(2, activation='relu')(input_layer) X = np.ones((1000, 100)) Y = np.ones((1000, 2)) print(X.shape) model = Model(input_layer, encoded) model.compile(loss='categorical_crossentropy', opti

我有一个简单的示范模型:

input_layer = Input(shape=(100,))
encoded = Dense(2, activation='relu')(input_layer)

X = np.ones((1000, 100))
Y = np.ones((1000, 2))
print(X.shape)

model = Model(input_layer, encoded)
model.compile(loss='categorical_crossentropy', optimizer='adam')
model.fit(x=X, y=Y, batch_size = 2)
输出为:

2.2.4
(1000, 100)
Epoch 1/1
1000/1000 [==============================] - 3s 3ms/step - loss: 1.3864
为什么一个历元中有1000次迭代(如输出所示)。 我尝试更改此选项,但没有更改输出。我想应该是1000/2=500。请解释我的理解有什么问题,以及如何正确设置批量大小


感谢它更改了批量大小,虽然您没有明确地将其视为一个步骤,但条形图的进度更快。不久前,我脑子里也有同样的问题

如果要明确查看每个步骤,可以使用
steps\u per\u epoch
validation\u steps

下面列出了一个示例

model.fit_generator(training_generator,
                        steps_per_epoch=steps_per_epoch,
                        epochs=epochs,
                        validation_data=validation_generator,
                        validation_steps=validation_steps)
在这种情况下,每个历元的步骤数=训练样本数/批次大小,而验证步骤数=训练样本数/批次大小


在培训过程中,您将看到500个步骤,而不是1000个步骤(前提是您有1000个培训样本,并且批大小为2)。

如果更改批大小,尽管您没有明确地将其视为一个步骤,但条形图的进度更快。不久前,我脑子里也有同样的问题

如果要明确查看每个步骤,可以使用
steps\u per\u epoch
validation\u steps

下面列出了一个示例

model.fit_generator(training_generator,
                        steps_per_epoch=steps_per_epoch,
                        epochs=epochs,
                        validation_data=validation_generator,
                        validation_steps=validation_steps)
在这种情况下,每个历元的步骤数=训练样本数/批次大小,而验证步骤数=训练样本数/批次大小


在培训过程中,您将看到500个步骤,而不是1000个步骤(前提是您有1000个培训样本,并且批大小为2)。

模型中。拟合
进度条左侧的数字计数样本,因此它始终是当前样本/样本总数


您可能会感到困惑,因为它在
模型中的工作方式不同。在这里,您可以看到迭代或批次被计数。

模型中。将进度条左侧的数字拟合为计数样本数,因此它始终是当前样本数/样本总数

您可能会感到困惑,因为它在
模型中的工作方式不同。在这里,您可以看到迭代或批处理被计数