这次主要讲一下如何获得一个不是 CoreML 格式的数据模型,并把它转换为 Core ML 格式。
有许多热门的深度学习的框架,给开发者提供了设计,构建和训练他们自己模型的工具。我们这次以Caffe框架为例进行说明。Caffe是由Bekerley Artificial Intelligence Research (BAIR)开发的,它是在创建机器学习模型中最常使用的框架
在发布的时候,Core ML 不支持所有这些不同框架的模型转换。下图由 Apple 提供,展示了 Core ML 支持的模型以及第三方工具。
首先,我们需要了解Core ML Tools 这个工具,这个工具能够将其他数据模型转化为core ML 数据模型
在安装coreMLTools这个工具之前,我么需要先安装Python,我推荐使用Anaconda(Python版本选择2.7)
Anaconda是一种超级简单的方式去运行 python 而不引起任何问题。安装好Anaconda以后,咱们在终端输入
conda install Python=2.7.13
安装好了以后顺手更新一下
conda update Python
然后进入到模型目录文件中(这是一个训练好的简单的人脸识别模型 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')
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文件