搜索
您的当前位置:首页正文

CoreML实践

来源:二三娱乐

1.建立一个scikit-learn线性模型

用sublime或者其他编辑器建立一个python脚本。利用numpy框架建立一个随机数集。

import numpy as np  
x_values = np.linspace(-2.25,2.25,300)  
y_values = np.array([np.sin(x) + np.random.randn()*.25 for x in x_values]) 

然后利用线性回归模型来训练模型。

from sklearn.linear_model import LinearRegression  
lm = LinearRegression().fit(x_values.reshape(-1,1), y_values) 

2.转化成CoreML模型

Core ML除了支持线性模型外,还支持许多机器学习模型,比如神经网络模型,基于树的模型等。Core ML模型的格式是以.mlmodel 结尾。首先进行模型转换,然后导入作者信息,还有其他元数据等,最后保存转换后的模型。

from coremltools.converters import sklearn  
coreml_model = sklearn.convert(lm) 
coreml_model.author = "WJ"  
print(coreml_model.author) 
coreml_model.short_description = "I approximate a sine curve with a linear model!"  
coreml_model.input_description["input"] = "a real number"  
coreml_model.output_description["prediction"] = "a real number"
print(coreml_model.short_description) 
coreml_model.save('linear_model.mlmodel')  
3.使用CoreML进行预测

新建一个xcode工程,直接拖入刚才训练好的linear_model.mlmodel。点击这个模型,可以看到一些模型信息。

image.png

然后点开Model Class中的箭头,可以看到模型暴露的方法。linear_modelInput和linear_modelOutput类一个表示输入类,一个表示输出类。linear_model是一个用来预测的类。

image.png

然后拖入一个输入的textfield和输出的textfield用来显示,再监听输入的值,来预测输出的值。

image.png
Top