如何为视觉框架创建 MLFeatureProvider class
How to create MLFeatureProvider class for vision framework
我是 CoreML 的新手,在将 MLMultiArray
(名为 modelInput
)转换为所需类型 MLFeatureProvider
以在使用 [=16 时作为参数提供时遇到困难=].错误内容为:
Argument type 'MLMultiArray' does not conform to expected type 'MLFeatureProvider'
根据我的阅读,我相信我必须创建一个 class 子 class 是 'MLFeatureProvider' 允许我将 modelInput
初始化为 'MLFeatureProvider'。但我对如何执行此操作感到困惑。
这些文件是否按照 this article 的建议由 Xcode 生成?还是我必须自己创建这些?
欢迎任何意见。
//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 子class,但您不需要。
首先,您的代码片段没有使用 Vision 框架,而是使用了 Core ML。 Xcode 自动为您生成一个 class 来创建 MLFeatureProvider。使用 class 而不是直接使用 MLModel 是个好主意,因为自动生成的 class 对您隐藏了所有样板文件。
如果您仍想创建自己的 MLFeatureProvider,最简单的解决方案是首先创建一个包含 MLMultiArray 的 MLFeatureValue 对象,然后将其传递给 MLDictionaryFeatureProvider。
我是 CoreML 的新手,在将 MLMultiArray
(名为 modelInput
)转换为所需类型 MLFeatureProvider
以在使用 [=16 时作为参数提供时遇到困难=].错误内容为:
Argument type 'MLMultiArray' does not conform to expected type 'MLFeatureProvider'
根据我的阅读,我相信我必须创建一个 class 子 class 是 'MLFeatureProvider' 允许我将 modelInput
初始化为 'MLFeatureProvider'。但我对如何执行此操作感到困惑。
这些文件是否按照 this article 的建议由 Xcode 生成?还是我必须自己创建这些?
欢迎任何意见。
//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 子class,但您不需要。
首先,您的代码片段没有使用 Vision 框架,而是使用了 Core ML。 Xcode 自动为您生成一个 class 来创建 MLFeatureProvider。使用 class 而不是直接使用 MLModel 是个好主意,因为自动生成的 class 对您隐藏了所有样板文件。
如果您仍想创建自己的 MLFeatureProvider,最简单的解决方案是首先创建一个包含 MLMultiArray 的 MLFeatureValue 对象,然后将其传递给 MLDictionaryFeatureProvider。