如何为视觉框架创建 MLFeatureProvider 类
Posted
技术标签:
【中文标题】如何为视觉框架创建 MLFeatureProvider 类【英文标题】:How to create MLFeatureProvider class for vision framework 【发布时间】: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
catchprint(error)
【问题讨论】:
【参考方案1】:你当然可以创建一个 MLFeatureProvider 子类,但你不需要。
首先,您的代码 sn-p 不是使用 Vision 框架,而是使用 Core ML。 Xcode 会自动为您生成一个创建 MLFeatureProvider 的类。使用该类而不是直接使用 MLModel 是个好主意,因为自动生成的类对您隐藏了所有样板。
如果您仍想创建自己的 MLFeatureProvider,最简单的解决方案是首先创建一个包含 MLMultiArray 的 MLFeatureValue 对象,然后将其传递给 MLDictionaryFeatureProvider。
【讨论】:
以上是关于如何为视觉框架创建 MLFeatureProvider 类的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET:如何为 GridView 创建自定义分页器?
Python sklearn 逻辑回归 K-hold 交叉验证:如何为 coef_ 创建一个框架