Main Content

loadCompactModel

(削除済み) 保存されたコード生成用モデルからのモデル オブジェクトの再構築

loadCompactModel は削除されました。代わりに loadLearnerForCoder を使用してください。コードを更新するには、単に loadCompactModel のインスタンスを loadLearnerForCoder に置き換えます。

説明

機械学習モデルのオブジェクト関数 (predictrandomknnsearch または rangesearch) に対する C/C++ コードを生成するには、saveCompactModelloadCompactModel および codegen (MATLAB Coder) を使用します。機械学習モデルに学習をさせた後で、saveCompactModel を使用してモデルを保存します。loadCompactModel を使用してモデルを読み込みオブジェクト関数を呼び出す、エントリポイント関数を定義します。その後、codegen または MATLAB® Coder™ アプリを使用して C/C++ コードを生成します。C/C++ コードの生成には MATLAB Coder が必要です。

次のフロー チャートは、機械学習モデルのオブジェクト関数に対するコード生成ワークフローを示します。強調表示されているステップで loadCompactModel を使用します。

Code generation workflow with step 3 highlighted. Step 1: Train model. Step 2: Save model. Step 3: Define entry-point function. Step 4: Generate code. Step 5: Verify generated code.

Mdl = loadCompactModel(filename) は、filename という名前で MATLAB 形式のバイナリ ファイル (MAT ファイル) に格納されているモデルから、分類モデル、回帰モデルまたは最近傍探索モデル (Mdl) を再構築します。filename ファイルは、saveCompactModel を使用して作成しなければなりません。

すべて折りたたむ

機械学習モデルに学習をさせた後で、saveCompactModel を使用してモデルを保存します。loadCompactModel を使用してモデルを読み込み学習済みモデルの関数 predict を呼び出す、エントリポイント関数を定義します。その後、codegen (MATLAB Coder) を使用して C/C++ コードを生成します。

この例では、コマンド ラインで機械学習モデルの予測を行うためのコード生成ワークフローについて簡単に説明します。詳細は、機械学習モデルの予測をコマンド ラインで行うコードの生成を参照してください。MATLAB Coder アプリを使用してコードを生成することもできます。詳細については、機械学習モデルの予測を MATLAB Coder アプリを使用して行うコードの生成を参照してください。再近傍探索モデルを使用した最近傍探索用のコード生成の詳細については、最近傍探索モデルのコード生成を参照してください。

フィッシャーのアヤメのデータ セットを読み込みます。観測された setosa 種のアヤメをすべて削除して、2 つのクラスのデータのみが XY に含まれるようにします。

load fisheriris
inds = ~strcmp(species,'setosa');
X = meas(inds,:);
Y = species(inds);

処理済みのデータ セットを使用して、サポート ベクター マシン (SVM) 分類モデルに学習をさせます。

Mdl = fitcsvm(X,Y);

MdlClassificationSVM モデルです。

saveCompactModel を使用して、SVM 分類モデルを SVMIris.mat というファイルに保存します。

saveCompactModel(Mdl,'SVMIris');

以下を行う classifyIrises という名前のエントリポイント関数を定義します。

  • meas に対応する列をもつアヤメの花の測定値を受け入れ、予測したラベルを返す。

  • 学習済みの SVM 分類モデルを読み込む。

  • 読み込んだアヤメの花の測定値の分類モデルを使用して、ラベルを予測する。

function label = classifyIrises(X) %#codegen
%CLASSIFYIRISES Classify iris species using SVM Model
%   CLASSIFYIRISES classifies the iris flower measurements in X using the
%   compact SVM model in the file SVMIris.mat, and then returns class
%   labels in label.
CompactMdl = loadCompactModel('SVMIris');
label = predict(CompactMdl,X);
end

MATLAB のアルゴリズムについてのコードを生成しようとしていることを指示するため、コンパイラ命令 %#codegen (またはプラグマ) をエントリポイント関数のシグネチャの後に追加します。この命令を追加すると、MATLAB Code Analyzer はコード生成時にエラーになる違反の診断と修正を支援します。

codegen (MATLAB Coder) を使用して、エントリポイント関数のコードを生成します。C および C++ は静的な型の言語なので、エントリポイント関数内のすべての変数のプロパティをコンパイル時に決定しなければなりません。-args オプションの値として X を渡し、生成コードが学習データ X と同じデータ型および配列サイズをもつ入力を受け入れなければならないことを指定します。コンパイル時に観測値の個数が不明である場合、coder.typeof (MATLAB Coder) を使用して可変サイズの入力を指定することもできます。詳細は、コード生成用の可変サイズ引数の指定エントリポイント関数の入力のプロパティの指定 (MATLAB Coder) を参照してください。

codegen classifyIrises -args {X}
Code generation successful.

codegen は、プラットフォームに依存する拡張子をもつ MEX 関数 classifyIrises_mex を生成します。

predictclassifyIrises および classifyIrises_mex を使用して分類されたラベルを比較します。

label1 = predict(Mdl,X);
label2 = classifyIrises(X);
label3 = classifyIrises_mex(X);
verify_label = isequal(label1,label2,label3)
verify_label = logical
   1

isequal は、すべての入力が等しいことを意味する logical 1 (true) を返します。3 つの方法で分類したラベルは、すべて同じです。

入力引数

すべて折りたたむ

モデル オブジェクトを表す構造体配列が格納されている MAT ファイルの名前。文字ベクトルまたは string スカラーを指定します。filename ファイルは、saveCompactModel を使用して作成しなければなりません。

loadCompactModel は、filename ファイルに格納されているモデルをコンパイル時に再構築します。サポートされるモデルについては、saveCompactModel の入力引数 Mdl を参照してください。

filename ファイルの拡張子は .mat でなければなりません。filename に拡張子がない場合、loadCompactModel.mat を追加します。

filename に絶対パスが含まれていない場合、loadCompactModel は現在のフォルダーからファイルを読み込みます。

例: 'Mdl'

データ型: char | string

出力引数

すべて折りたたむ

機械学習モデル。次のいずれかのモデル オブジェクトとして返されます。

アルゴリズム

saveCompactModel は機械学習モデル (Mdl) をコード生成用に準備します。この関数は、予測には必要ないプロパティを削除します。

  • 対応するコンパクトなモデルがあるモデルの場合、関数 saveCompactModel は該当する関数 compact をモデルに適用してからモデルを保存します。

  • 対応するコンパクトなモデルがないモデル (ClassificationKNNClassificationLinearRegressionLinearExhaustiveSearcherKDTreeSearcher など) の場合、関数 saveCompactModel はプロパティ (ハイパーパラメーター最適化プロパティなど)、ソルバーの学習に関する情報などを削除します。

loadCompactModel は、saveCompactModel によって保存されたモデルを読み込みます。

代替機能

拡張機能

C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。

バージョン履歴

R2016b で導入

すべて折りたたむ

R2021b: loadCompactModel は削除済み

loadCompactModel は削除されました。代わりに loadLearnerForCoder を使用してください。

saveLearnerForCoderloadLearnerForCoder は、サポートされるモデルについて固定小数点コードの生成を含むより幅広い機能を提供します。

次の表に loadLearnerForCoder を使用するためにコードを更新する方法を示します。

削除済み推奨
Mdl = loadCompactModel('MyModel');
Mdl = loadLearnerForCoder('MyModel');