首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Keras图像数据增强

Keras图像数据增强
EN

Stack Overflow用户
提问于 2019-01-29 06:13:15
回答 1查看 836关注 0票数 4

我发现很难理解flow_from_directory of ImageDataGenerator是如何工作的,我正在使用下面的代码为我的CNN模型增加图像数据,因为没有任何可用的培训图像非常少。

代码语言:javascript
复制
batch_size = 16
from keras.preprocessing.image import ImageDataGenerator
train_transformed = 'dataset/train_transformed'
train_datagen = ImageDataGenerator(
    rescale=1./255,
    horizontal_flip=True,
    fill_mode='nearest')

train_generator = train_datagen.flow_from_directory(
    'dataset/train',
    target_size=(150, 150),
    batch_size=batch_size,
    class_mode='binary',
    save_to_dir=train_transformed,
    save_prefix='train_aug',
    save_format='png')

这是一个具有20幅正片和20幅负片的二值分类问题。所以我有数据集/训练文件夹,有2个子文件夹,每个子文件夹有20个图像。当我使用上面的图像生成器训练模型时,我可以看到dataset/train_transformed文件夹中保存了4160图像,并假定4160图像用于训练模型。

代码语言:javascript
复制
model.fit_generator(
    train_generator,
    steps_per_epoch=1000 // batch_size,
    epochs=5,
    validation_data=validation_generator,
    validation_steps=100 // batch_size)

据我所知,不。每个时代的样本数= batch_size X steps_per_epoch

我的steps_per_epoch = 1000/16 = 62,

#每个时代的样本应为62x16= 992

每个时期的No设置为5,所以生成的图像总数应该是992 x5= 4960

生成的图像都是随机的,具有相同的超参数。

只是需要对上面的配置做一个解释。

EN

回答 1

Stack Overflow用户

发布于 2019-01-29 12:22:00

你的计算似乎是正确的。还要注意,flow_from_directory有一个shuffle参数(默认情况下为true)。这意味着生成器将在每个时期(batch_size times steps_per_epoch)产生992幅图像,但它们出现的顺序因时代而异。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54414885

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档