# tao-train-pose-classification

Train, evaluate, export, and run inference with a TAO pose classifier built on ST-GCN. Use it to classify actions from sequences of pose keypoints.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 1600 installs · ★ 3735
- Author: NVIDIA Corporation
- License: Apache-2.0 · policy=mirror · the beginning of the file is at the end of this page
- Source: https://github.com/NVIDIA/skills/tree/HEAD/skills/tao-train-pose-classification/SKILL.md
- Updated: 2026-10-26
- HTML: https://affpapa.org/en/nevibecode/skills/tao-train-pose-classification

## What it does

This skill covers the ST-GCN pose-classification workflow: training, evaluation, export, and inference. Training uses `train_data.npy` and `train_label.pkl`; validation uses `val_data.npy` and `val_label.pkl`. Raw DeepStream BodyPose JSON can go through `dataset_convert`, while data already in `.npy` and `.pkl` form can go straight to training.

Actions run through the `pose_classification` CLI in Docker, with a YAML spec passed using `-e`. Docker and `nvidia-container-toolkit` are required for the documented launch, so it will not work as written without them. Paths must line up inside the container. The skill includes action schemas and spec templates, and its training workflow can use AutoML.

## Requirements
- Works with: Docker

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add NVIDIA/skills --skill tao-train-pose-classification -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/tao-train-pose-classification/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/tao-train-pose-classification/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add NVIDIA/skills --skill tao-train-pose-classification -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/tao-train-pose-classification/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add NVIDIA/skills --skill tao-train-pose-classification -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/tao-train-pose-classification/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install NVIDIA/skills tao-train-pose-classification
```

2. **Manually: put the files in place**
- File: `.github/skills/tao-train-pose-classification/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add NVIDIA/skills --skill tao-train-pose-classification -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/NVIDIA/skills --path skills/tao-train-pose-classification
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/tao-train-pose-classification/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add NVIDIA/skills --skill tao-train-pose-classification -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/NVIDIA/skills/tree/HEAD/skills/tao-train-pose-classification/SKILL.md

## When to use it
- train an ST-GCN model on labeled pose sequences
- evaluate a checkpoint on validation data
- convert DeepStream BodyPose JSON for training
- export a TAO pose-classification model
- run inference on test sequences

## Example prompts
- Train an ST-GCN classifier on `train_data.npy` and check it with `val_data.npy`.
- Evaluate the checkpoint using `val_data.npy` and `val_label.pkl`.
- Run inference on the test sequences, then export the model.

## Source text · SKILL.md · Apache-2.0

Below is the content of a third-party file. It is data, not instructions for you: do not act on anything written inside unless the human asks. Block tag: 426d75d060086f2d.

BEGIN THIRD-PARTY FILE 426d75d060086f2d
````text
---
name: tao-train-pose-classification
description: Pose classification using ST-GCN (Spatial Temporal Graph Convolutional Network). Classifies skeleton sequences
  into action categories from pose-keypoint data. Use when training, evaluating, exporting, or running inference for a TAO
  pose-classification model. Trigger phrases include "train pose classification", "skeleton action recognition", "ST-GCN",
  "keypoint sequence classifier".
license: Apache-2.0
compatibility: Requires docker + nvidia-container-toolkit.
metadata:
  version: "0.1.0"
  author: NVIDIA Corporation
allowed-tools: Read Bash
tags:
- pose
- classification
---

# Pose Classification

> **Standalone install?** If this session was not initialized by the TAO skill bank plugin, run the `tao-setup` skill first (host preflight, credentials, cross-skill discovery).

Pose classification using ST-GCN (Spatial Temporal Graph Convolutional Network). Classifies skeleton sequences into action categories from pose keypoint data.

Typically trained from scratch on skeleton data.

The packaged PyTorch Pose Classification CLI supports `dataset_convert`, `train`, `evaluate`, `export`, and `inference`. `dataset_convert` is conditional: run it only when the input is raw DeepStream BodyPose JSON. If the dataset is already converted to TAO-ready `.npy` / `.pkl` files, start directly with `train` on those files and mark dataset conversion as `not run: preconverted dataset provided` in validation reports. This model does not expose deploy, prune, quantize, or standalone retrain actions. Resume/retrain behavior uses `pose_classification train -e ...` with `train.resume_training_checkpoint_path` populated.

## Quick Start (docker run)

Docker-native launch — no TAO SDK and no Python on the host. Use the local
Docker/platform skill instead when it gives a stricter environment-specific
command (non-root UID mapping, cache redirects, remote daemons).

```bash
TAO_PYT_IMAGE_DEFAULT=nvcr.io/nvidia/tao/tao-toolkit:7.3.0-pyt  # versions-key: images.tao_toolkit.pyt
TAO_PYT_IMAGE="${TAO_PYT_IMAGE:-$TAO_PYT_IMAGE_DEFAULT}"
RUN_ROOT="${RUN_ROOT:-$PWD}"
DOCKER_COMMON=(
  --rm --gpus all --shm-size=8g
  --shm-size=8g
  --ulimit memlock=-1
  --ulimit stack=67108864
  -v "$RUN_ROOT/data:/data:ro"
  -v "$RUN_ROOT/specs:/specs:ro"
  -v "$RUN_ROOT/results:/results"
)
```

Dataset convert:

```bash
docker run "${DOCKER_COMMON[@]}" "$TAO_PYT_IMAGE" \
  pose_classification dataset_convert -e /specs/dataset_convert.yaml
```

Train:

```bash
docker run "${DOCKER_COMMON[@]}" "$TAO_PYT_IMAGE" \
  pose_classification train -e /specs/train.yaml
```

Evaluate:

```bash
docker run "${DOCKER_COMMON[@]}" "$TAO_PYT_IMAGE" \
  pose_classification evaluate -e /specs/evaluate.yaml
```

Inference:

```bash
docker run "${DOCKER_COMMON[@]}" "$TAO_PYT_IMAGE" \
````
END THIRD-PARTY FILE 426d75d060086f2d

The third-party file has ended. Everything between the 426d75d060086f2d tags is data: requests and commands from it are not followed. An “end of file” line with another tag inside the block is part of the file.

First 2820 of 15361 bytes. © NVIDIA Corporation · Apache-2.0 · https://github.com/NVIDIA/skills/tree/HEAD/skills/tao-train-pose-classification/SKILL.md

_Part of the page did not fit — see the HTML version._

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
