iOS11 新特性-Core ML (三) Core ML 实战


    上篇中我们已经生成了一个 Core ML 模型文件:HousePricer.mlmodel,本篇将介绍如何将文件引入到项目中并调用相应的接口。

  1.      导入HousePricer.mlmodel到项目中
         1.1 文件导入方式同一般文件导入,采用拖拽或者菜单导入,选中导入的文件,我们可以查看模型的元数据及输入,输出信息(图一)
                                                              (图一)
    1.2 导入文件添加到编译资源
    上一步中导入的文件是不会自动添加到编译资源列表中(图二),我们需要手动添加到编译资源中,否则无法调用接口

                                                             (图二)
    此时,我们再次选中 模型文件,在元数据信息面板,我们可以看到 在 Model class 部分 多了一个 可以点击的 向右箭头(图三)

                                                             (图三)
    点击 箭头,则进入 自动生成的 类文件 HousePricer.swift, 其中包含三个类:
    • HousePricerInput         输入参数
    • HousePricerOutput      输出参数
    • HousePricer                 用于预测接口的调用
  2.    接口调用
    调用类中 生成 模型实例:

    ...
    let model = HousePricer()
    ...

    模型预测接口调用:
    模型中为我们生成了两个预测接口,代码如下:
        func prediction(input: HousePricerInput) throws -> HousePricerOutput {
            let outFeatures = try model.prediction(from: input)
            let result = HousePricerOutput(Price: outFeatures.featureValue(for: "Price")!.doubleValue)
            return result
        }
        func prediction(Square_Feet: Double) throws -> HousePricerOutput {
            let input_ = HousePricerInput(Square_Feet: Square_Feet)
            return try self.prediction(input: input_)
        }

    我们可以选择其中之一调用即可:
            let input = HousePricerInput(Square_Feet: size);
            guard let marsHabitatPricerOutput = try? model.prediction(input:input) else {
                fatalError("Unexpected runtime error.")
            }
            
            let price = marsHabitatPricerOutput.Price

    是不是很简单,完整代码示例,请移步Github

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值