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が作成したコーダー コンフィギュアラーを使用します。モデル コーダー コンフィギュアラー オブジェクト マルチクラス分類用の二分決定木 ClassificationTreeCoderConfigurer1 クラスおよびバイナリ分類用の SVM ClassificationSVMCoderConfigurerバイナリ分類用の線形モデル ClassificationLinearCoderConfigurerSVM モデルおよび線形モデル用のマルチクラス モデル ClassificationECOCCoderConfigurer回帰用の二分決定木 RegressionTreeCoderConfigurerサポート ベクター マシン (SVM) 回帰 RegressionSVMCoderConfigurer線形回帰 RegressionLinearCoderConfigurer機械学習モデルに学習をさせた後で、モデルのコーダー コンフィギュアラーを作成します。コンフィギュアラーのプロパティとオブジェクト関数を使用することにより、コード生成オプションを設定し、モデルの関数
predictおよびupdateに対するコードを生成します。コーダー コンフィギュアラーを使用してコードを生成した場合、コードを再生成せずに、生成されたコードのモデル パラメーターを更新できます。詳細については、予測用のコード生成とコーダー コンフィギュアラーの使用による更新を参照してください。
バージョン履歴
R2019b で導入