繁体   English   中英

使用 Create ML 创建模型并在元数据中查找类

[英]Create a model using Create ML and find classes in metaData

我正在使用 Create ML 使用 Image Classifier 项目创建一个.mlmodel文件。 创建 ML,为 2 个类创建此文件。

拖动创建的 ML 模型文件并将其添加到编译源后,下面的代码能够找到文件并创建模型。

但是元数据不显示类,有什么原因吗? 我如何知道 mlmodel 文件中的类?

let error: NSError! = nil
        
        guard let modelURL = Bundle.main.url(forResource: "ObjectDetector", withExtension: "mlmodelc") else {
            return 
        }
        do {
            let model = try MLModel(contentsOf: modelURL)
            let visionModel = try VNCoreMLModel(for: model)
            let metaData =  model.modelDescription.metadata[.creatorDefinedKey] as! [String:String]
             // ERROR: It  could not find metaData["classes"]
            let allClasses = metaData["classes"]!.components(separatedBy: ",")


            let objectRecognition = VNCoreMLRequest(model: visionModel, completionHandler: { (request, error) in
                DispatchQueue.main.async(execute: {
                    // perform all the UI updates on the main queue
                    if let results = request.results {
                        self.drawVisionRequestResults(results)
                    }
                })
            })
            self.requests = [objectRecognition]
        } catch let error as NSError {
            print("Model loading went wrong: \(error)")
        }

请注意,我没有收到“尚未生成模型类。”。 https://stackoverflow.com/questions/462476...

单击 ML 模型文件会显示自动生成的 Swift 模型类。

类数据是 mlmodel 文件的一部分,但不在元数据中。 如果需要,您可以将其添加到元数据中,但您必须为此编写一个简短的 Python 脚本。

从 iOS 14 开始,有MLModelDescription.classLabels还允许您访问类名列表。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM