我在理解每个时期步骤中的观察数量方面存在问题。
我在Keras实施CNN以识别图片中的方格图案,并且。我准备了240张用于训练的图像和60张用于交叉验证的图像,并进行了数据增强。
train_datagen = ImageDataGenerator(rescale=1./255,
shear_range=0.2,
zoom_range=0.2,
horizontal_flip=True)
test_datagen = ImageDataGenerator(rescale=1. / 255)
train_generator = train_datagen.flow_from_directory(
train_data_dir,
target_size=(img_width, img_height),
batch_size=32,
class_mode='categorical')
validation_generator = test_datagen.flow_from_directory(
validation_data_dir,
target_size=(img_width, img_height),
batch_size=32,
class_mode='categorical')
接下来我训练了我的CNN:
history = model.fit_generator(
train_generator,
steps_per_epoch = 240,
epochs=epochs,
validation_data=validation_generator,
validation_steps= 60)
我得到了输出
Found 240 images belonging to 2 classes.
Found 60 images belonging to 2 classes.
Epoch 1/50
7/7[==============================] - 45s - loss: 4.1905 - acc: 0.4777 - val_loss: 0.7081 - val_acc: 0.5000
Epoch 2/50
7/7[==============================] - 41s - loss: 0.7049 - acc: 0.0.4973 - val_loss: 0.6851 - val_acc: 0.6786
我的问题是为什么7?如果我正确理解它应该是240.这是因为浴的尺寸是7?
答案 0 :(得分:0)
您的batch_size是32.这意味着每步使用32张图像。
对于1个时期,它需要解析240。
240/32 = 7.5
你需要将steps_per_epoch从240更改为8(np.ceil(7.5)
)
和validation_steps
从60到2