generateFiles

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

Синтаксис

generateFiles(configurer)
generateFiles(configurer,'OutputPath',outputPath)

Описание

пример

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, использует функцию saveCompactModel, чтобы сохранить информацию модели машинного обучения в MAT-файле, имя файла которого хранится в свойстве OutputFileName кодера configurer. initialize.m загружает сохраненный MAT-файл при помощи функции loadCompactModel.

После того, как вы генерируете эти файлы, генерируете код 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,  22-Feb-2019 03:28:32
[varargout{1:nargout}] = initialize('predict',X,varargin{:});
end
type update.m % Display contents of update.m
function update(varargin) %#codegen
% Autogenerated by MATLAB,  22-Feb-2019 03:28:32
initialize('update',varargin{:});
end
type initialize.m % Display contents of initialize.m
function [varargout] = initialize(command,varargin) %#codegen
% Autogenerated by MATLAB, 22-Feb-2019 03:28:32
coder.inline('always');
persistent model;
if isempty(model)
    model = loadCompactModel('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.

МодельОбъект кодера Конфигурера
Регрессия машины вектора поддержки (SVM)RegressionSVMCoderConfigurer
SVM для и бинарной классификации одного классаClassificationSVMCoderConfigurer
Модель Multiclass для SVMsClassificationECOCCoderConfigurer

Путь к папке для выходных файлов 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