Keras model.predict()为测试输入中的所有值返回相同的预测输出

时间:2018-05-21 13:56:56

标签: python neural-network keras keras-layer

我正在使用Keras构建神经网络并且模型成功编译并且我已经对数据进行了规范化。

然而,当我使用model.predict(xtest)时,我得到每个预测输出的相同值

System.out.println(arr[arr.length - 1][0]);

我得到以下均方误差和mae:

def model_final():
    model = models.Sequential()
    model.add(layers.Dense(64, activation='relu',
                           input_shape=(xtrain.shape[1],),
                          kernel_regularizer = regularizers.l2(0.001)))
    model.add(layers.Dense(64, activation='relu',
                          kernel_regularizer = regularizers.l2(0.001)))
    model.add(layers.Dense(1))
    model.compile(optimizer='rmsprop', loss='mse', metrics=['mae'])
    return model

model = model_final()

model_final = model.fit(xtrain, ytrain, epochs = 100, batch_size = 10, verbose = 0)

model_final_eval = model.evaluate(xtest, ytest)

然后,当我使用214/214 [==============================] - 3s 14ms/step [1.9285373412534785e-06, 0.00061284683733987052] 时,我得到以下输出:

model.predict(xtest)

表示array([[ 0.0014801], [ 0.0014801], [ 0.0014801],... 中的所有值。

我假设数据集中所有值的完全相同的预测值不正确。

建议?

谢谢!

1 个答案:

答案 0 :(得分:0)

df = sc.parallelize(df.collect()).toDF().cache()未受过培训,您应该使用model

您是否在同一个脚本上调用model_final.predict(...)?如果没有,您可能需要加载权重。