Skip to content
Back to skills

Transforms And Tv Tensors

ASecurity

"Build torchvision transforms.v2 pipelines for images, videos,

  • 247 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 9, 2026
datapythonperformance

Security analysis

A100/100

Pro scans all 6 files and shows the line behind each finding

Scanned September 9, 2026

npx -y skills add VectorSpaceLab/AREX-Skill --skill transforms-and-tv-tensors --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Transforms And Tv Tensors?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Transforms And Tv Tensors
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vectorspacelab-transforms-and-tv-tensors/badge)](https://www.skillsdirectory.com/skills/vectorspacelab-transforms-and-tv-tensors)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: transforms-and-tv-tensors
description: "Build torchvision transforms.v2 pipelines for images, videos,
  masks, boxes, rotated boxes, keypoints, arbitrary samples, migration from v1,
  and TVTensor metadata safety."
disable-model-invocation: true
metadata:
  disco-role: operating
license: BSD 3-Clause
---

# TorchVision Transforms and TVTensors

Use this sub-skill when the task is about `torchvision.transforms.v2`, `torchvision.tv_tensors`, transform migration, dtype/range handling, annotation metadata, custom transforms, functionals, or transform performance.

For dataset construction, downloads, dataset wrapping, image/video IO, or visualization utilities, route to `../datasets-io-utils/`. For model weights preprocessing transforms, route to `../models-and-weights/`. For official training preset scripts, route to `../training-references/`.

## Fast Routing

- Need a v2 pipeline for classification, detection, segmentation, video, keypoints, or nested sample dicts: use `references/pipeline-recipes.md`.
- Need to preserve or repair image, mask, box, rotated-box, video, or keypoint metadata: use `references/tv-tensors-and-annotations.md`.
- Need to migrate a v1 PIL pipeline, write a custom transform, use functionals/kernels, or tune transform speed: use `references/migration-and-performance.md`.
- Need to debug dtype/range, box formats, `canvas_size`, random determinism, PIL/tensor mismatch, TorchScript, or slow transforms: use `references/troubleshooting.md`.
- Need a safe sanity check with no downloads: run `python sub-skills/transforms-and-tv-tensors/scripts/smoke_transform_pipeline.py` from the skill root or copy the script into a project and run it there.

## Default Transform Choices

- Prefer `from torchvision.transforms import v2` for new code; v2 handles images plus boxes, masks, videos, keypoints, and arbitrary nested samples.
- Prefer tensor-first pipelines. Convert PIL inputs with `v2.ToImage()` and use `v2.ToDtype(torch.float32, scale=True)` before `v2.Normalize(...)`.
- Wrap annotation-bearing tensors with `torchvision.tv_tensors` before geometry transforms, especially `BoundingBoxes(..., format=..., canvas_size=(H, W))`, `Mask(...)`, and `KeyPoints(..., canvas_size=(H, W))`.
- Keep labels, ids, file names, and metadata as plain Python values or plain tensors; v2 passes unsupported objects through unchanged.
- Add `v2.SanitizeBoundingBoxes()` or `v2.ClampBoundingBoxes()` after crops/resizes that can remove or partially move boxes.

## Minimal Detection Dict Pattern

```python
import torch
from torchvision import tv_tensors
from torchvision.transforms import v2

image = torch.randint(0, 256, (3, 32, 40), dtype=torch.uint8)
target = {
    "boxes": tv_tensors.BoundingBoxes([[2, 4, 20, 24]], format="XYXY", canvas_size=image.shape[-2:]),
    "labels": torch.tensor([1]),
    "mask": tv_tensors.Mask(torch.zeros((1, 32, 40), dtype=torch.uint8)),
}

transforms = v2.Compose([
    v2.ToImage(),
    v2.RandomHorizontalFlip(p=1.0),
    v2.ToDtype(torch.float32, scale=True),
])
image, target = transforms(image, target)
```

## Safety Checklist

- Check image shape is `(..., C, H, W)` for tensor images and that videos use a supported video layout for the chosen transform.
- Check float images are in `[0, 1]`; uint8 images are in `[0, 255]`.
- Check bounding boxes have the intended `format` and `canvas_size`, and convert with `v2.ConvertBoundingBoxFormat(...)` when needed.
- Check random transforms sample once per call across all fields by using a single v2 transform call on the full sample, not separate calls per field.
- Check scripted code separately: `v2.Compose` is not the TorchScript composition primitive, and scripting v2 classes can fall back to v1-equivalent behavior.

Files in this skill

  • SKILL.md3.7 KB
  • references/migration-and-performance.md5.5 KB
  • references/pipeline-recipes.md6.4 KB
  • references/troubleshooting.md5.4 KB
  • references/tv-tensors-and-annotations.md4.9 KB
  • scripts/smoke_transform_pipeline.py2.3 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…