很多同学训练好 MindSpore 模型后,不知道怎么快速落地用起来,分享 2 个我常用的轻量部署方案,零基础也能搞定~
方案 1:端侧本地部署(用 MindSpore Lite)
适合把模型装到手机 / 嵌入式设备,步骤超简单:
先把训练好的模型转成 MindIR 格式(MindSpore 统一模型格式):
from mindspore import save_checkpoint, load_checkpoint, load_param_into_net, export from mindspore import Tensor, dtype as mstype # 加载训练好的模型 net = YourTrainedModel() param_dict = load_checkpoint("your_model.ckpt") load_param_into_net(net, param_dict) # 导出为MindIR input_tensor = Tensor([1,2,3], mstype.float32) # 模拟输入形状 export(net, input_tensor, file_name="model.mindir", file_format="MINDIR")用 MindSpore Lite 转换为端侧模型:
去 MindSpore 官网下载 Lite 工具包,执行命令转格式:
mindspore-lite-converter --fmk=MINDIR --modelFile=model.mindir --outputFile=lite_model
3.端侧推理
from mindspore_lite import Model, Context # 初始化上下文 context = Context() context.target = ["cpu"] # 加载Lite模型 model = Model() model.build_from_file("lite_model.ms", context=context) # 推理 input_data = [Tensor([1,2,3], mstype.float32)] outputs = model.predict(input_data) print("推理结果:", outputs[0].asnumpy())方案 2:Web 接口部署(用 Flask 封装)
适合把模型做成 HTTP 接口,供前端 / 其他服务调用:
安装依赖:
pip install flask mindspore
写接口代码(app.py):
from flask import Flask, request, jsonify from mindspore import load_checkpoint, load_param_into_net, Tensor, dtype as mstype import numpy as np app = Flask(__name__) # 加载模型(启动时只加载一次) net = YourTrainedModel() param_dict = load_checkpoint("your_model.ckpt") load_param_into_net(net, param_dict) @app.route("/predict", methods=["POST"]) def predict(): # 接收请求数据 data = request.json.get("input") input_tensor = Tensor(np.array(data), mstype.float32) # 模型推理 result = net(input_tensor).asnumpy().tolist() return jsonify({"result": result}) if __name__ == "__main__": app.run(host="0.0.0.0", port=5000)测试接口:
用 Postman 或 curl 发 POST 请求:
curl -X POST http://127.0.0.1:5000/predict -H "Content-Type: application/json" -d '{"input": [1,2,3]}'
这两个方案我日常用得最多,不用复杂框架就能快速让模型 “跑起来”~