ドキュメンテーション

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

コード生成の紹介

C/C++ コードの生成には MATLAB® Coder™ が必要です。MATLAB Coder は、コード生成をサポートする Statistics and Machine Learning Toolbox™ 関数から、読み取り可能および移植可能な C および C++ コードを生成します。生成されたコードは、ソース コード、スタティック ライブラリ、またはダイナミック ライブラリとしてプロジェクトに統合できます。また、生成されたコードを MATLAB 環境内で使用して、MATLAB コードの計算負荷が高い部分を高速化することもできます。

コード生成に対応する Statistics and Machine Learning Toolbox の関数の一覧については、コード生成のサポート、使用上の注意事項および制限事項を参照してください。各関数のコード生成に関する使用上の注意および制限については、関数のリファレンス ページの「コード生成」セクションを参照してください。コード生成についての MATLAB Coder の制限が Statistics and Machine Learning Toolbox に適用されることに注意してください。詳細については、C/C++ コード生成でサポートされている MATLAB 言語機能 (MATLAB Coder)を参照してください。これらの制限に加えて、Statistics and Machine Learning Toolbox のコード生成ではスパース行列がサポートされません。

コード生成のワークフロー

Statistics and Machine Learning Toolbox 関数に対する C/C++ コードは、いくつかの方法で生成できます。

  • 機械学習モデルのオブジェクト関数以外の関数の一般的なコード生成ワークフロー

    コード生成をサポートする関数を呼び出す "エントリポイント" 関数を定義し、codegen を使用してエントリポイント関数の C/C++ コードを生成して、生成されたコードを確認します。エントリポイント関数は、コード生成用に定義する関数で、"最上位" 関数または "プライマリ" 関数とも呼ばれます。codegen を使用して最上位レベルにある関数を呼び出すことはできないので、エントリポイント関数を定義しなければなりません。エントリポイント関数内のすべての関数がコード生成をサポートしなければなりません。

    詳細については、一般的なコード生成のワークフローを参照してください。

  • 機械学習モデルのオブジェクト関数 (predictrandomknnsearch または rangesearch) のコード生成ワークフロー

    saveCompactModel を使用して、学習済みモデルを保存します。loadCompactModel を使用して保存済みモデルを読み込んでオブジェクト関数を呼び出す、エントリポイント関数を定義します。次に、codegen を使用してエントリポイント関数のコードを生成し、生成されたコードを確認します。エントリポイント関数の入力引数として、分類または回帰モデル オブジェクトは使用できません。したがって、saveCompactModelloadCompactModel を使用してこの制限に対処する必要があります。

    詳細については、以下の例を参照してください。

  • SVM モデルの関数 predict および update のコード生成ワークフロー

    learnerCoderConfigurer を使用してコーダー コンフィギュアラーを作成し、generateCode を使用してコードを生成して、生成されたコードを確認します。コード生成オプションを設定し、オブジェクトのプロパティを使用してモデル パラメーターのコーダー属性を指定できます。新しいデータまたは設定でモデルに再学習をさせた後で、コードを再生成せずに、生成された C/C++ コードのモデル パラメーターを更新できます。この機能により、C/C++ コードの再生成、再展開および再確認に必要な作業が不要になります。

    詳細については、予測用のコード生成とコーダー コンフィギュアラーの使用による更新を参照してください。

コード生成の応用

以下の例で説明されているように、Statistics and Machine Learning Toolbox の関数に対するコード生成は、Simulink®、System object™、Stateflow® など、他のツールボックスとも連携します。

コード生成の応用の詳細については、以下の例を参照してください。

参考

| | |

関連するトピック