美文网首页
keras图片生成器ImageDataGenerator

keras图片生成器ImageDataGenerator

作者: poteman | 来源:发表于2019-08-04 16:01 被阅读0次

    深度学习模型中很多数据是通过batch形式来进行训练的,这需要创建一个batch生成器。
    ImageDataGenerator通过实时数据增强生成张量图像数据批次。数据将不断循环(按批次)。

    • 使用.flow()的例子
    (x_train, y_train), (x_test, y_test) = cifar10.load_data()
    y_train = np_utils.to_categorical(y_train, num_classes)
    y_test = np_utils.to_categorical(y_test, num_classes)
    
    datagen = ImageDataGenerator(
        featurewise_center=True,
        featurewise_std_normalization=True,
        rotation_range=20,
        width_shift_range=0.2,
        height_shift_range=0.2,
        horizontal_flip=True)
    
    # compute quantities required for featurewise normalization
    # (std, mean, and principal components if ZCA whitening is applied)
    datagen.fit(x_train)
    
    # fit_generator, evaluate_generator, and predict_generator.
    # fits the model on batches with real-time data augmentation:
    model.fit_generator(datagen.flow(x_train, y_train, batch_size=32),
                        steps_per_epoch=len(x_train), epochs=epochs)
    
    • 使用.flow_from_directory(directory)的例子
    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(
            'data/train',
            target_size=(150, 150),
            batch_size=32,
            class_mode='binary')
    
    validation_generator = test_datagen.flow_from_directory(
            'data/validation',
            target_size=(150, 150),
            batch_size=32,
            class_mode='binary')
    
    model.fit_generator(
            train_generator,
            steps_per_epoch=2000,
            epochs=50,
            validation_data=validation_generator,
            validation_steps=800)
    
    • 参数解释
      1.steps_per_epoch: 整数,当生成器返回steps_per_epoch次数据时计一个epoch结束,执行下一个epoch。
      2.verbose:日志显示,0为不在标准输出流输出日志信息,1为输出进度条记录,2为每个epoch输出一行记录
      3.flow_from_directory中,类的列表将自动从 directory 下的 子目录名称/结构 中推断出来,其中每个子目录都将被作为不同的类(类名将按 字典序 映射到标签的索引)

    【参考文献】
    1.keras官网: 图片生成器ImageDataGenerator
    2.Keras Image Data Augmentation 详解

    相关文章

      网友评论

          本文标题:keras图片生成器ImageDataGenerator

          本文链接:https://www.haomeiwen.com/subject/kewedctx.html