美文网首页机器学习之路iOS Developer
如何把sklearn机器学习模型转换为Core ML支持的格式

如何把sklearn机器学习模型转换为Core ML支持的格式

作者: Cyyyyyyyy | 来源:发表于2017-06-14 16:24 被阅读254次

    手把手教你在应用里用上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')
    

    大部分代码都是用来填写模型的描述信息的,真正做转换工作的只有convertsave两行。

    大功告成,接下来你就可以按照手把手教你在应用里用上iOS机器学习框架Core ML里提到的方法把模型用在自己的iOS应用上啦。

    要注意一下,coremltools现在的版本(0.3.0)还不支持sklearn的所有算法。具体的支持情况请查阅文档

    参考资料

    CoreMLTools官网
    CoreMLTools文档

    相关文章

      网友评论

        本文标题:如何把sklearn机器学习模型转换为Core ML支持的格式

        本文链接:https://www.haomeiwen.com/subject/xnxeqxtx.html