簡體   English   中英

在 swift 中選擇 Multiple.mlModel

[英]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等類創建一個擴展,以使它們符合協議。

另一種方法是使用MLModelGestureClassifier屬性中的.model並使用它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM