Tensorflow 将生成器与Keras一起使用时,n/X中的X代表什么';它为每个时代打印出来

Tensorflow 将生成器与Keras一起使用时,n/X中的X代表什么';它为每个时代打印出来,tensorflow,neural-network,keras,theano,Tensorflow,Neural Network,Keras,Theano,当使用fit Generator并将verbose设置为1时,Keras打印以下内容(如下)。我正在处理14753个输入图像,其中80%用于培训,20%用于测试。批量大小为32 有时我理解X是如何工作的。当你乘以14753个观察值*80%用于训练/32(批量大小)时,你会得到368,这有时是X的结果。我怀疑这个数字代表了从生成器生成数据的次数。但其他时候,当在更复杂的模型上进行训练时,X会高得多,并且显示的似乎是任意数>1000那么X是如何计算的? 第1纪元 1/10(1=n,X=10) 2/1

当使用fit Generator并将verbose设置为1时,Keras打印以下内容(如下)。我正在处理14753个输入图像,其中80%用于培训,20%用于测试。批量大小为32

有时我理解X是如何工作的。当你乘以14753个观察值*80%用于训练/32(批量大小)时,你会得到368,这有时是X的结果。我怀疑这个数字代表了从生成器生成数据的次数。但其他时候,当在更复杂的模型上进行训练时,X会高得多,并且显示的似乎是任意数>1000那么X是如何计算的?

第1纪元

1/10(1=n,X=10)

2/10

3/10

等等

新纪元2

1/10

2/10

3/10 等等


神经网络1(X=368,这很有意义)

神经网络2(X=1602,我不懂)


这不是每个历元的步骤吗?这是简单的模型,但对于更复杂的模型,它显示的数字更高。这就是我的问题中所描述的每一个历元的步长的定义@DanielMöllerIsn,不是吗?
每个时代的步骤数
?它是针对简单的模型,但对于更复杂的模型,它显示了更高的数字。这就是我的问题中所描述的每一个历元的步长的定义@丹尼尔莫勒
activation_function = 'relu'
epoch_count = 20
loss_function = 'mean_squared_error'
opt = 'adam'

model = Sequential()
model.add(Conv2D(filters=16, kernel_size=(3, 3), input_shape=inp_shape))
model.add(Conv2D(filters=32, kernel_size=(3, 3), input_shape=inp_shape))
model.add(MaxPooling2D(pool_size=(4, 4)))
model.add(Flatten())
model.add(Dense(32, activation=activation_function))
model.add(Dropout(rate=0.5))
model.add(Dense(num_targets))
model.summary()
model.compile(loss=loss_function, optimizer=opt)

hist = model.fit_generator(
    generator(imgIds, batch_size=batch_size, is_train=True),
    validation_data=generator(imgIds, batch_size=batch_size, is_val=True), validation_steps=steps_per_val,
    steps_per_epoch=steps_per_epoch,
    epochs=epoch_count,
    verbose=verbose_level)
activation_function = 'relu'
batch_size = 32  # ##
steps_per_epoch = int(len(imgIds) * 0.8 / batch_size)
steps_per_val = int(len(imgIds) * 0.2 / batch_size)
epoch_count = 20
loss_function = 'mean_squared_error'
opt = 'adam'

model = Sequential()
model.add(Conv2D(filters=32, kernel_size=(3, 3), input_shape=inp_shape, activation=activation_function))
model.add(Conv2D(filters=32, kernel_size=(3, 3), activation=activation_function))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Conv2D(filters=64, kernel_size=(3, 3), activation=activation_function))
model.add(Conv2D(filters=64, kernel_size=(3, 3), activation=activation_function))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Conv2D(filters=64, kernel_size=(3, 3), activation=activation_function))
model.add(Conv2D(filters=64, kernel_size=(3, 3), activation=activation_function))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Conv2D(filters=128, kernel_size=(3, 3), activation=activation_function))
model.add(Conv2D(filters=128, kernel_size=(3, 3), activation=activation_function))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Flatten())
model.add(Dense(300, activation=activation_function))
model.add(Dropout(rate=0.5))
model.add(Dense(200, activation=activation_function))
model.add(Dense(num_targets))
model.summary()
model.compile(loss=loss_function, optimizer=opt)

hist = model.fit_generator(
    generator(imgIds, batch_size=batch_size, is_train=True),
    validation_data=generator(imgIds, batch_size=batch_size, is_val=True), validation_steps=steps_per_val,
    steps_per_epoch=steps_per_epoch,
    epochs=epoch_count,
    verbose=verbose_level)