You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Flutter中实现LogisticRegressionCv模型的加载调用

Flutter端使用.pkl格式LogisticRegressionCV模型的完整方案

你手里的.pkl格式模型是Python特有的序列化产物,无法直接在Dart环境下解析运行,必须先做格式转换再部署,具体步骤如下:

第一步:模型格式转换

优先选择转成ONNX通用模型格式,适配性更高、转换流程更简单:

  • 先在Python环境安装依赖:pip install scikit-learn onnx skl2onnx
  • 运行转换代码,注意输入维度要和你训练时的图片输入维度对齐:
import pickle
from skl2onnx import convert_sklearn
from skl2onnx.common.data_types import FloatTensorType

# 加载本地pkl模型文件
with open("your_model.pkl", "rb") as f:
    lr_model = pickle.load(f)

# 此处以单张28*28灰度图拉平为784维向量为例,替换为你模型的实际输入维度
input_shape = [("float_input", FloatTensorType([None, 784]))]
onnx_model = convert_sklearn(lr_model, initial_types=input_shape)

# 导出转换后的ONNX模型
with open("lr_model.onnx", "wb") as f:
    f.write(onnx_model.SerializeToString())

第二步:Flutter端部署

使用ONNX Runtime官方Flutter插件完成推理:

  1. 在pubspec.yaml中添加依赖和模型资源声明:
dependencies:
  flutter:
    sdk: flutter
  onnxruntime_flutter: ^1.16.0 # 可替换为最新稳定版本

flutter:
  assets:
    - assets/lr_model.onnx
  1. 图片预处理:必须和训练时的预处理逻辑完全一致,包括灰度转换、尺寸缩放、像素值归一化、维度拉平等所有步骤,这是推理结果准确的核心前提。
  2. 模型加载与推理示例代码:
import 'package:onnxruntime/onnxruntime.dart';
import 'dart:typed_data';

OrtEnv? _ortEnv;
OrtSession? _modelSession;

// 初始化模型,建议在应用启动时调用
Future<void> initModel() async {
  _ortEnv = OrtEnv();
  final sessionOpts = OrtSessionOptions();
  _modelSession = await OrtSession.fromAsset("assets/lr_model.onnx", sessionOpts);
}

// 执行推理,inputData为预处理后的图片一维浮点数组
List<double> runInference(Float32List inputData) {
  if (_modelSession == null) throw Exception("模型未初始化");
  // 输入维度替换为你模型的实际输入维度,示例为1张784维的输入
  final inputTensor = OrtValueTensor.createTensorWithDataList(inputData, [1, 784]);
  final runOpts = OrtRunOptions();
  final outputs = _modelSession!.run(runOpts, {"float_input": inputTensor});
  return outputs[0].value as List<double>;
}

注意事项

  • 如果模型输入为多通道彩色图片,转换时的输入维度要对应调整,比如3通道224*224的图片拉平后维度为150528
  • 若你的模型输出是分类概率,可直接取最大值对应的索引作为分类结果

内容的提问来源于stack exchange,提问作者zeewa42

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 21:06:05