Введение в генерацию кода

Генерация кода 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®, как описано в этих примерах:

Для большего количества приложений генерации кода смотрите эти примеры:

Смотрите также

| | | |

Похожие темы