ValueError:检查时出错:预期density_1_input的形状为(3,),但数组的形状为(1,)

发布于 2021-01-29 15:04:20

我正在尝试使用学习的.h5文件进行预测。学习模型如下。

model =Sequential()
model.add(Dense(12, input_dim=3, activation='relu'))
model.add(Dense(8, activation='relu'))
model.add(Dense(4, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer = 'adam', metrics = ['accuracy'])

我将输入的形式编写如下。

x = np.array([[band1_input[input_cols_loop][input_rows_loop]],[band2_input[input_cols_loop][input_rows_loop]],[band3_input[input_cols_loop][input_rows_loop]]])

prediction_prob = model.predict(x)

我以为形状正确,但是发生以下错误。

ValueError:检查时出错:预期density_1_input的形状为(3,),但数组的形状为(1,)

的形状x显然是(3,1),但上述错误并没有消失(数据来自的CSV文件(value 1, value 2, value 3, class))。

我怎么解决这个问题?

关注者
0
被浏览
56
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    x的形状显然是(3,1),但上述误差仍在继续。

    您是对的,但这 不是 keras期望的。预期(1, 3)形状:按照惯例,轴0表示批次大小,轴1表示特征。第一Dense层接受3个功能,这就是为什么仅看到一个功能就会抱怨的原因。

    解决的方法就是简单地转置x



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看