machine-learning - 是否可以对图像序列使用图像预处理?

标签 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 个图像的序列。有什么办法可以做到这一点吗?

最佳答案

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

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,:]

关于machine-learning - 是否可以对图像序列使用图像预处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42581099/

相关文章:

tensorflow - embedding_column 在 tensorflow 中做什么

machine-learning - PCA(主成分分析)和特征选择之间的区别

multithreading - 如何使用 Caffe 启用多线程?

tensorflow - 从 Tensorflow Probability 中的 MixtureNormal 模型中提取平均值和标准差

java - 使用 SGD 微调神经网络进行数字识别时遇到问题。测试数据上我似乎无法获得超过 87% 的成绩

machine-learning - 向线性 SVM/逻辑回归目标函数添加仿射项

python - 修改 TensorFlow 神经网络连接

c# - 设计用于销售预测的神经网络

python - 具有多种特征的多步时间序列预测

python - 训练文本语料库太大而无法加载到内存中