快速选择多个 .mlModel
Posted
技术标签:
【中文标题】快速选择多个 .mlModel【英文标题】:Selecting Multiple .mlModel in swift 【发布时间】:2020-08-15 08:31:15 【问题描述】:我的 xcode 项目中有多个 .mlModel,我希望用户选择模型并执行预测
let gestureClassifier = GestureClassifier() //mlModel
func predictGesture(window: Int)
let previousOutput = modelOutputs[window]
let modelOutput = try? gestureClassifier.prediction(features: modelInput, hiddenIn: previousOutput?.hiddenOut, cellIn: previousOutput?.cellOut)
modelOutputs[window] = modelOutput
if let prediction = modelOutput?.activity,
let probability = modelOutput?.activityProbability[prediction]
if prediction == Config.restItValue
return
if probability > Config.predictionThreshold
if prediction == Config.chopItValue || prediction == Config.driveItValue || prediction == Config.shakeItValue
print("prediction: \(prediction)")
self.recordGestures(gesture: prediction)
else
print("unrecognised gesture")
self.recordGestures(gesture: "unRecognised Gesture")
我有其他型号 手势分类器1 我想做这样的事情
func predictGesture(window: Int, **selectedModel**)
let previousOutput = modelOutputs[window]
let modelOutput = try? **selectedModel**.prediction(features: modelInput, hiddenIn:
previousOutput?.hiddenOut, cellIn: previousOutput?.cellOut)
我怎样才能做到这一点,我尝试使用 Anyclass 作为数据类型,但无法访问诸如 .prediction(..) 之类的类函数。
【问题讨论】:
【参考方案1】:这与其说是一个 Core ML 问题,不如说是一个一般性的编程问题:如何创建一个接受不同类型对象但以相同方式处理它们的函数?
一种方法是创建一个包含prediction()
方法的协议,然后为每个GestureClassifier
等类创建一个扩展,以使它们符合协议。
另一种方法是使用GestureClassifier
的.model
属性中的MLModel
并使用它。
【讨论】:
以上是关于快速选择多个 .mlModel的主要内容,如果未能解决你的问题,请参考以下文章