Views
No views yet
Video Frames → ViT (per-frame) → Mean Pool → Positional Encoding
→ TRM Reasoning (H=2 cycles, L=2 shared layers) → Mean Pool → Classifier (101 classes)vit_tiny_patch16_224 (ImageNet pretrained)pip install torch torchvision pytorch-lightning timm torchmetrics datasets1# Transfer from HMDB51 (recommended)
2python train_ucf101.py --pretrained_ckpt vit-trm-epoch=29-val_acc=0.7113.ckpt
3
4# From scratch
5python train_ucf101.py
6
7# Smoke test
8python train_ucf101.py --fast_dev_run --max_videos 501import torch
2from vit_trm_video import ViTTRMVideo
3
4model = ViTTRMVideo.load_from_checkpoint("checkpoints/best.ckpt", strict=False)
5model.eval()
6
7video = torch.randn(1, 16, 3, 224, 224) # (batch, frames, C, H, W)
8with torch.no_grad():
9 logits = model(video)
10 pred = logits.argmax(dim=-1)