如何解决如何为视觉框架创建 MLFeatureProvider 类
我是 CoreML 的新手,在使用 MLMultiArray
时无法将 modelInput
(名为 MLFeatureProvider
)转换为所需的类型 myMLModel.prediction(from: modelInput)
作为参数馈送.错误如下:
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)}
}
解决方法
你当然可以创建一个 MLFeatureProvider 子类,但你不需要。
首先,您的代码片段未使用 Vision 框架,而是使用 Core ML。 Xcode 会自动为您生成一个类来创建 MLFeatureProvider。最好使用该类而不是直接使用 MLModel,因为自动生成的类对您隐藏了所有样板。
如果您仍想创建自己的 MLFeatureProvider,最简单的解决方案是首先创建一个包含 MLMultiArray 的 MLFeatureValue 对象,然后将其传递给 MLDictionaryFeatureProvider。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。