← 返回笔记列表
2026-07-08

ONNX、TFLite、Core ML 三者区别

模型格式ONNXTFLiteCore ML

概览

格式开发者适用平台特点
ONNX微软/社区跨平台通用交换格式,需 Runtime 推理
TFLiteGoogleAndroid 优先移动端优化好,量化工具成熟
Core MLAppleiOS/macOS与苹果生态深度集成,GPU/ANE 加速

关键区别

ONNX(Open Neural Network Exchange)

  • 定位:中间交换格式,不是最终部署格式
  • 流程:PyTorch → ONNX → ONNX Runtime 推理(或再转 TFLite / Core ML)
  • 优势:生态最广,几乎所有框架都能导出 ONNX
  • 劣势:需要额外 Runtime,包体积稍大

TensorFlow Lite

  • 定位:Google 专为移动端和嵌入式设备设计
  • 流程:TensorFlow → TFLite Converter(支持量化)
  • 优势:Android 原生支持最好,NNAPI 硬件加速
  • 劣势:以 TensorFlow 生态为主,PyTorch 模型需要中转

Core ML

  • 定位:苹果平台的原生推理方案
  • 流程:PyTorch → coremltools 转换 → .mlmodel
  • 优势:自动选择最佳硬件(CPU/GPU/ANE),iOS 上性能最优
  • 劣势:仅苹果生态,无法跨平台

我的选择

因为我的技术栈是 Flutter 三端(iOS + Android + 鸿蒙),考虑策略:

  • 统一方案:用 ONNX 作为中间格式,ONNX Runtime 做推理(C++ API),三端共享推理代码
  • 极致优化:Android 转 TFLite、iOS 转 Core ML,各自走最优路径
  • 鸿蒙:用 MindSpore Lite

接下来会分别实战这三种格式的转换和集成。