Keras播种ImageDataGenerator与序列

时间:2019-01-12 22:12:35

标签: python-3.x tensorflow keras data-generation

我当前正在使用tensorflow.keras.preprocessing.image.ImageDataGeneratorflow_from_directory。例如:

from tensorflow.keras.preprocessing.image import ImageDataGenerator

 train_datagen = ImageDataGenerator(rotation_range=20,
                                    width_shift_range=0.1,
                                    height_shift_range=0.1,
                                    shear_range=0.2, 
                                    zoom_range=0.2, 
                                    fill_mode='nearest', 
                                    horizontal_flip=True,
                                    rescale=1/255.0, 
                                    preprocessing_function=preprocessing_function, 
                                    data_format='channels_last')

train_generator = train_datagen.flow_from_directory(
    directory=env.channel_dirs['train'],
    target_size=(train_size, train_size),
    color_mode="rgb",
    batch_size=batch_size,
    class_mode="categorical",
    shuffle=True,
    interpolation='bilinear',
    seed=42)

我发现,即使同时在numpy和TensorFlow中设置种子,批处理顺序也不是静态的,因此我无法获得可重复的结果。我看到this post建议使用keras Sequence。但是,这仅是一个小例子。

是否可以使ImageDataGenerator批处理订单重现?另外,是否有人能分享我如何使用Sequence但保留flow_from_directory以及使用ImageDataGenerator的扩充选项的示例?如果一个例子要求太多,总结一下如何解决这个问题也将不胜感激!

1 个答案:

答案 0 :(得分:1)

这里是nice-script,通过它您也可以控制内部过程。这意味着,您可以定义自己的每次迭代中生成数据的方式,以及从目录中流出数据的方式。