.mlmodels 的枚举?

Posted

技术标签:

【中文标题】.mlmodels 的枚举?【英文标题】:Enum for .mlmodels? 【发布时间】:2020-07-29 03:02:13 【问题描述】:

因此,我目前正在开展一个项目,该项目包括使用 CreateML、CoreML 和 Vision 进行图像识别。我仍在尝试数据集并使用 CreateML 改进模型,但如果我从一个模型更改为另一个模型,我必须手动更改 Xcode 在将.mlmodel 文件导入项目时为我创建的变量let model = example()。所以我想用这些模型文件的名称做一个tableView,所以如果我点击其中一个,它会带我到“RecognitionVC”,将名称作为变量传递,这样我就可以用来自@的枚举实例化类987654330@ 然后访问我无法实现的“模型变量”。

这就是枚举的样子:

enum MLModels: String 
    case example
    case letters
    case ab
    case numbers
    case asl

这就是我想要实现的目标:

   func getModel() -> AnyClass 
        switch self 
        case .example:
            return example()
...
        
    

    var model: MLModel 
        switch self 
        case .example:
            return example()
...
        
    

我是这些机器学习内置框架的新手,如果有人能告诉我我做错了什么或如何实现这一点,我将不胜感激。谢谢,我包括一些截图。如果您想测试任何内容,包括指向苹果公共模型的链接:

link

【问题讨论】:

您到底想达到什么目的?在我看来,您面临的设计模式问题不仅仅是 CoreML 问题,不是吗? 【参考方案1】:

当您编写example() 时,它会创建一个包装类的实例。这不是MLModel。但是,它确实具有 MLModel 作为属性,因此您可以编写 return example().model 来做您想做的事情。

【讨论】:

是的,我也试过了,但它也没有工作,但你的回答让我找到了我的解决方案,所以我会把它标记为正确的。这是一个愚蠢的错误,我收到“Enum case 'example' cannot be used as an instance member”错误,因为类名是 example(),而我的 enum case 是相同的“example”。谢谢!

以上是关于.mlmodels 的枚举?的主要内容,如果未能解决你的问题,请参考以下文章

加载 mlmodel 时出现机器学习错误“No known class for loading model type > MLModelType_pipelineClassifier”

将 .caffemodel 转换为 .mlmodel 失败

从coremltools4.0转换的mlmodel比从tfcoreml转换的mlmodel慢很多

隐藏 CoreML 模型 (.mlmodel) 文件

动态加载 mlmodel

使用第一个 MLModel MLMultiArray 输出作为第二个 MLModel MLMultiArray 输入