【问题标题】:ValueError: The model expects 2 input arrays, but only received one array (Keras/Tensorflow)ValueError:模型需要 2 个输入数组,但只收到一个数组(Keras/Tensorflow)
【发布时间】:2018-07-06 02:53:23
【问题描述】:

我目前正在尝试使用以下 model.fit 线训练 Keras 模型:

history = model.fit(imgs,ground_truths, batch_size=16, epochs=30, shuffle=True,
              validation_split=0.2,
              callbacks=[model_checkpoint])

两者都具有(2080, 256, 256, 3) 的形状,这是模型的正确输入形状。

但是,由于某种原因,即使我传入了 2 个参数,我仍然不断收到以下错误:

ValueError: The model expects 2 input arrays, but only received one array. Found: array with shape (2080, 256, 256, 3)

这就是我预处理图像的方式:

def preprocess(imgs):
    imgs_p = np.ndarray((imgs.shape[0], img_rows, img_cols, 3), dtype=np.uint8)
    for i in range(imgs.shape[0]):

        arr = imgs[i]

        arr = arr.astype('float')
        arr /= 255.
        imgs_p[i] = resize(arr, (256, 256), preserve_range=True)

    return imgs_p

预处理后的图像在预处理后保存在numpy文件中:

np.save('imgs_train_preprocess.npy', imgs)
np.save('imgs_gt_train_preprocess.npy', ground_truths)

在训练之前,我会在训练之前像这样加载 numpy 文件:

imgs = np.load('imgs_cup_train_preprocess.npy')
ground_truths = np.load('imgs_orig_train_preprocess.npy')

这是我的model.summary:

____________________________________________________________________________________________________
Layer (type)                     Output Shape          Param #     Connected to
====================================================================================================
conv1_1 (InputLayer)             (None, 256, 256, 3)   0
____________________________________________________________________________________________________
relu1_1 (Activation)             (None, 256, 256, 3)   0           conv1_1[0][0]
____________________________________________________________________________________________________
conv1_2_zeropadding (ZeroPadding (None, 258, 258, 3)   0           relu1_1[0][0]
____________________________________________________________________________________________________
conv1_2 (Conv2D)                 (None, 256, 256, 64)  1792        conv1_2_zeropadding[0][0]
____________________________________________________________________________________________________
relu1_2 (Activation)             (None, 256, 256, 64)  0           conv1_2[0][0]
____________________________________________________________________________________________________
pool1 (MaxPooling2D)             (None, 128, 128, 64)  0           relu1_2[0][0]
____________________________________________________________________________________________________
conv2_1_zeropadding (ZeroPadding (None, 130, 130, 64)  0           pool1[0][0]
____________________________________________________________________________________________________
conv2_1 (Conv2D)                 (None, 128, 128, 128) 73856       conv2_1_zeropadding[0][0]
____________________________________________________________________________________________________
relu2_1 (Activation)             (None, 128, 128, 128) 0           conv2_1[0][0]
____________________________________________________________________________________________________
conv2_2_zeropadding (ZeroPadding (None, 130, 130, 128) 0           relu2_1[0][0]
____________________________________________________________________________________________________
conv2_2 (Conv2D)                 (None, 128, 128, 128) 147584      conv2_2_zeropadding[0][0]
____________________________________________________________________________________________________
relu2_2 (Activation)             (None, 128, 128, 128) 0           conv2_2[0][0]
____________________________________________________________________________________________________
pool2 (MaxPooling2D)             (None, 64, 64, 128)   0           relu2_2[0][0]
____________________________________________________________________________________________________
conv3_1_zeropadding (ZeroPadding (None, 66, 66, 128)   0           pool2[0][0]
____________________________________________________________________________________________________
conv3_1 (Conv2D)                 (None, 64, 64, 256)   295168      conv3_1_zeropadding[0][0]
____________________________________________________________________________________________________
relu3_1 (Activation)             (None, 64, 64, 256)   0           conv3_1[0][0]
____________________________________________________________________________________________________
conv3_2_zeropadding (ZeroPadding (None, 66, 66, 256)   0           relu3_1[0][0]
____________________________________________________________________________________________________
conv3_2 (Conv2D)                 (None, 64, 64, 256)   590080      conv3_2_zeropadding[0][0]
____________________________________________________________________________________________________
relu3_2 (Activation)             (None, 64, 64, 256)   0           conv3_2[0][0]
____________________________________________________________________________________________________
conv3_3_zeropadding (ZeroPadding (None, 66, 66, 256)   0           relu3_2[0][0]
____________________________________________________________________________________________________
conv3_3 (Conv2D)                 (None, 64, 64, 256)   590080      conv3_3_zeropadding[0][0]
____________________________________________________________________________________________________
relu3_3 (Activation)             (None, 64, 64, 256)   0           conv3_3[0][0]
____________________________________________________________________________________________________
pool3 (MaxPooling2D)             (None, 32, 32, 256)   0           relu3_3[0][0]
____________________________________________________________________________________________________
conv4_1_zeropadding (ZeroPadding (None, 34, 34, 256)   0           pool3[0][0]
____________________________________________________________________________________________________
conv4_1 (Conv2D)                 (None, 32, 32, 512)   1180160     conv4_1_zeropadding[0][0]
____________________________________________________________________________________________________
relu4_1 (Activation)             (None, 32, 32, 512)   0           conv4_1[0][0]
____________________________________________________________________________________________________
conv4_2_zeropadding (ZeroPadding (None, 34, 34, 512)   0           relu4_1[0][0]
____________________________________________________________________________________________________
conv4_2 (Conv2D)                 (None, 32, 32, 512)   2359808     conv4_2_zeropadding[0][0]
____________________________________________________________________________________________________
relu4_2 (Activation)             (None, 32, 32, 512)   0           conv4_2[0][0]
____________________________________________________________________________________________________
conv4_3_zeropadding (ZeroPadding (None, 34, 34, 512)   0           relu4_2[0][0]
____________________________________________________________________________________________________
conv4_3 (Conv2D)                 (None, 32, 32, 512)   2359808     conv4_3_zeropadding[0][0]
____________________________________________________________________________________________________
relu4_3 (Activation)             (None, 32, 32, 512)   0           conv4_3[0][0]
____________________________________________________________________________________________________
pool4 (MaxPooling2D)             (None, 16, 16, 512)   0           relu4_3[0][0]
____________________________________________________________________________________________________
conv5_1_zeropadding (ZeroPadding (None, 18, 18, 512)   0           pool4[0][0]
____________________________________________________________________________________________________
conv5_1 (Conv2D)                 (None, 16, 16, 512)   2359808     conv5_1_zeropadding[0][0]
____________________________________________________________________________________________________
relu5_1 (Activation)             (None, 16, 16, 512)   0           conv5_1[0][0]
____________________________________________________________________________________________________
conv5_2_zeropadding (ZeroPadding (None, 18, 18, 512)   0           relu5_1[0][0]
____________________________________________________________________________________________________
conv5_2 (Conv2D)                 (None, 16, 16, 512)   2359808     conv5_2_zeropadding[0][0]
____________________________________________________________________________________________________
relu5_2 (Activation)             (None, 16, 16, 512)   0           conv5_2[0][0]
____________________________________________________________________________________________________
conv5_3_zeropadding (ZeroPadding (None, 18, 18, 512)   0           relu5_2[0][0]
____________________________________________________________________________________________________
conv5_3 (Conv2D)                 (None, 16, 16, 512)   2359808     conv5_3_zeropadding[0][0]
____________________________________________________________________________________________________
conv2_2_16_zeropadding (ZeroPadd (None, 130, 130, 128) 0           relu2_2[0][0]
____________________________________________________________________________________________________
relu5_3 (Activation)             (None, 16, 16, 512)   0           conv5_3[0][0]
____________________________________________________________________________________________________
conv2_2_16 (Conv2D)              (None, 128, 128, 16)  18448       conv2_2_16_zeropadding[0][0]
____________________________________________________________________________________________________
conv3_3_16_zeropadding (ZeroPadd (None, 66, 66, 256)   0           relu3_3[0][0]
____________________________________________________________________________________________________
conv4_3_16_zeropadding (ZeroPadd (None, 34, 34, 512)   0           relu4_3[0][0]
____________________________________________________________________________________________________
conv5_3_16_zeropadding (ZeroPadd (None, 18, 18, 512)   0           relu5_3[0][0]
____________________________________________________________________________________________________
concat (InputLayer)              (None, 256, 256, 3)   0
____________________________________________________________________________________________________
upsample2__zeropadding (ZeroPadd (None, 130, 130, 16)  0           conv2_2_16[0][0]
____________________________________________________________________________________________________
conv3_3_16 (Conv2D)              (None, 64, 64, 16)    36880       conv3_3_16_zeropadding[0][0]
____________________________________________________________________________________________________
conv4_3_16 (Conv2D)              (None, 32, 32, 16)    73744       conv4_3_16_zeropadding[0][0]
____________________________________________________________________________________________________
conv5_3_16 (Conv2D)              (None, 16, 16, 16)    73744       conv5_3_16_zeropadding[0][0]
____________________________________________________________________________________________________
new-score-weighting (Conv2D)     (None, 256, 256, 1)   4           concat[0][0]
____________________________________________________________________________________________________
upsample2_ (Conv2DTranspose)     (None, 262, 262, 16)  4112        upsample2__zeropadding[0][0]
____________________________________________________________________________________________________
upsample4_ (Conv2DTranspose)     (None, 260, 260, 16)  16400       conv3_3_16[0][0]
____________________________________________________________________________________________________
upsample8_ (Conv2DTranspose)     (None, 264, 264, 16)  65552       conv4_3_16[0][0]
____________________________________________________________________________________________________
upsample16_ (Conv2DTranspose)    (None, 272, 272, 16)  262160      conv5_3_16[0][0]
____________________________________________________________________________________________________
sigmoid-fuse (Activation)        (None, 256, 256, 1)   0           new-score-weighting[0][0]
====================================================================================================
Total params: 15,228,804
Trainable params: 15,228,804
Non-trainable params: 0
____________________________________________________________________________________________________

模型的JSON架构位于:https://pastebin.com/TE0Nda1p

有人知道我该如何解决这个问题吗?谢谢!

【问题讨论】:

  • 能否提供完整的model.summary()
  • 是的,我已经更新了问题。
  • 能否也给我们看一下模型本身的代码?看起来您正在尝试使用 2 个输入并将它们连接到“concat (InputLayer)”中,或者这是与输入本身的连接(如在残差块中)?
  • @sladomic 模型架构实际上是从 json 加载的,但我在问题的底部包含了一个 pastebin 链接。
  • 在第 2165 行可以看到,“conv1_1”和“concat”都被定义为输入层

标签: python arrays numpy tensorflow keras


【解决方案1】:

当outputs=[a,b]时我也有同样的问题,把它改成outputs=[a]。

【讨论】:

    猜你喜欢
    • 2021-12-17
    • 1970-01-01
    • 1970-01-01
    • 2021-07-14
    • 2020-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多