loadCompactModel

(Чтобы быть удаленным), Восстанавливают объект модели из сохраненной модели для генерации кода

loadCompactModel будет удален в будущем релизе. Используйте loadLearnerForCoder вместо этого. Чтобы обновить ваш код, просто замените экземпляры loadCompactModel с loadLearnerForCoder.

Описание

Сгенерировать код C/C++ для объектных функций (predict, random, knnsearch, или rangesearch) из моделей машинного обучения используйте saveCompactModel, loadCompactModel, и codegen. После обучения модель машинного обучения сохраните модель при помощи saveCompactModel. Задайте функцию точки входа, которая загружает модель при помощи loadCompactModel и вызывает объектную функцию. Затем используйте codegen или приложение MATLAB® Coder™, чтобы сгенерировать код C/C++. Генерация кода C/C++ требует MATLAB Coder.

Эта блок-схема показывает рабочий процесс генерации кода для объектных функций моделей машинного обучения. Используйте loadCompactModel для подсвеченного шага.

пример

Mdl = loadCompactModel(filename) восстанавливает модель классификации, модель регрессии или самого близкого соседнего искателя (Mdl) из модели, сохраненной в MATLAB, отформатировал двоичный файл (MAT-файл) под названием filename. Необходимо создать filename файл при помощи saveCompactModel.

Примеры

свернуть все

После обучения модель машинного обучения сохраните модель при помощи saveCompactModel. Задайте функцию точки входа, которая загружает модель при помощи loadCompactModel и вызывает predict функция обученной модели. Затем используйте codegen сгенерировать код C/C++.

Этот пример кратко объясняет рабочий процесс генерации кода для прогноза моделей машинного обучения в командной строке. Для получения дополнительной информации смотрите Генерацию кода для Прогноза Модели Машинного обучения в Командной строке. Можно также сгенерировать код с помощью приложения MATLAB Coder. Смотрите Генерацию кода для Прогноза Модели Машинного обучения Используя Приложение MATLAB Coder для деталей. Чтобы узнать о генерации кода для нахождения самых близких соседей, использующих самую близкую соседнюю модель искателя, смотрите Генерацию кода для Самого близкого Соседнего Искателя.

Обучите модель

Загрузите ирисовый набор данных Фишера. Удалите все заметили, что setosa диафрагмирует данные так, чтобы X и Y содержите данные для двух классов только.

load fisheriris
inds = ~strcmp(species,'setosa');
X = meas(inds,:);
Y = species(inds);

Обучите модель классификации машин опорных векторов (SVM) использование обработанного набора данных.

Mdl = fitcsvm(X,Y);

Mdl ClassificationSVM модель.

Сохраните модель

Сохраните модель классификации SVM в файл SVMIris.mat при помощи saveCompactModel.

saveCompactModel(Mdl,'SVMIris');

Задайте функцию точки входа

Задайте функцию с именем точки входа classifyIrises это делает следующее:

  • Примите ирисовые цветочные измерения со столбцами, соответствующими meas, и возвратите предсказанные метки.

  • Загрузите обученную модель классификации SVM.

  • Предскажите метки с помощью загруженной модели классификации в ирисовых цветочных измерениях.

type classifyIrises.m % Display contents of classifyIrises.m file
function label = classifyIrises(X) %#codegen
%CLASSIFYIRISES Classify iris species using SVM Model
%   CLASSIFYIRISES classifies the iris flower measurements in X using the
%   compact SVM model in the file SVMIris.mat, and then returns class
%   labels in label.
CompactMdl = loadCompactModel('SVMIris');
label = predict(CompactMdl,X);
end

Добавьте %#codegen директива компилятора (или прагма) к функции точки входа после функциональной подписи, чтобы указать, что вы намереваетесь сгенерировать код для алгоритма MATLAB. Добавление этой директивы дает Анализатору кода MATLAB команду помогать вам диагностировать и зафиксировать нарушения, которые привели бы к ошибкам во время генерации кода.

Примечание: Если вы нажимаете кнопку, расположенную в верхнем правом разделе этого примера, и открываете этот пример в MATLAB®, затем MATLAB® открывает папку в качестве примера. Эта папка включает файл функции точки входа.

Сгенерируйте код

Сгенерируйте код для функции точки входа использование codegen. Поскольку C и C++ являются статически типизированными языками, необходимо определить свойства всех переменных в функции точки входа во время компиляции. Передайте X как значение -args опция, чтобы указать, что сгенерированный код должен принять вход, который имеет совпадающий тип данных и размер массивов как обучающие данные X. Если количество наблюдений неизвестно во время компиляции, можно также задать вход как переменный размер при помощи coder.typeof. Для получения дополнительной информации смотрите, Задают Аргументы Переменного Размера для Code Generation and Specify Properties Входных параметров функции Точки входа (MATLAB Coder).

codegen classifyIrises -args {X}

codegen генерирует MEX-функцию classifyIrises_mex с зависимым платформой расширением.

Проверьте сгенерированный код

Сравните метки, классифицированные с помощью predict, classifyIrises, и classifyIrises_mex.

label1 = predict(Mdl,X);
label2 = classifyIrises(X);
label3 = classifyIrises_mex(X);
verify_label = isequal(label1,label2,label3)
verify_label = logical
   1

isequal возвращает (TRUE) логическую единицу, что означает, что все входные параметры равны. Метки классифицировали все три пути, то же самое.

Входные параметры

свернуть все

Имя MAT-файла, который содержит массив структур, представляющий объект модели, заданный как скаляр строки или вектор символов. Необходимо создать filename файл с помощью saveCompactModel.

loadCompactModel восстанавливает модель, сохраненную в filename файл во время компиляции. Для поддерживаемых моделей смотрите Mdl входной параметр saveCompactModel.

Расширение filename файлом должен быть .mat. Если filename не имеет никакого расширения, затем loadCompactModel добавляет .mat.

Если filename не включает полный путь, затем loadCompactModel загружает файл от текущей папки.

Пример: 'Mdl'

Типы данных: char | string

Выходные аргументы

свернуть все

Модель машинного обучения, возвращенная как один из этих объектов модели:

Алгоритмы

saveCompactModel готовит модель машинного обучения (Mdl) для генерации кода. Функция удаляет некоторые свойства, которые не требуются для прогноза.

  • Для модели, которая имеет соответствующую компактную модель, saveCompactModel функция применяет соответствующий compact функционируйте к модели прежде, чем сохранить его.

  • Для модели, которая не имеет соответствующей компактной модели, такой как ClassificationKNN, ClassificationLinear, RegressionLinear, ExhaustiveSearcher, и KDTreeSearcher, saveCompactModel функция удаляет свойства, такие как свойства гипероптимизации параметров управления, учебная информация о решателе и другие.

loadCompactModel загружает модель, сохраненную saveCompactModel.

Альтернативная функциональность

  • Используйте кодер configurer созданный learnerCoderConfigurer для моделей, перечисленных в этой таблице.

    МодельОбъект кодера Конфигурера
    Дерево выбора из двух альтернатив для классификации мультиклассовClassificationTreeCoderConfigurer
    SVM для и бинарной классификации одного классаClassificationSVMCoderConfigurer
    Линейная модель для бинарной классификацииClassificationLinearCoderConfigurer
    Модель Multiclass для SVMs и линейные моделиClassificationECOCCoderConfigurer
    Дерево выбора из двух альтернатив для регрессииRegressionTreeCoderConfigurer
    Регрессия машины опорных векторов (SVM)RegressionSVMCoderConfigurer
    Линейная регрессияRegressionLinearCoderConfigurer

    После обучения модель машинного обучения создайте кодер configurer модели. Используйте объектные функции и свойства configurer сконфигурировать опции генерации кода и сгенерировать код для predict и update функции модели. Если вы генерируете код с помощью кодера configurer, можно обновить параметры модели в сгенерированном коде, не имея необходимость регенерировать код. Для получения дополнительной информации смотрите Генерацию кода для Прогноза и Обновления Используя Кодер Конфигурера.

Вопросы совместимости

развернуть все

Не рекомендуемый запуск в R2019b

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Введенный в R2017b