我当前正在使用tensorflow.keras.preprocessing.image.ImageDataGenerator
和flow_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
的扩充选项的示例?如果一个例子要求太多,总结一下如何解决这个问题也将不胜感激!