当前位置: 首页 > 面试题库 >

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

阎涵忍
2023-03-14
问题内容

我正在尝试使用学习的.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))。

我怎么解决这个问题?


问题答案:

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

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

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



 类似资料: