我有一个5个样本的测试数据集和2000个样本的训练数据集。我想扩充我的数据集,我正在关注keras
提供的示例datagen_test = ImageDataGenerator(
featurewise_center=True,
featurewise_std_normalization=True,
rotation_range=20,
width_shift_range=0.2,
height_shift_range=0.2,
horizontal_flip=True
)
datagen_train = ImageDataGenerator(
featurewise_center=True,
featurewise_std_normalization=True,
rotation_range=20,
width_shift_range=0.2,
height_shift_range=0.2,
horizontal_flip=True
)
datagen_train.fit(x_train)
validation_generator = datagen_test.flow(x_test, y_test, batch_size=5)
model.compile(loss=keras.losses.categorical_crossentropy,
optimizer='rmsprop',
metrics=['accuracy'])
# fits the model on batches with real-time data augmentation:
model.fit_generator(datagen_train.flow(x_train, y_train, batch_size=50),
steps_per_epoch=len(x_train) / 10, epochs=epochs,
validation_data=validation_generator, validation_steps=800)
我认为 steps_per_epoch 参数是传递给分类器的批次数。我将生成器中的 batch_size 设置为50,但是我只有5个样本。我认为我的问题与 samples_per_epoch 无关,后者是在一个纪元中处理的样本数。
我的问题是: 生成器是否会转换我的图像以创建50个不同的样本并将它们传递给分类器或仅变换5个?
答案 0 :(得分:0)
不幸的是 - 当你只有5个例子时将batch_size
设置为50会使你的生成器在每个批次中只返回5个例子(尽管batch_size
)。因此,它不会将您的批次扩展到50
。