在手把手教你在应用里用上iOS机器学习框架Core ML里,我们用苹果提供的模型Places205-GoogLeNet在iOS应用里实现了一个支持Core ML的应用。然后在
5行代码训练出你的第一个机器学习模型里,训练了出了一个自己的机器学习模型。
接下来我来告诉你怎么在应用里用上自己训练的模型。
开发环境
在5行代码训练出你的第一个机器学习模型里的开发环境的基础上,我们还要安装苹果的coremltools。
在控制台执行下面这一行命令就够了。
pip install -U coremltools
如果你用的Python版本不是2.x,上面的命令会报错,这里有解决方案。
转换模型
我们在上篇文章的代码基础上往下写。简单说,就是我们的模型可以通过提供的性别和身高推算出人的体重,更多细节请翻回这里看。
from sklearn.linear_model import LinearRegression
import pandas as pd
full_data = pd.read_csv("Data.csv")
model = LinearRegression()
model.fit(full_data[['Gender', 'Height']], full_data["Weight"])
model就是我们在Python里的模型对象,下面我们把它转化成Core ML要用的mlmodel格式。
import coremltools
coreml_model = coremltools.converters.sklearn.convert(model, ["gender", "height"], "weight")
coreml_model.author = "chenyi"
coreml_model.license = 'BSD'
coreml_model.short_description = 'Predicts weight by gender and height'
coreml_model.input_description['gender'] = "Gender:0 for male;1 for female."
coreml_model.input_description['height'] = "Height in cm."
coreml_model.output_description['weight'] = "Weight in kg."
coreml_model.save('PredictWeight.mlmodel')
大部分代码都是用来填写模型的描述信息的,真正做转换工作的只有convert
和save
两行。
大功告成,接下来你就可以按照手把手教你在应用里用上iOS机器学习框架Core ML里提到的方法把模型用在自己的iOS应用上啦。
要注意一下,coremltools
现在的版本(0.3.0)还不支持sklearn
的所有算法。具体的支持情况请查阅文档。