是否可以将图像预处理与图像序列一起使用?

时间:2017-03-03 14:11:37

标签: machine-learning neural-network keras conv-neural-network lstm

我试图使用Keras'内置图像预处理功能,以增加序列中的图像。 我的数据集的形状为(13200, 4, 168, 168, 1),有13200个序列,每个序列由4个168x168px灰度图像组成。

尝试在我的数据集上运行datagen.flow()时,我得到:

ValueError: ('Input data in `NumpyArrayIterator` should have rank 4. You passed an array with shape', (13200, 4, 168, 168, 1))

我假设ImageDataGenerator无法正确处理每个样本的4个图像序列。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:3)

尝试通过以下方式定义新的生成器:

def sequence_image_generator(x, y, batch_size, generator, seq_len=4):
    new_y = numpy.repeat(y, seq_len, axis = 0)
    helper_flow = generator.flow(x.reshape((x.shape[0] * seq_len,
                                            x.shape[2],
                                            x.shape[3],
                                            x.shape[4])),
                                 new_y,
                                 batch_size=seq_len * batch_size)
    for x_temp, y_temp in helper_flow:
        yield x_temp.reshape((x_temp.shape[0] / seq_len, 
                              seq_len, 
                              x.shape[2],
                              x.shape[3],
                              x.shape[4])), y_temp[::seq_len,:]