具有不同图像尺寸的Keras CNN

时间:2018-09-08 17:59:27

标签: python keras deep-learning conv-neural-network

我正在尝试使用VOC2012数据集来训练CNN。对于我的项目,我需要黑白数据,因此我提取了R组件。到目前为止,一切都很好。问题在于图像的大小不同,所以我不知道如何将其传递给模型。我编译了模型,然后创建了如下的32个迷你批处理(其中X_trainY_train是文件的路径)。

for x in X_train:
    img = plt.imread(x)
    img = img.reshape(*(img.shape), 1)
    X.append(img)

for y in Y_train:
    img = plt.imread(y)
    img = img.reshape(*(img.shape), 1)
    Y.append(img)

model.train_on_batch(np.array(X), np.array(Y))

但是,我怀疑由于图像的大小都不同,所以numpy数组的形状为(32,)而不是我期望的(32,height,width,1)。我该如何处理?

1 个答案:

答案 0 :(得分:0)

根据某些资料,确实可以训练至少一些具有不同输入大小的体系结构。 (QuoraCross Validated

在生成大小可变的数组的数组时,可能只需要使用Python的NumPy数组列表或类型为ndarray的{​​{1}}来收集所有图像数据。然后在训练过程中,Quora回答提到只能使用批处理大小1,否则可能会根据大小将多个图像合并在一起。甚至可以使用零填充来使图像大小均匀,但是我不能说这种方法的有效性。

最好的研究!

示例代码:

object