Reconnaissance d'actions
Reconnaissance d'actions à partir de séquences vidéo. Supporte les types d'entrée RGB, flux optique et joint (multi-flux) pour classer les actions temporelles dans les clips vidéo.
Définissez model.pretrained_model_path pour les poids de backbone préentraînés.
Schémas Dataclass
Les schémas TAO Core générés sont empaquetés dans schemas/<action>.schema.json, avec schemas/manifest.json listant les actions disponibles. Chaque schéma généré émet aussi references/spec_template_<action>.yaml depuis le champ default au niveau du schéma. L'activation AutoML est déclarée au niveau du modèle dans references/skill_info.yaml via automl_enabled. L'exécution AutoML nécessite toujours que schemas/train.schema.json et references/spec_template_train.yaml existent et s'analysent correctement. Utilisez le schéma d'entraînement empaqueté pour automl_default_parameters, automl_disabled_parameters, les valeurs par défaut, les limites min/max, les énumérations, les poids d'option, les conditions mathématiques, les dépendances et les paramètres populaires. Ne comptez pas sur la présence de ~/tao-core à l'exécution ; les mainteneurs régénèrent les schémas/templates avant d'empaqueter la skill bank.
Politique Train Action
Ce modèle est activé pour AutoML au niveau du modèle. Avant de traiter toute demande au stade d'entraînement, lisez references/skill_info.yaml et résolvez la substitution de run à partir soit d'une valeur automl_policy explicite, soit de la demande de workflow de l'utilisateur. Traitez les expressions comme « turn off AutoML », « disable AutoML », « no HPO » ou « plain training » comme automl_policy: off pour cette exécution uniquement ; sinon, utilisez la valeur par défaut auto. Quand automl_policy: auto, automl_enabled: true, et que schemas/train.schema.json et references/spec_template_train.yaml sont empaquetés, routez l'action train via tao-skill-bank:tao-run-automl par défaut avec le skill_dir de ce modèle. Préservez les substitutions workflow/application pour les datasets, specs, répertoires de sortie, paramètres GPU/plateforme, checkpoints parents et automl_policy. Utilisez l'entraînement direct du modèle uniquement quand automl_policy: off ou que le schéma/template d'entraînement empaqueté est manquant ; en cas de schéma manquant, signalez qu'AutoML est activé mais ne peut pas être exécuté pour ce modèle jusqu'à ce que les schémas soient générés.
Les actions non-train comme evaluate, inference, export et les flux de déploiement restent dans cette skill de modèle. La substitution automl_policy par run ne change pas les métadonnées du modèle.
Exigences d'entraînement
- Type de dataset : action_recognition
- Formats : default
- Métrique de suivi : val_acc
Exigences de dataset par action
| Action | Clé Spec | Source | Fichiers | Liste ? |
|---|---|---|---|---|
| evaluate | evaluate.test_dataset_dir | train_datasets | test.tar.gz | Non |
| inference | inference.inference_dataset_dir | train_datasets | test/smile.tar.gz | Non |
| train | dataset.train_dataset_dir | train_datasets | train.tar.gz | Non |
| train | dataset.val_dataset_dir | train_datasets | test.tar.gz | Non |
Substitutions Spec typiques
Les substitutions de source de données sont obligatoires pour chaque action — l'agent DOIT construire les chemins de source de données à partir du tableau Exigences de dataset par action ci-dessus et les inclure dans spec_overrides.
S3_TRAIN = "s3://bucket/data/train"
train (sources de données obligatoires) :
{
"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 (sources de données obligatoires) :
{
"evaluate.test_dataset_dir": f"{S3_TRAIN}/test.tar.gz",
}
inference (sources de données obligatoires) :
{
"inference.inference_dataset_dir": f"{S3_TRAIN}/test/smile.tar.gz",
}
Dataset Eval
Optionnel. Le dataset de test est fourni en tant que test.tar.gz séparé de l'entraînement.
Paramètres importants
- model.model_type : Type d'entrée : rgb, of (flux optique) ou joint (multi-flux).
- model.backbone : resnet_18 par défaut. Utilisé comme extracteur de caractéristiques spatiales.
- dataset.label_map : Dictionnaire mappant les noms de classes aux indices.
- model.rgb_seq_length : Nombre d'images par clip pour l'entrée RGB.
- model.of_seq_length : Nombre d'images pour l'entrée flux optique.
- train.optim.lr : Taux d'apprentissage. Valeur par défaut 5e-4.
Multi-GPU / Multi-Node
Méthode de lancement : Gérée par Lightning (processus Python unique, Lightning lance les workers).
| Clé Spec | Description | Défaut |
|---|---|---|
train.num_gpus |
Nombre de GPUs | 1 |
train.gpu_ids |
Indices de périphériques GPU | [0] |
- Stratégie :
auto(Lightning choisit automatiquement la meilleure stratégie) - Aucune configuration explicite
num_nodesoudistributed_strategy— orientée single-node
Hardware
Minimum 1 GPU, recommandé 2 GPU. 16 Go+ VRAM par GPU. La mémoire dépend de la longueur de séquence et de la résolution d'entrée. batch_size=2 est conservateur pour les données vidéo.
Motifs d'erreur
Longueur de séquence incompatible : Assurez-vous que les clips vidéo ont suffisamment d'images pour le rgb_seq_length ou of_seq_length configuré.
Param Spec / Inférence de modèle parent
Les mappages d'inférence spécifiques au modèle appartiennent à ce fichier MD, pas à config.json. Les runners générés doivent lire cette section et appliquer les mappages avec les helpers SDK avant create_job(). Cela reflète l'ancien flux microservices infer_params.py.
Mappages d'inférence depuis action_recognition.config.json TAO Core :
| Action | Champ Spec | Fonction d'inférence | Signification |
|---|---|---|---|
| evaluate | encryption_key |
key |
clé de chiffrement |
| evaluate | evaluate.checkpoint |
parent_model |
fichier de modèle déduit du dossier de résultats du job parent |
| evaluate | results_dir |
output_dir |
répertoire de résultats du job actuel |
| export | encryption_key |
key |
clé de chiffrement |
| export | export.checkpoint |
parent_model |
fichier de modèle déduit du dossier de résultats du job parent |
| export | export.onnx_file |
create_onnx_file |
chemin ONNX de sortie |
| export | results_dir |
output_dir |
répertoire de résultats du job actuel |
| inference | encryption_key |
key |
clé de chiffrement |
| inference | inference.checkpoint |
parent_model |
fichier de modèle déduit du dossier de résultats du job parent |
| inference | results_dir |
output_dir |
répertoire de résultats du job actuel |
| train | encryption_key |
key |
clé de chiffrement |
| train | model.of_pretrained_model_path |
ptm_if_no_resume_model |
PTM quand aucun checkpoint de reprise n'existe |
| train | model.rgb_pretrained_model_path |
ptm_if_no_resume_model |
PTM quand aucun checkpoint de reprise n'existe |
| train | results_dir |
output_dir |
répertoire de résultats du job actuel |
| train | train.resume_training_checkpoint_path |
resume_model |
fichier de modèle déduit du dossier de résultats du job actuel |
Pour parent_model ou parent_model_folder, passez l'id du job enfant train/export/AutoML en amont en tant que parent_job_id. Le SDK liste le dossier de résultats parent, filtre les artefacts de checkpoint et retourne le fichier ou dossier de modèle sélectionné. N'ajoutez pas ces mappages à config.json et ne patchez pas les scripts runner générés pour deviner les chemins de checkpoint.