tao-train-action-recognition について
tao-train-action-recognition は、動画シーケンスの行動分類を行う NVIDIA TAO スキルです。RGB、オプティカルフロー、複合マルチストリーム入力に対応し、学習、評価、推論、エクスポートのワークフローを提供します。
主な機能
- 01RGB・オプティカルフロー・複合入力
- 02動画クリップの時系列行動分類
- 03学習と評価
- 04推論とモデルのエクスポート
- 05AutoML 学習ポリシーへの対応
活用シーン
- 01動画行動分類モデルの学習
- 02RGB またはオプティカルフローによる行動分類
- 03行動認識モデルの評価とエクスポート
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ promptingcompany/ nv-skills --skill tao-train-action-recognitionインストール後、Claude Code で/tao-train-action-recognitionを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
BENCHMARK.mdskill-card.mdskill.oms.sigevals/evals.jsonreferences/skill_info.yamlspec_template_evaluate.yamlspec_template_export.yamlspec_template_inference.yamlspec_template_train.yamlschemas/evaluate.schema.jsonexport.schema.jsoninference.schema.jsonmanifest.jsontrain.schema.json詳細
アクション認識
動画シーケンスからアクションを認識します。動画クリップ内の時間的なアクションを分類するため、RGB、オプティカルフロー、ジョイント(マルチストリーム)入力タイプに対応しています。
事前学習済みバックボーンの重みを設定するには、model.pretrained_model_path を指定してください。
データクラススキーマ
生成された TAO Core スキーマは schemas/<action>.schema.json にパッケージ化されており、利用可能なアクションは schemas/manifest.json に記載されています。各生成スキーマでは、スキーマのトップレベルの default フィールドから references/spec_template_<action>.yaml も生成されます。AutoML の有効化は、references/skill_info.yaml のモデル層で automl_enabled を使って宣言します。AutoML を実行可能にするには、schemas/train.schema.json と references/spec_template_train.yaml が存在し、解析できる必要があります。automl_default_parameters、automl_disabled_parameters、デフォルト値、最小値/最大値の範囲、列挙値、オプションの重み、数式条件、依存関係、よく使われるパラメーターには、パッケージ化された train スキーマを使用してください。実行時に ~/tao-core があることを前提にしないでください。スキルバンクをパッケージ化する前に、メンテナーがスキーマ/テンプレートを再生成してください。
Train アクションのポリシー
このモデルでは、モデル層で AutoML が有効になっています。train ステージのリクエストを処理する前に、references/skill_info.yaml を読み、明示的な automl_policy の値、またはユーザーのワークフローリクエストから実行時のオーバーライドを解決してください。「AutoML をオフにして」「AutoML を無効にして」「HPO なしで」「通常のトレーニングで」などの表現は、この実行に限り automl_policy: off として扱ってください。それ以外の場合は、デフォルトで auto を使用します。automl_policy: auto、automl_enabled: true であり、schemas/train.schema.json と references/spec_template_train.yaml の両方がパッケージ化されている場合、デフォルトではこのモデルの skill_dir を指定して train アクションを tao-skill-bank:tao-run-automl 経由で実行してください。データセット、spec、出力ディレクトリ、GPU/プラットフォーム設定、親チェックポイント、automl_policy に関するワークフロー/アプリケーションのオーバーライドは保持してください。automl_policy: off の場合、またはパッケージ化された train スキーマ/テンプレートがない場合に限り、モデルの直接トレーニングを使用してください。スキーマがない場合は、AutoML は有効ですが、スキーマが生成されるまではこのモデルで実行できないことを報告してください。
evaluate、inference、export、デプロイの各フローなど、train 以外のアクションは、このモデルのスキル内で実行します。実行ごとの automl_policy オーバーライドによってモデルのメタデータが変更されることはありません。
トレーニング要件
- データセットタイプ: action_recognition
- 形式: デフォルト
- モニタリング指標: val_acc
アクションごとのデータセット要件
| アクション | Spec キー | ソース | ファイル | リスト? |
|---|---|---|---|---|
| evaluate | evaluate.test_dataset_dir | train_datasets | test.tar.gz | いいえ |
| inference | inference.inference_dataset_dir | train_datasets | test/smile.tar.gz | いいえ |
| train | dataset.train_dataset_dir | train_datasets | train.tar.gz | いいえ |
| train | dataset.val_dataset_dir | train_datasets | test.tar.gz | いいえ |
一般的な Spec オーバーライド
データソースのオーバーライドはすべてのアクションで必須です。エージェントは、アクションごとのデータセット要件表に基づいてデータソースのパスを作成し、spec_overrides に含める必要があります。
S3_TRAIN = "s3://bucket/data/train"
train(必須データソース):
{
"train.num_epochs": 30,
"train.checkpoint_interval": 10,
"train.validation_interval": 10,
"train.num_gpus": 1,
"dataset.label_map": {
"catch": 0,
"smile": 1
},
"dataset.batch_size": 2,
"dataset.train_dataset_dir": f"{S3_TRAIN}/train.tar.gz",
"dataset.val_dataset_dir": f"{S3_TRAIN}/test.tar.gz",
}
evaluate(必須データソース):
{
"evaluate.test_dataset_dir": f"{S3_TRAIN}/test.tar.gz",
}
inference(必須データソース):
{
"inference.inference_dataset_dir": f"{S3_TRAIN}/test/smile.tar.gz",
}
評価データセット
任意です。テストデータセットは、トレーニング用とは別に test.tar.gz として提供されます。
重要なパラメーター
- model.model_type:入力タイプ。rgb、of(オプティカルフロー)、または joint(マルチストリーム)。
- model.backbone:デフォルトは resnet_18 です。空間特徴抽出器として使用されます。
- dataset.label_map:クラス名をインデックスに対応付ける辞書です。
- model.rgb_seq_length:RGB 入力におけるクリップあたりのフレーム数です。
- model.of_seq_length:オプティカルフロー入力におけるフレーム数です。
- train.optim.lr:学習率です。デフォルトは 5e-4 です。
マルチ GPU/マルチノード
起動方法: Lightning による管理(単一の python プロセスで、Lightning がワーカーを起動します)。
| Spec Key | 説明 | デフォルト |
|---|---|---|
train.num_gpus | GPU の数 | 1 |
train.gpu_ids | GPU デバイスのインデックス | [0] |
- ストラテジー:
auto(Lightning が最適なストラテジーを自動的に選択します) - 明示的な
num_nodesまたはdistributed_strategyの設定はありません — シングルノード向けです
ハードウェア
最低 1 GPU、推奨 2 GPU です。各 GPU の VRAM は 16GB 以上です。メモリ使用量はシーケンス長と入力解像度によって異なります。動画データには batch_size=2 が控えめな設定です。
エラーパターン
シーケンス長の不一致:動画クリップのフレーム数が、設定した rgb_seq_length または of_seq_length に対して十分であることを確認してください。
Spec パラメーター/親モデルの推論
モデル固有の推論マッピングは config.json ではなく、この MD ファイルに記述します。生成されたランナーはこのセクションを読み取り、create_job() の前に SDK ヘルパーを使ってマッピングを適用してください。これは、従来のマイクロサービスにおける infer_params.py のフローに相当します。
TAO Core の action_recognition.config.json に基づく推論マッピング:
| アクション | Spec フィールド | 推論関数 | 意味 |
|---|---|---|---|
| 評価 | encryption_key | key | 暗号化キー |
| 評価 | evaluate.checkpoint | parent_model | 親ジョブの結果フォルダーから推論されるモデルファイル |
| 評価 | results_dir | output_dir | 現在のジョブの結果ディレクトリ |
| エクスポート | encryption_key | key | 暗号化キー |
| エクスポート | export.checkpoint | parent_model | 親ジョブの結果フォルダーから推論されるモデルファイル |
| エクスポート | export.onnx_file | create_onnx_file | ONNX の出力パス |
| エクスポート | results_dir | output_dir | 現在のジョブの結果ディレクトリ |
| 推論 | encryption_key | key | 暗号化キー |
| 推論 | inference.checkpoint | parent_model | 親ジョブの結果フォルダーから推論されるモデルファイル |
| 推論 | results_dir | output_dir | 現在のジョブの結果ディレクトリ |
| トレーニング | encryption_key | key | 暗号化キー |
| トレーニング | model.of_pretrained_model_path | ptm_if_no_resume_model | 再開用チェックポイントがない場合の PTM |
| トレーニング | model.rgb_pretrained_model_path | ptm_if_no_resume_model | 再開用チェックポイントがない場合の PTM |
| トレーニング | results_dir | output_dir | 現在のジョブの結果ディレクトリ |
| トレーニング | train.resume_training_checkpoint_path | resume_model | 現在のジョブの結果フォルダーから推論されるモデルファイル |
parent_model または parent_model_folder には、上流のトレーニング/エクスポート/AutoML 子ジョブの ID を parent_job_id として渡してください。SDK は親ジョブの結果フォルダーを一覧表示し、チェックポイントのアーティファクトを絞り込んで、選択されたモデルファイルまたはフォルダーを返します。これらのマッピングを config.json に戻したり、チェックポイントのパスを推測するように生成されたランナースクリプトにパッチを適用したりしないでください。