CNN Keras每个时期的样本数量

时间:2017-10-06 12:42:18

标签: tensorflow keras

我在理解每个时期步骤中的观察数量方面存在问题。

我在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?

1 个答案:

答案 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