多个ImageDataGenerator

时间:2020-03-28 22:38:39

标签: python tensorflow

我正在尝试从ImageDataGenerator生成两个参数以输入到我的model.fit_generator()中,但这不起作用,我现在不是最好的方法。

我的结构是:

enter image description here

input_imgen1 = ImageDataGenerator(rescale = 1./255, 
                                  vertical_flip=True, 
                                  validation_split=0.2,
                                  horizontal_flip = True)

input_imgen2 = ImageDataGenerator(rescale = 1./255, 
                                  shear_range = 0.2, 
                                  zoom_range = 0.2,
                                  rotation_range=5.)

testgenerator = ImageDataGenerator(rescale = 1./255)

def generate_generator_multiple(generator1, generator2, train_data_dir, batch_size, img_height, 
img_width):
genX1 = generator1.flow_from_directory(train_data_dir,
                                      target_size = (img_height, img_width),
                                      class_mode = 'categorical',
                                      batch_size = batch_size,
                                      shuffle=False, 
                                      seed=7)

genX2 = generator2.flow_from_directory(train_data_dir,
                                      target_size = (img_height, img_width),
                                      class_mode = 'categorical',
                                      batch_size = batch_size,
                                      shuffle=False, 
                                      seed=7)
while True:
        X1i = genX1.next()
        X2i = genX2.next()
        yield [X1i[0], X2i[0]], X2i[1]  #Yield both images and their mutual label


data_gen_train=generate_generator_multiple(generator1=input_imgen1,
                                           generator2=input_imgen2,
                                           train_data_dir=train_dir,
                                           batch_size=batch_size,
                                           img_height=IMG_HEIGHT,
                                           img_width=IMG_WIDTH)    
history = model.fit_generator(
    data_gen_train,
    epochs=epochs,
    steps_per_epoch=25,
    verbose=1,
    validation_data=testgenerator,
    validation_steps=25,
    callbacks=[checkpoint, early_stop, tensor_board]
)

我适合的时候出现错误:

enter image description here

1 个答案:

答案 0 :(得分:0)

从日志中可以明显看出,您的错误是在验证期间引起的 data_gen_valid ,其构造应与 data_gen_train 相同。

因此,如果您的训练数据是两个生成器的串联,那么您的验证数据也应该是