generateFiles

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

Описание

пример

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

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

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

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

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

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

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

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

Примеры

свернуть все

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

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

load ionosphere
Mdl = fitcsvm(X,Y);

Mdl является ClassificationSVM объект.

Создайте конфигуратор кодера для ClassificationSVM объект.

configurer = learnerCoderConfigurer(Mdl,X);

configurer является ClassificationSVMCoderConfigurer объект, который является конфигуратором кодера 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-Apr-2021 12:37:48
[varargout{1:nargout}] = initialize('predict',X,varargin{:});
end
type update.m % Display contents of update.m
function update(varargin) %#codegen
% Autogenerated by MATLAB, 23-Apr-2021 12:37:48
initialize('update',varargin{:});
end
type initialize.m % Display contents of initialize.m
function [varargout] = initialize(command,varargin) %#codegen
% Autogenerated by MATLAB, 23-Apr-2021 12:37:48
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 (MATLAB Coder) и приготовленные codegen аргумент, сохраненный в CodeGenerationArguments свойство configurer.

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

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

свернуть все

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

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

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

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

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

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

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

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

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

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

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

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

Введенный в R2018b