[英]Selecting Multiple .mlModel in swift
我的 xcode 项目中有多个.mlModel,我希望用户使用 select model 并执行预测
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")
}
}
}
我有另一个 model gestureClassifier1 我想做这样的事情
func predictGesture(window: Int, **selectedModel**) {
let previousOutput = modelOutputs[window]
let modelOutput = try? **selectedModel**.prediction(features: modelInput, hiddenIn:
previousOutput?.hiddenOut, cellIn: previousOutput?.cellOut)
}
我该如何实现这一点,我尝试使用 Anyclass 作为数据类型,但 class 函数(如 .prediction(..))无法访问。
这与其说是一个 Core ML 问题,不如说是一个一般性的编程问题:如何制作一个 function 接受不同类型的对象但以相同的方式对待它们?
一种方法是创建一个包含prediction()
方法的协议,然后为每个GestureClassifier
等类创建一个扩展,以使它们符合协议。
另一种方法是使用MLModel
的GestureClassifier
属性中的.model
并使用它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.