mcpField
M
matlab-deploy-ai-model

matlab-deploy-ai-model

github.com/matlab開発1.2k45 回インストール1 日前に更新
リポジトリ

matlab-deploy-ai-model について

PyTorchおよびLiteRTモデルからC/C++またはCUDAコードを生成するMATLABスキルです。モデルの読み込み、数値確認、MEX生成から製品コード生成までを扱い、Simulink連携や任意のハードウェア展開にも対応します。

主な機能

  1. 01PyTorchおよびLiteRTモデルの読み込み
  2. 02CPUまたはCUDA MEXの生成と検証
  3. 03C/C++ライブラリまたは実行ファイルの生成
  4. 04対応モデルのSimulink連携
  5. 05MATLABとのモデル出力比較

活用シーン

  1. 01.pt2モデルから展開可能なコードを生成
  2. 02.tfliteモデルをC/C++出力に変換
  3. 03コード生成前にモデルの数値を確認
  4. 04SimulinkでPyTorch推論を利用

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/matlab/matlab-agentic-toolkit --skill matlab-deploy-ai-model

インストール後、Claude Code で/matlab-deploy-ai-modelを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

manifest.yaml
references/
codegen-workflow.md
dnn-codegen-options.md
export-pytorch-models.md
litert-numeric-verification.md
litert-workflow.md
pytorch-api-reference.md
pytorch-data-layout.md
pytorch-export-gotchas.md
pytorch-export-patterns.md
pytorch-numeric-verification.md
pytorch-supported-models.md
pytorch-workflow.md
simulink-workflow.md
tensorflow-to-litert-conversion.md

詳細

AI モデルから C/C++/CUDA コードを生成する

MATLAB Coder または GPU Coder を使用して、AI モデルからデプロイ可能な C/C++ または CUDA コードを生成します。モデルのフレームワークにかかわらず、ワークフローは共通のパターンに従います。モデルの読み込み、検査、エントリーポイントの作成、MEX の生成と検証を行い、その後、製品コードを生成します。

使用する場面

  • AI モデル(PyTorch、LiteRT)から C/C++/CUDA コードを生成したい
  • モデルファイル(.pt2、.tflite)があり、MATLAB に読み込みたい
  • AI モデルの MEX による高速化を行いたい
  • AI モデルから CUDA コードまたは GPU で高速化された MEX を生成したい
  • AI モデルをハードウェアにデプロイしたい
  • Simulink で PyTorch または LiteRT モデルを使用したい(シミュレーションまたはコード生成)
  • ソースフレームワークと MATLAB の間で AI モデルの数値を検証したい

使用しない場面

  • 一般的な MATLAB Coder の使用方法(codegen の構文、設定の調整、codegen 対応コードの作成)
  • Deep Learning Toolbox ワークフロー向けの編集可能な dlnetwork(量子化、圧縮、転移学習)— dlnetwork を返す importNetworkFromPyTorch(PyTorch)、importNetworkFromTensorFlow(SavedModel)、または importNetworkFromKeras(.keras/.h5)を使用してください。モデル圧縮(dlquantizer による INT8 量子化、プルーニング、射影)を使用した編集可能な dlnetwork のデプロイ、または exportNetworkToSimulink のワークフローには、matlab-deploy-embedded-ai(パターン 1)を使用してください。
  • トレーニングまたはファインチューニング — このスキルは推論コード生成専用です

対応フレームワーク

フレームワークモデル形式読み込み関数ステータス
PyTorch.pt2loadPyTorchExportedProgram対応済み(R2026a+)
LiteRT / TFLite.tfliteloadLiteRTModel対応済み(R2026a+)

PyTorch 固有の詳細(API の振り分け、エントリーポイントのパターン、エクスポートのワークフロー、データレイアウト、よくある間違い)については、references/pytorch-workflow.md を参照してください。

LiteRT 固有の詳細(API の振り分け、エントリーポイントのパターン、可変サイズ入力、Simulink との統合、規約)については、references/litert-workflow.md を参照してください。 TensorFlow/Keras/.h5 を .tflite に変換する方法については、 references/tensorflow-to-litert-conversion.md を参照してください。

一般的なワークフロー

コード生成ワークフローは、どのフレームワークでも同じ手順に従います。

1. 読み込みと検査

モデルを読み込み、入力と出力の仕様を確認して、想定される形状と型を特定します。

2. エントリーポイント関数の作成

次の処理を行う、コード生成に対応したエントリーポイント関数を作成します。

  • ファイルパスからモデルを読み込む
  • 入力に対して推論を実行する
  • 出力を返す

モデルのファイルパスは、コンパイル時に認識されるよう coder.Constant でラップする必要があります。

3. 数値の検証

MATLAB の推論出力とソースフレームワークの出力を比較し、モデルが正しく読み込まれていることを確認します。両方の環境で同じ入力データを使用し、許容誤差を指定して比較します。

4. MEX を最初に生成

ホストマシンで検証できるように、ライブラリや実行可能ファイルを生成する前に、必ず MEX を生成してください。

CPU MEX:

cfg = coder.config("mex");
codegen -config cfg -args {coder.Constant("model_file"), input} entryPoint

CUDA MEX(GPU 高速化):

cfg = coder.gpuConfig("mex");
codegen -config cfg -args {coder.Constant("model_file"), input} entryPoint

CPU MEX の SIMD 高速化(Intel/AMD 向けの AVX2 に SIMDAcceleration = 'Full' を使用)については、matlab-generate-code スキルを参照してください。DNN 推論に特化した MEX の AVX2 上限については、references/dnn-codegen-options.md を参照してください。

5. MEX 出力の検証

許容誤差を指定し、matlab.unittest を使用して MEX の出力を MATLAB の参照出力と比較します。

refOut = entryPoint("model_file", input);
mexOut = entryPoint_mex("model_file", input);
testCase = matlab.unittest.TestCase.forInteractiveUse;
testCase.verifyThat(mexOut, matlab.unittest.constraints.IsEqualTo(refOut, ...
    'Within', matlab.unittest.constraints.AbsoluteTolerance(single(1e-5))));
6. ライブラリ/実行可能ファイルを生成する

MEX を検証したら、本番用コードを生成します。

cfgLib = coder.config("lib");
cfgLib.TargetLang = "C++";  % set to "C++" for C++ output; default is "C"
codegen -config cfgLib -args {coder.Constant("model_file"), input} entryPoint

DLL の場合は、coder.config("dll") を使用します。実行可能ファイルの場合は、coder.config("exe") を使用します。

CUDA バリアント: coder.config を coder.gpuConfig に置き換えます。

パフォーマンスのチューニング:

  • 汎用的な設定(SIMD 命令セット、リダクションループのベクトル化、マルチスレッドループ)については、matlab-generate-code スキルを参照してください。
  • MATLAB Coder と Simulink Coder のプロパティ名の対応関係、および slbuild の set_param パターンについては、matlab-deploy-embedded-code スキルを参照してください。
  • DNN 推論固有の設定(サードパーティの DL ライブラリを無効にする DLTargetLibrary/DeepLearningConfig、重みをデータファイルにシリアル化する LargeConstantGeneration)については、references/dnn-codegen-options.md を参照してください。
7. Simulink で使用する

Simulink との統合には、dlosslib 専用の PyTorch ExportedProgram ブロックを使用します。ModelFilePath に .pt2 ファイルを設定すると、入力/出力の形状が自動検出されます。エントリーポイント関数や coder.Constant は不要です。

前処理や後処理は、専用ブロックの周囲に Simulink ブロックを配置して実行できます。すべてを単一のブロックにまとめる必要がある場合は、loadPyTorchExportedProgram と invoke を使う MATLAB Function ブロックを使用します(エントリーポイントと同じパターンですが、モデルパスは文字列リテラルであり、coder.Constant は不要です)。

どちらの方法も slbuild によるコード生成に対応しています(固定ステップソルバーと ERT または GRT ターゲットが必要です)。詳細については、references/simulink-workflow.md を参照してください。

8. ハードウェアにデプロイする(任意 — Embedded Coder が必要)

組み込み環境にデプロイする場合は、Embedded Coder の構成で同じエントリーポイント関数を使用します。ERT の構成、ハードウェア設定、PIL/SIL 検証、ターゲット固有のオプションについては、matlab-deploy-embedded-code スキルを参照してください。スキルがインストールされていない場合は、ユーザーにインストールを依頼してください

主な関数

関数用途パッケージ対応開始バージョン
coder.Constant引数をコンパイル時定数にするMATLAB CoderR2011a
coder.gpuConfigGPU(CUDA)コード生成の構成を作成するGPU CoderR2017b
codegenコードを生成するMATLAB CoderR2011a
loadPyTorchExportedProgram.pt2 を MATLAB に読み込むMATLAB Coder Support Package for PyTorch and LiteRT ModelsR2026a
loadLiteRTModel.tflite を MATLAB に読み込むMATLAB Coder Support Package for PyTorch and LiteRT ModelsR2026a

規約

  • モデルの入力仕様を必ず確認し、入力の形状と型が正しいことを確かめてください
  • 必ず最初に MEX を生成して検証してから、ライブラリ/実行可能ファイルに進んでください
  • モデルファイルパスの引数には、必ず coder.Constant を使用してください
  • 入力データは通常、単精度です(モデルの入力仕様を確認してください)
  • このスキルでは importNetworkFromPyTorch、importNetworkFromTensorFlow、importNetworkFromKeras を使用しないでください。これらは別の経路で dlnetwork を返します。コード生成の前に、量子化、射影、プルーニング、または exportNetworkToSimulink のために dlnetwork が必要な場合は、代わりに matlab-deploy-embedded-ai に案内してください

参考資料

  • references/pytorch-workflow.md — PyTorch 固有のワークフロー全体を説明しています。API の振り分け、エントリーポイントのパターン、エクスポートのガイダンス、よくある間違い、規約が含まれます。PyTorch/.pt2 モデルのコード生成タスクでは参照してください。さらに詳しい PyTorch の資料(API シグネチャ、データレイアウト、数値検証、サポート対象モデル)へのリンクがあります。
  • references/export-pytorch-models.md — torch.export を使って、イーガーモードの PyTorch モデルを .pt2 にエクスポートする方法を説明しています(読み込みより前の手順です)。PyTorch モデルはあるものの .pt2 ファイルがまだない場合や、torch.export の SerializeError/キーワード引数の不一致エラーが発生した場合に参照してください。pytorch-export-patterns.md(ソースごとのテンプレート)と pytorch-export-gotchas.md(torch 2.11 のシリアライズ修正)へのリンクがあります。
  • references/simulink-workflow.md — Simulink との統合について説明しています。専用の PyTorch ExportedProgram ブロック(パス A)と MATLAB Function ブロック(パス B)の使い分け、ブロックマスクのパラメーター、コード生成の設定、コマンドラインでのコード生成との主な違いが含まれます。
  • references/litert-workflow.md — LiteRT 固有のワークフロー全体を説明しています。API の振り分け(loadLiteRTModel → inputSpecifications → invoke)、エントリーポイントのパターン、可変サイズ入力の処理、Simulink との統合、規約が含まれます。LiteRT/.tflite モデルのコード生成タスクでは参照してください。
  • references/tensorflow-to-litert-conversion.md — Python の tf.lite.TFLiteConverter API を使って、TensorFlow SavedModel/Keras/.h5 を .tflite に変換する方法を説明しています。TensorFlow モデルはあるものの .tflite ファイルがまだない場合に参照してください。
  • references/litert-numeric-verification.md — LiteRT モデルの MEX の数値結果を MATLAB の参照結果と照合する方法を説明しています(許容誤差のガイダンス、よくある不一致を含みます)。
  • references/codegen-workflow.md — PyTorch と LiteRT の両方に共通するコード生成の手順を説明しています。MEX の生成と検証、ライブラリ/実行可能ファイルのターゲット、coder.Constant の使用、coder.DeepLearningConfig に関する注意事項が含まれます。
  • references/dnn-codegen-options.md — DNN 推論に固有のコード生成オプションを説明しています。プレーン C の DL パスで使用する DLTargetLibrary/DeepLearningConfig('none')、大きな DNN の重みをデータファイルにシリアライズする LargeConstantGeneration、DNN 推論における MEX の SIMD 上限が含まれます。一般的な資料の設定項目に DNN 固有の説明が必要な場合(例:「MEX の SIMD 上限が重要なのは、推論が対象だから」)に参照してください。

関連項目

  • matlab-generate-code — SIMD 命令セット、OpenMP によるマルチスレッド化、リダクションループのベクトル化など、MATLAB Coder の一般的なチューニングを説明しています。DNN 推論に固有ではないパフォーマンスオプションについて参照してください。
  • matlab-deploy-embedded-ai — モデル圧縮(量子化、プルーニング、射影)を伴う dlnetwork ベースのコード生成と、exportNetworkToSimulink ワークフロー(パターン 1)を説明しています。ソースが .pt2/.tflite ファイルではなく、MATLAB で編集可能な dlnetwork の場合に使用してください。
  • matlab-optimize-gpu-codegen — デプロイ先が CPU や組み込みハードウェアではなく NVIDIA GPU の場合に使用する、CUDA ターゲットのコード生成チューニング(coder.gpuConfig、カーネル融合、メモリ階層のオプション)を説明しています。

Copyright 2026 The MathWorks, Inc.


コメント