MATLAB® Coder™ генерирует читаемый и портативный C и Код С++ от функций Statistics and Machine Learning Toolbox™ та генерация кода поддержки. Можно интегрировать сгенерированный код в проекты как исходный код, статические библиотеки или динамические библиотеки. Можно также использовать сгенерированный код в среде MATLAB, чтобы ускорить в вычислительном отношении интенсивные фрагменты кода MATLAB.
Генерация кода C/C++ требует MATLAB Coder и имеет нижеследующие ограничения:
Вы не можете вызвать функцию в верхнем уровне при генерации кода при помощи codegen
. Вместо этого вызовите функцию в функции точки входа, и затем сгенерируйте код от функции точки входа. Функция точки входа, также известная как или первичную функцию верхнего уровня, является функцией, которую вы задаете для генерации кода. Все функции в функции точки входа должны поддержать генерацию кода.
Ограничения MATLAB Coder также применяются к Statistics and Machine Learning Toolbox за генерацию кода. Для получения дополнительной информации смотрите Функции языка MATLAB, Поддерживавшие для Генерации кода C/C++ (MATLAB Coder).
Генерация кода в Statistics and Machine Learning Toolbox не поддерживает разреженные матрицы и категориальные массивы. Генерация кода поддерживает числовые таблицы для большинства функций предсказания.
Для указаний и ограничений по применению генерации кода для каждой функции смотрите раздел Code Generation на странице ссылки на функцию.
Для списка функций Statistics and Machine Learning Toolbox, которые поддерживают генерацию кода, см. Функциональный Список (Генерация кода C/C++).
Можно сгенерировать код C/C++ для функций Statistics and Machine Learning Toolbox несколькими способами.
Общий рабочий процесс генерации кода для функций, которые не являются объектными функциями моделей машинного обучения
Задайте функцию точки входа, которая вызывает функцию, которая поддерживает генерацию кода, сгенерируйте код C/C++ для функции точки входа при помощи codegen
, и затем проверьте сгенерированный код. Функция точки входа, также известная как или первичную функцию верхнего уровня, является функцией, которую вы задаете для генерации кода. Поскольку вы не можете вызвать функцию в верхнем уровне с помощью codegen
, необходимо задать функцию точки входа. Все функции в функции точки входа должны поддержать генерацию кода.
Для получения дополнительной информации смотрите Общий Рабочий процесс Генерации кода.
Рабочий процесс генерации кода для объектной функции (predict
, random
, knnsearch
, или rangesearch
) из модели машинного обучения
Сохраните обученную модель при помощи saveLearnerForCoder
, и задайте функцию точки входа, которая загружает сохраненную модель при помощи loadLearnerForCoder
и вызывает объектную функцию. Затем сгенерируйте код для функции точки входа при помощи codegen
, и проверьте сгенерированный код. Входные параметры функции точки входа не могут быть объекты модели регрессии или классификация. Поэтому необходимо работать вокруг этого ограничения при помощи saveLearnerForCoder
и loadLearnerForCoder
.
Для получения дополнительной информации смотрите эти примеры
Можно также сгенерировать фиксированную точку код C/C++ для предсказания модели машины опорных векторов (SVM), модели дерева принятия решения и ансамбля деревьев решений для классификации и регрессии. Этот тип генерации кода требует Fixed-Point Designer™.
Генерация фиксированной точки требует дополнительного шага, который задает типы данных с фиксированной точкой переменных, требуемых для предсказания. Создайте структуру типа данных с фиксированной точкой при помощи функции типа данных, сгенерированной generateLearnerDataTypeFcn
, и используйте структуру в качестве входного параметра loadLearnerForCoder
в функции точки входа. Можно также оптимизировать типы данных с фиксированной точкой прежде, чем сгенерировать код.
Для получения дополнительной информации смотрите Генерацию Фиксированной точки для Предсказания SVM.
Рабочий процесс генерации кода для predict
и update
функции древовидной модели, модели SVM, линейной модели или модели классификации выходных кодов с коррекцией ошибок (ECOC) мультикласса, использующей SVM или линейных бинарных учеников
Создайте кодер configurer при помощи learnerCoderConfigurer
, сгенерируйте код при помощи generateCode
, и затем проверьте сгенерированный код. Можно сконфигурировать опции генерации кода и задать атрибуты кодера параметров модели с помощью свойств объектов. После того, как вы переобучите модель с новыми данными или настройками, можно обновить параметры модели в сгенерированном коде C/C++, не имея необходимость регенерировать код. Эта функция уменьшает усилие, требуемое регенерировать, повторно развернуть, и повторно проверить код C/C++.
Для получения дополнительной информации смотрите Генерацию кода для Предсказания и Обновления Используя Кодер Конфигурера.
Генерация кода для функций Statistics and Machine Learning Toolbox также работает с другими тулбоксами, такими как Simulink®, Система object™, и Stateflow®, как описано в этих примерах:
Для большего количества приложений генерации кода смотрите эти примеры:
codegen
| generateLearnerDataTypeFcn
| learnerCoderConfigurer
| loadLearnerForCoder
| saveLearnerForCoder