ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

generateFiles

コーダー コンフィギュアラーを使用するコード生成用 MATLAB ファイルの生成

説明

generateFiles(configurer) は、コーダー コンフィギュアラー configurer を使用した C/C++ コード生成に必要な MATLAB® ファイルを生成し、生成されたファイルを現在のフォルダーに保存します。

コード生成ワークフローをカスタマイズするには、generateFilescodegen を使用します。ワークフローをカスタマイズする必要がない場合は、generateCode を使用します。

generateFiles は、以下の MATLAB ファイルを生成します。

  • predict.mupdate.m および initialize.mpredict.mupdate.m はそれぞれ、機械学習モデルの関数 predict および update のエントリポイント関数です。この 2 つの関数で initialize.m を呼び出します。これらのファイルは、使用するコード生成ワークフローに従って変更できます。たとえば、predict.m ファイルを変更してデータの前処理を含めたり、これらのエントリポイント関数を別のコード生成プロジェクトに追加したりできます。

  • 機械学習モデルの情報が格納されている MAT ファイル — generateFiles は、関数 saveCompactModel を使用して、機械学習モデルの情報を MAT ファイルに保存します。このファイルの名前は、コーダー コンフィギュアラーの OutputFileName プロパティに格納されます。initialize.m は、関数 loadCompactModel を使用して、保存された MAT ファイルを読み込みます。

これらのファイルを生成した後で、codegen と、コーダー コンフィギュアラーの CodeGenerationArguments プロパティに格納されている準備された引数 codegen を使用して、C/C++ コードを生成します。

既に 4 つの MATLAB ファイルがすべてフォルダーに格納されている場合、generateFiles はファイルを生成しません。

generateFiles(configurer,'OutputPath',outputPath) は、outputPath で指定されたフォルダーに MATLAB ファイルを生成します。

すべて折りたたむ

機械学習モデルに学習をさせてから、コーダー コンフィギュアラーを使用して、モデルの関数 predict および update に対する C/C++ コードの生成に必要な MATLAB ファイルを生成します。

ionosphere データセットを読み込み、バイナリ サポート ベクター マシン (SVM) 分類モデルに学習をさせます。

load ionosphere
Mdl = fitcsvm(X,Y);

Mdl は、ClassificationSVM オブジェクトです。

ClassificationSVM オブジェクトに対してコーダー コンフィギュアラーを作成します。

configurer = learnerCoderConfigurer(Mdl,X);

configurer は、ClassificationSVM オブジェクトのコーダー コンフィギュアラーである ClassificationSVMCoderConfigurer オブジェクトです。

generateFiles を使用して、モデルの関数 predict および update に対する C/C++ コードの生成に必要な MATLAB ファイルを生成します。

generateFiles(configurer)

generateFiles は、predict.mupdate.minitialize.m、および ClassificationSVMModel.mat (機械学習モデルの情報が含まれている MAT ファイル) を生成します。

predict.mupdate.m および initialize.m ファイルの内容を表示します。

type predict.m % Display contents of predict.m
function varargout = predict(X,varargin) %#codegen
% Autogenerated by MATLAB,  09-Feb-2019 00:40:28
[varargout{1:nargout}] = initialize('predict',X,varargin{:});
end
type update.m % Display contents of update.m
function update(varargin) %#codegen
% Autogenerated by MATLAB,  09-Feb-2019 00:40:28
initialize('update',varargin{:});
end
type initialize.m % Display contents of initialize.m
function [varargout] = initialize(command,varargin) %#codegen
% Autogenerated by MATLAB, 09-Feb-2019 00:40:28
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

codegen と、configurerCodeGenerationArguments プロパティに格納されている準備された引数 codegen を使用して、C/C++ コードを生成します。

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

入力引数

すべて折りたたむ

機械学習モデルのコーダー コンフィギュアラー オブジェクト。learnerCoderConfigurer を使用して作成したコーダー コンフィギュアラー オブジェクトを指定します。

モデルコーダー コンフィギュアラー オブジェクト
サポート ベクター マシン (SVM) 回帰RegressionSVMCoderConfigurer
1 クラスおよびバイナリ分類用の SVMClassificationSVMCoderConfigurer
SVM 用のマルチクラス モデルClassificationECOCCoderConfigurer

generateFiles の出力ファイルのフォルダー パス。文字ベクトルまたは string 配列を指定します。

フォルダー パスとして、絶対パスまたは現在のフォルダー パスに対する相対パスを指定できます。

  • パスには空白を含めないでください。これは、オペレーティング システムの構成によってはコード生成の失敗を引き起こす可能性があります。

  • 日本語文字など、7 ビット ASCII 以外の文字をパスに含めることもできません。

指定されたフォルダーが存在しない場合、generateFiles はフォルダーを作成します。

generateFiles は以下の 4 つの MATLAB ファイル、predict.mupdate.minitialize.m、および機械学習モデルの情報を含む MAT ファイルを、指定されたフォルダーで探します。この 4 つのファイルがフォルダーに存在しない場合、generateFiles はファイルを生成します。それ以外の場合、generateFiles は MATLAB ファイルを生成しません。

例: 'C:\myfiles'

データ型: char | string

代替機能

  • コード生成ワークフローをカスタマイズするには、generateFilescodegen を使用します。ワークフローをカスタマイズする必要がない場合は、generateCode を使用します。関数 generateCode では generateFiles で生成される 4 つの MATLAB ファイルに加え、C/C++ コードも生成されます。

R2018b で導入