我正在尝试使用学习的.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)
(value 1, value 2, value 3, class)
我怎么解决这个问题?
x的形状显然是(3,1),但上述误差仍在继续。
您是对的,但这 不是 keras期望的。预期(1, 3)形状:按照惯例,轴0表示批次大小,轴1表示特征。第一Dense层接受3个功能,这就是为什么仅看到一个功能就会抱怨的原因。
(1, 3)
Dense
解决的方法就是简单地转置x。