exponenta event banner

generateFiles

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

Описание

пример

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

Для настройки рабочего процесса создания кода используйте generateFiles и codegen (Кодер MATLAB). Если вам не нужно настраивать рабочий процесс, используйте 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) и подготовленный codegen аргумент, хранящийся в CodeGenerationArguments свойства конфигуратора кодера.

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

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

Примеры

свернуть все

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

Загрузить ionosphere набор данных и обучение модели классификации двоичного вектора поддержки (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) и подготовленный 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). Если вам не нужно настраивать рабочий процесс, используйте generateCode. В дополнение к генерации четырех файлов MATLAB, созданных generateFiles, generateCode функция также генерирует код C/C + +.

Представлен в R2018b