Генерация кода C/C++ требует MATLAB® Coder™. MATLAB Coder генерирует читаемый и портативный C и Код С++ от функций Statistics and Machine Learning Toolbox™ та генерация кода поддержки. Можно интегрировать сгенерированный код в проекты как исходный код, статические библиотеки или динамические библиотеки. Можно также использовать сгенерированный код в среде MATLAB, чтобы ускорить в вычислительном отношении интенсивные фрагменты кода MATLAB.
Для списка включенных генерацией кода функций в Statistics and Machine Learning Toolbox смотрите Поддержку Генерации кода, Указания по применению и Ограничения. Для указаний и ограничений по применению генерации кода для каждой функции смотрите раздел Code Generation на странице ссылки на функцию. Обратите внимание на то, что ограничения MATLAB Coder применяются к Statistics and Machine Learning Toolbox за генерацию кода. Для получения дополнительной информации смотрите Функции языка MATLAB, Поддерживавшие для Генерации кода C/C++ (MATLAB Coder). В дополнение к этим ограничениям генерация кода в Statistics and Machine Learning Toolbox не поддерживает разреженные матрицы.
Можно сгенерировать код C/C++ для функций Statistics and Machine Learning Toolbox несколькими способами.
Общий рабочий процесс генерации кода для функций, которые не являются объектными функциями моделей машинного обучения
Задайте функцию точки входа, которая вызывает функцию, которая поддерживает генерацию кода, сгенерируйте код C/C++ для функции точки входа при помощи codegen
, и затем проверьте сгенерированный код. Функция точки входа, также известная как или первичную функцию верхнего уровня, является функцией, которую вы задаете для генерации кода. Поскольку вы не можете вызвать функцию в верхнем уровне с помощью codegen
, необходимо задать функцию точки входа. Все функции в функции точки входа должны поддержать генерацию кода.
Для получения дополнительной информации смотрите Общий Рабочий процесс Генерации кода.
Рабочий процесс генерации кода для объектной функции (predict
, random
, knnsearch
, или rangesearch
) из модели машинного обучения
Сохраните обученную модель при помощи saveLearnerForCoder
, и задайте функцию точки входа, которая загружает сохраненную модель при помощи loadLearnerForCoder
и вызывает объектную функцию. Затем сгенерируйте код для функции точки входа при помощи codegen
, и проверьте сгенерированный код. Входные параметры функции точки входа не могут быть объекты модели регрессии или классификация. Поэтому необходимо работать вокруг этого ограничения при помощи saveLearnerForCoder
и loadLearnerForCoder
.
Для получения дополнительной информации смотрите эти примеры
Можно также сгенерировать фиксированную точку код C/C++ для прогноза модели классификации SVM или модели регрессии 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