Перечисление для .mlmodels? - PullRequest
1 голос
/ 16 апреля 2020

Поэтому я сейчас работаю над проектом, который включает в себя распознавание изображений с помощью CreateML, CoreML и Vision. Я все еще пробую наборы данных и улучшаю модели с помощью CreateML, но если я перехожу с модели на другую, мне нужно вручную изменить переменную let model = example(), которую Xcode создает для меня, когда я импортирую файл .mlmodel в проект. Поэтому я хотел сделать tableView с именем этих файлов моделей, поэтому, если я коснусь одного из них, он приведет меня к «RecognitionV C», передав имя в качестве переменной, чтобы я мог создать экземпляр класса с помощью перечисления из rawValue (строка) и затем получить доступ к его «переменной модели», которую я не могу достичь.

Вот как будет выглядеть enum:

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()
...
        }
    }

Я новичок в этом машинном обучении, встроенном в фреймворки, если кто-то может сообщить мне, что я делаю неправильно или как я могу этого добиться, я был бы очень благодарен. Спасибо, я в том числе некоторые скриншоты. И на случай, если вы захотите что-нибудь протестировать, включая ссылку на модели apple publi c:

link

folder example1 example2

1 Ответ

1 голос
/ 16 апреля 2020

Когда вы пишете example(), он создает экземпляр класса-оболочки. Это не MLModel. Тем не менее, он имеет MLModel как свойство, поэтому вы можете написать return example().model, чтобы делать то, что вы хотите.

...