saveLearnerForCoder
モデル オブジェクトをコード生成用のファイルに保存
説明
機械学習モデルのオブジェクト関数 (predict
、random
、knnsearch
、rangesearch
、isanomaly
、インクリメンタル学習関数など) に対する C/C++ コードを生成するには、saveLearnerForCoder
、loadLearnerForCoder
、および codegen
(MATLAB Coder) を使用します。機械学習モデルに学習をさせた後で、saveLearnerForCoder
を使用してモデルを保存します。loadLearnerForCoder
を使用してモデルを読み込みオブジェクト関数を呼び出す、エントリポイント関数を定義します。その後、codegen
または MATLAB® Coder™ アプリを使用して C/C++ コードを生成します。C/C++ コードの生成には MATLAB Coder が必要です。
次のフロー チャートは、機械学習モデルのオブジェクト関数に対するコード生成ワークフローを示します。強調表示されているステップで saveLearnerForCoder
を使用します。
固定小数点の C/C++ コードを生成するには、予測に必要な変数の固定小数点データ型を定義する追加の手順が必要です。generateLearnerDataTypeFcn
によって生成されるデータ型関数を使用して固定小数点データ型構造体を作成し、その構造体をエントリポイント関数で loadLearnerForCoder
の入力引数として使用します。固定小数点の C/C++ コードを生成するには、MATLAB Coder および Fixed-Point Designer™ が必要です。
次のフロー チャートは、機械学習モデルの関数 predict
の固定小数点のコード生成ワークフローを示します。強調表示されているステップで saveLearnerForCoder
を使用します。
saveLearnerForCoder(
は、モデル (Mdl
,filename
)Mdl
) をコード生成用に準備してから、filename
という名前の MATLAB 形式のバイナリ ファイル (MAT ファイル) に保存します。filename
を loadLearnerForCoder
に渡すと、filename
ファイルからモデル オブジェクトを再構築できます。
例
入力引数
ヒント
線形 SVM モデルまたは線形 SVM 学習器を含む ECOC モデルでは、関数
saveLearnerForCoder
を使用してモデルを保存する前に、関数discardSupportVectors
を使用してモデルからサポート ベクターを削除できます。線形 SVM モデルでは、新しい観測値のラベルと応答を予測するための十分な情報が予測子の係数によって提供され、サポート ベクターを削除することで生成コードのメモリ使用量が少なくなります。Mdl
が線形 SVM モデルの場合、モデルに予測子係数とサポート ベクターの両方があれば、関数discardSupportVectors
(分類の場合) または関数discardSupportVectors
(回帰の場合) を使用してモデルからサポート ベクターを削除できます。既定では、線形カーネルを使用する SVM モデルには、予測子係数とサポート ベクターの両方が含まれています。Mdl
が線形 SVM 学習器を含む ECOC モデルの場合、学習器に予測子係数とサポート ベクターの両方があれば、関数discardSupportVectors
を使用して学習器からサポート ベクターを削除できます。線形 SVM 学習器の既定のSaveSupportVectors
の値はfalse
です。したがって、既定では、ECOC モデルに学習器のサポート ベクターは含まれません。
アルゴリズム
saveLearnerForCoder
は機械学習モデル (Mdl
) をコード生成用に準備します。この関数は、いくつかの不要なプロパティを削除します。
対応するコンパクトなモデルがあるモデルの場合、関数
saveLearnerForCoder
は該当する関数compact
をモデルに適用してからモデルを保存します。対応するコンパクトなモデルがないモデル (
ClassificationKNN
、ClassificationKernel
、ClassificationLinear
、RegressionKernel
、RegressionLinear
、ExhaustiveSearcher
、KDTreeSearcher
、IsolationForest
、OneClassSVM
など) の場合、関数saveLearnerForCoder
はプロパティ (ハイパーパラメーター最適化プロパティなど)、ソルバーの学習に関する情報などを削除します。
loadLearnerForCoder
は、saveLearnerForCoder
によって保存されたモデルを読み込みます。
代替機能
次の表に記載されているモデルに対して、
learnerCoderConfigurer
が作成したコーダー コンフィギュアラーを使用します。モデル コーダー コンフィギュアラー オブジェクト マルチクラス分類用の二分決定木 ClassificationTreeCoderConfigurer
1 クラスおよびバイナリ分類用の SVM ClassificationSVMCoderConfigurer
バイナリ分類用の線形モデル ClassificationLinearCoderConfigurer
SVM モデルおよび線形モデル用のマルチクラス モデル ClassificationECOCCoderConfigurer
回帰用の二分決定木 RegressionTreeCoderConfigurer
サポート ベクター マシン (SVM) 回帰 RegressionSVMCoderConfigurer
線形回帰 RegressionLinearCoderConfigurer
機械学習モデルに学習をさせた後で、モデルのコーダー コンフィギュアラーを作成します。コンフィギュアラーのプロパティとオブジェクト関数を使用することにより、コード生成オプションを設定し、モデルの関数
predict
およびupdate
に対するコードを生成します。コーダー コンフィギュアラーを使用してコードを生成した場合、コードを再生成せずに、生成されたコードのモデル パラメーターを更新できます。詳細については、予測用のコード生成とコーダー コンフィギュアラーの使用による更新を参照してください。
バージョン履歴
R2019b で導入