【发布时间】:2019-01-12 02:19:10
【问题描述】:
我是 python 和机器学习的新手。我有一个线性回归模型,它能够根据我转储以用于 Web 服务的输入来预测输出。请看下面的代码:
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25)
regression_model = LinearRegression()
regression_model.fit(X_train, y_train)
print(regression_model.predict(np.array([[21, 0, 0, 0, 1, 0, 0, 1, 1, 1]]))) # this is returning my expected output
joblib.dump(regression_model, '../trainedModels/MyTrainedModel.pkl')
我正在尝试使用烧瓶将其作为 Web 服务公开,如下所示:
@app.route('/predict', methods=['POST'])
def predict():
X = [[21, 0, 0, 0, 1, 0, 0, 1, 1, 1]]
model = joblib.load('../trainedModels/MyTrainedModel.pkl')
prediction = model.predict(np.array(X).tolist())
return jsonify({'prediction': list(prediction)})
但它抛出了以下异常
Object of type 'ndarray' is not JSON serializable
我试过NumPy array is not JSON serializable
但仍然是同样的错误。我该如何解决这个问题
【问题讨论】:
-
prediction的形状和数据类型是什么?
标签: python numpy machine-learning flask scikit-learn