将经过训练的模型转换为 Core ML

文章

将经过训练的模型转换为 Core ML

将使用第三方机器学习工具创建且经过训练的模型转换为 Core ML 模型格式。

概览

使用受支持的第三方机器学习框架创建和训练模型后,您可以使用 Core ML 工具或第三方转换工具 (如 MXNet 转换器 (英文) 、(ONNX 转换https://github.com/onnx/onnx-coreml)或 TensorFlow 转换器 (英文)) 将模型转换为 Core ML 模型格式。否则您将需要创建自己的转换工具。

 

使用 Core ML 工具(coremltools)

Core ML 工具 (英文) 是一个 Python 包,可将各种类型的模型转换为 Core ML 模型格式。下文表 1 中列出了受支持的模型和第三方框架。

具体安装使用参考“程序包文档 (英文)”。

 

表 1 

Core ML 工具支持的模型和第三方框架

模型类型

支持的模型

支持的框架

神经网络

前馈、卷积、循环

Caffe v1

Keras 1.2.2+

树集成

随机森林、提升树、决策树

scikit-learn 0.18

XGBoost 0.6

支持向量机

标量回归、多元分类

scikit-learn 0.18

LIBSVM 3.22

广义线性模型

线性回归、逻辑回归

scikit-learn 0.18

特征工程

稀疏向量矢量化、稠密向量矢量化、分类处理

scikit-learn 0.18

管道模型

顺序链模型

scikit-learn 0.18

 

 

转换模型

根据模型所用的第三方框架,您可以使用对应的 Core ML 转换器转换相应模型。调用转换器的 convert 方法,并将得到的模型存储为 Core ML 模型格式 (.mlmodel)。

例如,如果模型是使用 Caffe 创建的,请将 Caffe 模型 (.caffemodel) 传递给 coremltools.converters.caffe.convert 方法。

import coremltools
coreml_model = coremltools.converters.caffe.convert('my_caffe_model.caffemodel')

然后,将得到的模型存储为 Core ML 模型格式。

coremltools.utils.save_spec(coreml_model, 'my_model.mlmodel')

 

根据您的模型,您可能需要更新输入、输出和标签,或者可能需要声明图像名称、类型和格式。可用选项因工具而异,因此转换工具内置了更多文档。有关 Core ML 工具的更多信息,请参阅“程序包文档 (英文)”。

或者,自己编写自定义转换工具

如果上述所列工具不支持您需要转换的模型格式,您可以创建自己的转换工具。

在编写自己的转换工具时,会涉及到从模型的输入、输出和架构表示方法至 Core ML 模型格式的转换。为此,您需要定义每一层的模型架构以及每一层与其他层的连接。以 Core ML 工具 (英文) 提供的转换工具为例,它们展示了如何将使用第三方框架创建的各种模型类型转换为 Core ML 模型格式。

注释

Core ML 模型格式由一组协议缓冲文件定义,详见“Core ML 模型规范 (英文)”。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值