在手把手教你在應(yīng)用里用上iOS機器學(xué)習(xí)框架Core ML里,我們用蘋果提供的模型Places205-GoogLeNet在iOS應(yīng)用里實現(xiàn)了一個支持Core ML的應(yīng)用鹊漠。然后在
5行代碼訓(xùn)練出你的第一個機器學(xué)習(xí)模型里主到,訓(xùn)練了出了一個自己的機器學(xué)習(xí)模型。
接下來我來告訴你怎么在應(yīng)用里用上自己訓(xùn)練的模型躯概。
開發(fā)環(huán)境
在5行代碼訓(xùn)練出你的第一個機器學(xué)習(xí)模型里的開發(fā)環(huán)境的基礎(chǔ)上登钥,我們還要安裝蘋果的coremltools。
在控制臺執(zhí)行下面這一行命令就夠了楞陷。
pip install -U coremltools
如果你用的Python版本不是2.x怔鳖,上面的命令會報錯茉唉,這里有解決方案固蛾。
轉(zhuǎn)換模型
我們在上篇文章的代碼基礎(chǔ)上往下寫结执。簡單說,就是我們的模型可以通過提供的性別和身高推算出人的體重艾凯,更多細節(jié)請翻回這里看献幔。
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里的模型對象,下面我們把它轉(zhuǎn)化成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')
大部分代碼都是用來填寫模型的描述信息的蜡感,真正做轉(zhuǎn)換工作的只有convert
和save
兩行。
大功告成恃泪,接下來你就可以按照手把手教你在應(yīng)用里用上iOS機器學(xué)習(xí)框架Core ML里提到的方法把模型用在自己的iOS應(yīng)用上啦郑兴。
要注意一下,coremltools
現(xiàn)在的版本(0.3.0)還不支持sklearn
的所有算法贝乎。具體的支持情況請查閱文檔情连。