generateFiles

Сгенерируйте файлы MATLAB для генерации кода, использующей кодер configurer

Описание

пример

generateFiles(configurer) генерирует файлы MATLAB®, требуемые сгенерировать код C/C++ при помощи кодера configurer configurer, и сохранил сгенерированные файлы в текущей папке.

Чтобы настроить рабочий процесс генерации кода, используйте generateFiles и codegen. Если вы не должны настраивать свой рабочий процесс, используйте generateCode.

generateFiles генерирует следующие файлы MATLAB:

  • predict.m, update.m, и initialize.mpredict.m и update.m функции точки входа для predict и update функции модели машинного обучения, соответственно, и эти две функции вызывают initialize.m. Можно изменить эти файлы согласно рабочему процессу генерации кода. Например, можно изменить predict.m файл, чтобы включать предварительную обработку данных, или можно добавить эти функции точки входа в другой проект генерации кода.

  • MAT-файл, который включает информацию о модели машинного обучения — generateFiles использует saveLearnerForCoder функция, чтобы сохранить информацию модели машинного обучения в MAT-файле, имя файла которого хранится в OutputFileName свойство кодера configurer. initialize.m загружает сохраненный MAT-файл при помощи loadLearnerForCoder функция.

После того, как вы генерируете эти файлы, генерируете код C/C++ при помощи codegen и подготовленный codegen аргумент сохранен в CodeGenerationArguments свойство кодера configurer.

Если папка уже включает все четыре файла MATLAB, то generateFiles не генерирует файлов.

generateFiles(configurer,'OutputPath',outputPath) генерирует файлы MATLAB в папке, заданной outputPath.

Примеры

свернуть все

Обучите модель машинного обучения и затем сгенерируйте файлы MATLAB, требуемые сгенерировать код C/C++ для predict и update функции модели при помощи кодера configurer.

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

load ionosphere
Mdl = fitcsvm(X,Y);

Mdl ClassificationSVM объект.

Создайте кодер configurer для ClassificationSVM объект.

configurer = learnerCoderConfigurer(Mdl,X);

configurer ClassificationSVMCoderConfigurer объект, который является кодером configurer ClassificationSVM объект.

Используйте generateFiles сгенерировать файлы MATLAB, требуемые сгенерировать код C/C++ для predict и update функции модели.

generateFiles(configurer)

generateFiles генерирует predict.m, update.m, initialize.m, и ClassificationSVMModel.mat (MAT-файл, который включает информацию о модели машинного обучения).

Отобразите содержимое predict.m, update.m, и initialize.m файлы.

type predict.m % Display contents of predict.m
function varargout = predict(X,varargin) %#codegen
% Autogenerated by MATLAB, 23-Dec-2019 16:16:29
[varargout{1:nargout}] = initialize('predict',X,varargin{:});
end
type update.m % Display contents of update.m
function update(varargin) %#codegen
% Autogenerated by MATLAB, 23-Dec-2019 16:16:29
initialize('update',varargin{:});
end
type initialize.m % Display contents of initialize.m
function [varargout] = initialize(command,varargin) %#codegen
% Autogenerated by MATLAB, 23-Dec-2019 16:16:29
coder.inline('always')
persistent model
if isempty(model)
    model = loadLearnerForCoder('ClassificationSVMModel.mat');
end
switch(command)
    case 'update'
        % Update struct fields: Alpha
        %                       SupportVectors
        %                       SupportVectorLabels
        %                       Scale
        %                       Bias
        %                       Prior
        %                       Cost
        model = update(model,varargin{:});
    case 'predict'
        % Predict Inputs: X
        X = varargin{1};
        if nargin == 2
            [varargout{1:nargout}] = predict(model,X);
        else
            PVPairs = cell(1,nargin-2);
            for i = 1:nargin-2
                PVPairs{1,i} = varargin{i+1};
            end
            [varargout{1:nargout}] = predict(model,X,PVPairs{:});
        end
end
end

Сгенерируйте код C/C++ при помощи codegen и подготовленный codegen аргумент сохранен в CodeGenerationArguments свойство configurer.

cfArgs = configurer.CodeGenerationArguments;
codegen(cfArgs{:})

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

свернуть все

Кодер configurer модели машинного обучения, заданной как кодер configurer объект, создается при помощи learnerCoderConfigurer.

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

Путь к папке для выходных файлов generateFiles, заданный как вектор символов или массив строк.

Заданный путь к папке может быть абсолютным путем или относительным путем к пути к текущей папке.

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

  • Путь также не может содержать non-7-bit символы ASCII, такие как японские символы.

Если заданная папка не существует, то generateFiles создает папку.

generateFiles ищет заданную папку эти четыре файла MATLAB: predict.m, update.m, initialize.m, и MAT-файл, который включает информацию о модели машинного обучения. Если эти четыре файла не существуют в папке, то generateFiles генерирует файлы. В противном случае, generateFiles не генерирует файлов MATLAB.

Пример: 'C:\myfiles'

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

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

  • Чтобы настроить рабочий процесс генерации кода, используйте generateFiles и codegen. Если вы не должны настраивать свой рабочий процесс, используйте generateCode. В дополнение к генерации этих четырех файлов MATLAB, сгенерированных generateFiles, generateCode функция также генерирует код C/C++.

Введенный в R2018b