预期输入有 4 个维度,但得到的数组具有形状

Posted

技术标签:

【中文标题】预期输入有 4 个维度,但得到的数组具有形状【英文标题】:expected input to have 4 dimensions, but got array with shape 【发布时间】:2018-07-25 10:34:59 【问题描述】:

我有这个错误

检查输入时出错:预期 input_13 有 4 个维度,但得到的数组的形状为 (7, 100, 100)

对于以下代码,我应该如何重塑数组以适应 4 维,我搜索了它,但不理解以前的解决方案。如果不清楚它在卷积神经网络中非常常见的问题,请询问。

inputs=Input(shape=(100,100,1))

x=Conv2D(16,(3,3), padding='same')(inputs)
x=Activation('relu')(x)
x=Conv2D(8,(3,3))(x)
x=Activation('relu')(x)
x=MaxPooling2D(pool_size=(2,2))(x)
x=Dropout(0.2)(x)
x=Dense(num_classes)(x)
x=Activation('softmax')(x)
output=Activation('softmax')(x)
model=Model([inputs], output)

【问题讨论】:

【参考方案1】:

如果 x 是您的数据数组,您应该简单地应用以下转换:

x = x.reshape((-1, 100, 100, 1))

【讨论】:

为什么我们使用-1你能解释一下吗 用法 -1 表示 - numpy 自动推断形状,

以上是关于预期输入有 4 个维度,但得到的数组具有形状的主要内容,如果未能解决你的问题,请参考以下文章

ValueError:检查输入时出错:预期 conv2d_input 有 4 个维度,但得到的数组具有形状(无,1)

ValueError:检查输入时出错:预期 lstm_1_input 具有 3 个维度,但得到的数组具有形状 (393613, 50)

检查输入时出错:预期 input_1 有 4 个维度,但得到了形状为 (224, 224, 3) 的数组

检查输入时出错:预期 lstm_input 有 3 个维度,但得到的数组形状为 (4, 1)

ValueError:检查输入时出错:预期 permute_input 有 4 个维度,但得到了形状为 (1, 4) 的数组

Keras 图像分类:检查输入时出错:预期 input_1 有 4 个维度,但得到了形状为 (6885、7500) 的数组