core ML之model转换

这次主要讲一下如何获得一个不是 CoreML 格式的数据模型,并把它转换为 Core ML 格式。

有许多热门的深度学习的框架,给开发者提供了设计,构建和训练他们自己模型的工具。我们这次以Caffe框架为例进行说明。Caffe是由Bekerley Artificial Intelligence Research (BAIR)开发的,它是在创建机器学习模型中最常使用的框架

在发布的时候,Core ML 不支持所有这些不同框架的模型转换。下图由 Apple 提供,展示了 Core ML 支持的模型以及第三方工具。


core ML之model转换_第1张图片
supported

首先,我们需要了解Core ML Tools 这个工具,这个工具能够将其他数据模型转化为core ML 数据模型

在安装coreMLTools这个工具之前,我么需要先安装Python,我推荐使用Anaconda(Python版本选择2.7)

Anaconda是一种超级简单的方式去运行 python 而不引起任何问题。安装好Anaconda以后,咱们在终端输入

conda install Python=2.7.13


core ML之model转换_第2张图片
install

安装好了以后顺手更新一下

conda update Python

然后进入到模型目录文件中(这是一个训练好的简单的人脸识别模型 face_caffe )

core ML之model转换_第3张图片
face_caffe

里面有

1. caffe格式训练过的数据模型:VGG_FACE.caffemodel

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

3. 这个模型所能识别的人脸的名字: names.txt

接下来,cd到模型文件目录中

导入coremltools工具

python

import coremltools

然后执行转换语句

coreml_model = coremltools.converters.caffe.convert(('VGG_FACE.caffemodel','VGG_FACE_deploy.prototxt'),image_input_names='data',class_labels='names.txt')


core ML之model转换_第4张图片
convert

1.image_input_names='data'

2.class_labels='names.txt'

这两个参数定义了我们希望的我们创建的 Core ML 模型所能接收的输入和输出。电脑只能懂数字,所以如果我们没有加这两个参数,我们的 Core ML 模型就只能接收数字作为输入和输出,而不是接收一个图片作为输入,将一个字符串作为输出。

现在可以让它慢慢转换,大概过若干分钟,就好了,时间长短取决于电脑性能

转换完成以后(界面如上)需要保存一下生的model

coreml_model.save('FaceDetect.mlmodel')

现在大功告成了(输入完指令以后大概还得5,6分钟)在目录中就可以看到咱们转换的core ML model文件


core ML之model转换_第5张图片
finish

你可能感兴趣的:(core ML之model转换)