python 部署模型代码
时间: 2023-10-14 14:07:12 浏览: 130
将模型部署到生产环境中通常需要将其转换为可部署的格式,例如 TensorFlow Serving 或 ONNX。这里提供一个简单的例子,使用 Flask 将一个 Scikit-Learn 模型部署为 Web 服务。
首先,安装 Flask 和 Scikit-Learn:
```
pip install flask scikit-learn
```
然后编写一个简单的 Flask 应用程序,其中包含一个 POST 路由来接收输入数据并返回模型的预测结果:
```python
from flask import Flask, request, jsonify
from sklearn.externals import joblib
app = Flask(__name__)
model = joblib.load('model.pkl')
@app.route('/predict', methods=['POST'])
def predict():
data = request.get_json(force=True)
prediction = model.predict([data['input']])
output = {'prediction': int(prediction[0])}
return jsonify(output)
if __name__ == '__main__':
app.run(port=5000, debug=True)
```
在这个例子中,我们使用 `joblib` 库加载保存在 `model.pkl` 文件中的 Scikit-Learn 模型。然后,我们定义了一个 POST 路由 `/predict`,它将 JSON 格式的输入数据传递给模型进行预测,并将结果以 JSON 格式返回。
最后,我们通过 `app.run` 启动 Flask 应用程序,并指定监听的端口号和调试模式。
将上述代码保存在 `app.py` 文件中,并使用以下命令启动应用程序:
```
python app.py
```
现在,您可以使用任何 HTTP 客户端向 `http://localhost:5000/predict` 发送 POST 请求,并传递包含输入数据的 JSON 对象,以获得模型的预测结果。例如,以下是使用 `curl` 命令发送 POST 请求的示例:
```
curl -H "Content-Type: application/json" -X POST -d '{"input": [1, 2, 3]}' http://localhost:5000/predict
```
请注意,这只是一个简单的例子,并不适用于所有模型部署方案。在生产环境中,您可能需要考虑使用更复杂的部署方案,例如 Kubernetes、Docker 或 TensorFlow Serving 等。
阅读全文