ошибка с CoreML: исходный файл недействителен при импорте mymodel.mlmodel - PullRequest
0 голосов
/ 30 января 2019

У меня проблема при создании приложения ios с моделью CoreML.Я использовал этот пример кода для реализации coreML в моем проекте.Я могу запустить пример кода при клонировании его из github с заданной моделью в репозитории, но при вставке в свою собственную модель я получаю сообщение об ошибке:

lexical preprocessor issue
    source file is not valid UTF-8
        SSD_model.mlmodel

Моя модель представляет собой модель SSD для генерации ограничениябоксы (и не только обнаружение объектов, как модель репо), так что это может создать проблему.Я обучил его, используя API обнаружения объектов tenorflow, и экспортировал его в coreML, используя этот полезный пост в блоге .Я убедился, что моя модель хорошо работает, протестировав ее в другом скрипте , созданном для моделей с твердотельными накопителями.Вот фрагмент из первого примера, как я сейчас импортирую модель:

#import <CoreML/CoreML.h>
#import <Vision/Vision.h>
#import "SSD_model.mlmodel"

- (void)viewDidLoad {
    [super viewDidLoad];

    model = [[[SSD_model alloc] init] model]
    m = [VNCoreMLModel modelForMLModel: model error:nil];

Нужно ли что-то изменить в этом объективном коде C, чтобы он работал?Или какие-либо настройки проекта, которые я мог бы забыть?Спасибо!

1 Ответ

0 голосов
/ 30 января 2019

Вы получаете эту ошибку из-за этого => #import "SSD_model.mlmodel"

По существу, компилятор пытается импортировать некоторый исходный код и вместо этого находит то, чего нет.

Вам необходимо сначала скомпилировать эту модель, чтобы использовать ее.Вы можете скомпилировать его либо с помощью Xcode (он автоматически сгенерирует интерфейс для вас), либо с помощью API , которые компилируют модель во время выполнения (так что вы можете обновить свои модели без необходимости выпускановая версия приложения).


Примечание. В приведенном вами примере автор импортирует SomeModel.h (который, как я полагаю, является заголовком автогена для ObjC), а - нет SomeModel.mlmodel.Так что я думаю, это было то, что вы, вероятно, намеревались сделать.

...