如何将模型转换成Core ML格式

1、检查python版本

因mac电脑自动python 环境,在终端我们可以通过指令检查下python版本

python

检查下当前的python版本

2、通过Anacoda更新和切换Python版本

如果你当前的Python 版本不是 2.7.13(苹果在这里要求是2.7.13版本),我们可以通过Anacoda(conda is a tool for managing and deploying applications, environments and packages.)工具来管理或更新我们的Python版本,可以在官网(https://www.anaconda.com/download/)下载2.7版本


Anoconda

3、安装Anacoda

一直点下一步安装Anacoda


双击打开后再打开终端来用

然后在终端输入指令 安装或者切换对应Python版本

conda install python=2.7.13

我这是举例从2.13切换到2.14版本

再输入

conda update python

看到Python的版本信息是2.7.13,说明已经版本切换成功

4、模型转换

然后通过conda 开辟一个然后通过conda 开辟一个空间(空间名字flowerrec),在终端输入

conda create --name flowerrec


选择y,会出现上面信息

如果没有安装pip 先输入这个指令conda 按照一个pip,这个pip 相当于我们使用pod 一样,里面是Python用来安装包的指令

easy_install pip //如果没有安装pip 先输入这个指令

pip install -U coremltools

conda create --name flowerrec开辟空间之后系统会提示,输入source activate flowerrec

source activate flowerrec

输入指令后 终端信息的前面出现 flowerrec 说明进入空间成功

选择下载后的模型文件(这里是一个识别花的模型):

deploy.prototxt: 描述神经网络的结构

oxford102.caffemodel:coffe格式的数据训练模型

class_labels.txt:识别出來的花的种类


模型文件

通过终端cd 指令进入上面模型文件所在路径,在flowerre有前缀下在终端输入python

python

再导入Core ML Tools

import coremltools

再CoreMLTools下面converters.caffe.convert这个包下通过指令进行转换(在python环境,coreml_model变量不需要申明类型,直接将转换之后的值赋给他就可以)

coreml_model = coremltools.converters.caffe.convert(('oxford102.caffemodel', 'deploy.prototxt'), image_input_names='data', class_labels='class_labels.txt')

对比Xcode里面模型解释下


在Xcod里面打开CoreML模型

image_input_names='data' 输入数据

class_labels='class_labels.txt' 输出结果

转换的时候在终端可以看到下面信息,Layer代表模型有多少层,已经每一层的输入输出

模型转换时的信息Layer Input Output等等

最后在终端看到 >>> 看到他 才是模型生成完了(需要等几分钟)

5、保存模型

coreml_model.save('Flowers.mlmodel')

将模型命名为Flowers,mlmodel格式

最后在对应路径可以可以看到我们转换后的模型文件,可以直接拖到Xcode进行使用


转换后的模型
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容