将ImageDataGenerator与您自己的生成器一起使用

时间:2018-06-29 20:31:16

标签: generator

我的数据集很大,无法容纳在内存中,并且有多个输入。因此,这就是为什么我创建了自己的生成器。但是后来我想使用ImageDataGenerator来扩充我的数据,我遇到了问题。我不知道如何结合这两个发生器。

到目前为止,我要做的是:

def data_gen(  batch_size= None, nb_epochs=None, sess=None):

    dataset = tf.data.TFRecordDataset(training_filenames)
    dataset = dataset.map(_parse_function_all)  
    dataset = dataset.shuffle(buffer_size= 1000 + 4* batch_size)
    dataset = dataset.batch(batch_size).repeat()
    iterator = dataset.make_initializable_iterator()
    next_element = iterator.get_next()

    for i in range(nb_epochs):
        sess.run(iterator.initializer)
        while True:
            try:
                next_val = sess.run(next_element)
                images_a = next_val[0][:, 0]
                images_b = next_val[0][:, 1]
                labels = next_val[1]
                yield  [images_a, images_b], labels
            except tf.errors.OutOfRangeError:

              break

 mymodel = Model(input=[input_a, input_b], output=out)
 mymodel.compile(loss=loss_both_equal, optimizer=rms, metrics=['accuracy', auc_roc])
 data_gen_1 = data_gen(batch_size= batch_size, nb_epochs= 10, sess= sess)
 mymodel.fit_generator(generator= data_gen_1, epochs = epochs,
            steps_per_epoch=335, 
             callbacks=[tensorboard, alphaChanger])

因此,如果我想使用DataImageGenerator进行一些扩充,如何将自己的生成器与DataIamgeGenerator结合在一起?

0 个答案:

没有答案