【问题标题】:How to create MLFeatureProvider class for vision framework如何为视觉框架创建 MLFeatureProvider 类
【发布时间】:2021-07-13 10:30:48
【问题描述】:

我是 CoreML 的新手,在使用 myMLModel.prediction(from: modelInput) 时难以将 MLMultiArray(名为 modelInput)转换为所需的类型 MLFeatureProvider 以作为参数提供。错误显示:

Argument type 'MLMultiArray' does not conform to expected type 'MLFeatureProvider'

根据我的阅读,我相信我必须创建一个子类“MLFeatureProvider”的类,它允许我将modelInput 初始化为“MLFeatureProvider”。但我不知道该怎么做。

这些文件是由 Xcode 生成的,正如this article 所建议的那样吗?还是我必须自己创建这些?

感谢任何输入。

//function inside of Predictor class

func makePrediction(){

let model: MLModel = configureModel(url: url)

let poseMultiArrays = [MLMultiArray] = getPoseMultiArrays()


let modelInput = MLMultiArray(concatenating: poseMultiArrays, axis: 0, dataType: .float)


//Perform prediction

var prediction: MLFeatureProvider?

do{
   
   prediction = try? model.prediction(from: modelInput) //< The error occurs here

}catch{print(error)}

}

【问题讨论】:

    标签: swift coreml vision


    【解决方案1】:

    你当然可以创建一个 MLFeatureProvider 子类,但你不需要。

    首先,您的代码 sn-p 不是使用 Vision 框架,而是使用 Core ML。 Xcode 会自动为您生成一个创建 MLFeatureProvider 的类。使用该类而不是直接使用 MLModel 是个好主意,因为自动生成的类对您隐藏了所有样板。

    如果您仍想创建自己的 MLFeatureProvider,最简单的解决方案是首先创建一个包含 MLMultiArray 的 MLFeatureValue 对象,然后将其传递给 MLDictionaryFeatureProvider。

    【讨论】:

      猜你喜欢
      • 2019-06-22
      • 2020-05-23
      • 2017-12-10
      • 1970-01-01
      • 1970-01-01
      • 2021-07-16
      • 2017-12-13
      • 2018-08-24
      • 2018-06-24
      相关资源
      最近更新 更多