[英]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.