保存されたコード生成用モデルからのモデル オブジェクトの再構築
機械学習モデルのオブジェクト関数 (predict
、random
、knnsearch
または rangesearch
) に対する C/C++ コードを生成するには、saveLearnerForCoder
、loadLearnerForCoder
および codegen
(MATLAB Coder) を使用します。機械学習モデルに学習をさせた後で、saveLearnerForCoder
を使用してモデルを保存します。loadLearnerForCoder
を使用してモデルを読み込みオブジェクト関数を呼び出す、エントリポイント関数を定義します。その後、codegen
または MATLAB® Coder™ アプリを使用して C/C++ コードを生成します。C/C++ コードの生成には MATLAB Coder が必要です。
機械学習モデルのオブジェクト関数 predict
に対する単精度 C/C++ コードを生成するには、saveLearnerForCoder
、loadLearnerForCoder
、および codegen
(MATLAB Coder) を使用します。単精度コード生成では、関数 loadLearnerForCoder
への追加の入力として、名前と値のペアの引数 'DataType','single'
を指定します。
次のフロー チャートは、機械学習モデルのオブジェクト関数に対するコード生成ワークフローを示します。強調表示されているステップで loadLearnerForCoder
を使用します。
固定小数点の C/C++ コードを生成するには、予測に必要な変数の固定小数点データ型を定義する追加の手順が必要です。generateLearnerDataTypeFcn
によって生成されるデータ型関数を使用して固定小数点データ型構造体を作成し、その構造体をエントリポイント関数で loadLearnerForCoder
の入力引数として使用します。固定小数点の C/C++ コードを生成するには、MATLAB Coder および Fixed-Point Designer™ が必要です。
次のフロー チャートは、機械学習モデルの関数 predict
の固定小数点のコード生成ワークフローを示します。強調表示されているステップで loadLearnerForCoder
を使用します。
は、Mdl
= loadLearnerForCoder(filename
)filename
という名前で MATLAB 形式のバイナリ ファイル (MAT ファイル) に格納されているモデルから、分類モデル、回帰モデルまたは最近傍探索モデル (Mdl
) を再構築します。filename
ファイルは、saveLearnerForCoder
を使用して作成しなければなりません。
は、Mdl
= loadLearnerForCoder(filename
,'DataType',T
)filename
に格納されているモデルの固定小数点バージョンを返します。構造体 T
には、モデルの関数 predict
を使用するために必要な変数の固定小数点データ型を指定するフィールドが含まれます。generateLearnerDataTypeFcn
によって生成された関数を使用して T
を作成します。
この構文をエントリポイント関数で使用し、codegen
を使用してエントリポイント関数の固定小数点コードを生成します。コードを生成する場合にのみ、この構文を使用できます。
ガウス過程回帰 (GPR) モデル用の単精度コード生成では、fitrgp(X,Y,'Standardize',1)
を使用してモデルを作成します。
saveLearnerForCoder
は機械学習モデル (Mdl
) をコード生成用に準備します。この関数は、予測には必要ないプロパティを削除します。
対応するコンパクトなモデルがあるモデルの場合、関数 saveLearnerForCoder
は該当する関数 compact
をモデルに適用してからモデルを保存します。
対応するコンパクトなモデルがないモデル (ClassificationKNN
、ClassificationLinear
、RegressionLinear
、ExhaustiveSearcher
、KDTreeSearcher
など) の場合、関数 saveLearnerForCoder
はプロパティ (ハイパーパラメーター最適化プロパティなど)、ソルバーの学習に関する情報などを削除します。
loadLearnerForCoder
は、saveLearnerForCoder
によって保存されたモデルを読み込みます。
次の表に記載されているモデルに対して、learnerCoderConfigurer
が作成したコーダー コンフィギュアラーを使用します。
モデル | コーダー コンフィギュアラー オブジェクト |
---|---|
マルチクラス分類用の二分決定木 | ClassificationTreeCoderConfigurer |
1 クラスおよびバイナリ分類用の SVM | ClassificationSVMCoderConfigurer |
バイナリ分類用の線形モデル | ClassificationLinearCoderConfigurer |
SVM モデルおよび線形モデル用のマルチクラス モデル | ClassificationECOCCoderConfigurer |
回帰用の二分決定木 | RegressionTreeCoderConfigurer |
サポート ベクター マシン (SVM) 回帰 | RegressionSVMCoderConfigurer |
線形回帰 | RegressionLinearCoderConfigurer |
機械学習モデルに学習をさせた後で、モデルのコーダー コンフィギュアラーを作成します。コンフィギュアラーのプロパティとオブジェクト関数を使用することにより、コード生成オプションを設定し、モデルの関数 predict
および update
に対するコードを生成します。コーダー コンフィギュアラーを使用してコードを生成した場合、コードを再生成せずに、生成されたコードのモデル パラメーターを更新できます。詳細については、予測用のコード生成とコーダー コンフィギュアラーの使用による更新を参照してください。
generateLearnerDataTypeFcn
| saveLearnerForCoder
| codegen
(MATLAB Coder)