zoukankan      html  css  js  c++  java
  • Keras split train test set when using ImageDataGenerator

    Keras split train test set when using ImageDataGenerator

    I have a single directory which contains sub-folders (according to labels) of images. I want to split this data into train and test set while using ImageDataGenerator in Keras. Although model.fit() in keras has argument validation_split for specifying the split, I could not find the same for model.fit_generator(). How to do it ?

    train_datagen = ImageDataGenerator(rescale=1./255,

    shear_range=0.2,

    zoom_range=0.2,

    horizontal_flip=True)

     

    train_generator = train_datagen.flow_from_directory(

    train_data_dir,

    target_size=(img_width, img_height),

    batch_size=32,

    class_mode='binary')

     

    model.fit_generator(

    train_generator,

    samples_per_epoch=nb_train_samples,

    nb_epoch=nb_epoch,

    validation_data=??,

    nb_val_samples=nb_validation_samples)

    I don't have separate directory for validation data, need to split it from the training data

    -----

    Keras has now added Train / validation split from a single directory using ImageDataGenerator:

    train_datagen = ImageDataGenerator(rescale=1./255,
    

        shear_range=0.2,
    

        zoom_range=0.2,
    

        horizontal_flip=True,
    

    
    					validation_split=0.2) # set validation split
    					

     

    train_generator = train_datagen.flow_from_directory(
    

        train_data_dir,
    

        target_size=(img_height, img_width),
    

        batch_size=batch_size,
    

        class_mode='binary',
    

    
    					subset='training') # set as training data
    					

     

    validation_generator = train_datagen.flow_from_directory(
    

        train_data_dir, # same directory as training data
    						

        target_size=(img_height, img_width),
    

        batch_size=batch_size,
    

        class_mode='binary',
    

    
    					subset='validation') # set as validation data
    					

     

    model.fit_generator(
    

        train_generator,
    

        steps_per_epoch = train_generator.samples // batch_size,
    

        validation_data = validation_generator, 
    

        validation_steps = validation_generator.samples // batch_size,
    

        epochs = nb_epochs)
    					

    https://keras.io/preprocessing/image/

     

    keras.preprocessing.image.ImageDataGenerator(featurewise_center=False, samplewise_center=False, featurewise_std_normalization=False, samplewise_std_normalization=False, zca_whitening=False, zca_epsilon=1e-06, rotation_range=0, width_shift_range=0.0, height_shift_range=0.0, brightness_range=None, shear_range=0.0, zoom_range=0.0, channel_shift_range=0.0, fill_mode='nearest', cval=0.0, horizontal_flip=False, vertical_flip=False, rescale=None, preprocessing_function=None, data_format='channels_last', validation_split=0.0, interpolation_order=1, dtype='float32')

     

     

    Does the validation_generator also augment data? After reading the comments from github.com/keras-team/keras/issues/5862 it seems like it does. – bitnahian May 9 at 13:54

  • 相关阅读:
    ORA-12560:TNS:协议适配器错误
    oracledbconsole db启动问题
    安装tomcat出现failed to install tomcat6 service错误及解决方法(转载)
    关于Eclipse配置tomcat
    js indexof用法indexOf()定义和用法
    手机被没收事件。。。
    一维数组,求最大子数组!!!
    用n(0)次求一个数组里面最大子数组的和(数组可以输入负数)
    jwt认证
    序列化组件
  • 原文地址:https://www.cnblogs.com/xiexiaokui/p/12070356.html
Copyright © 2011-2022 走看看