L’interface est localisée ; les présentations et documents des Skills sont traduits automatiquement par IA dans votre langue. Le code, les commandes, chemins et termes techniques restent en version originale, et le document de l’auteur fait foi.
Explorer les Skills
Données et recherche · SKILL.md

datasets-transforms

datasets-transforms

Use Torch Points3D dataset factories, point-cloud data layouts, transforms, filters, collate modes, and safe dataset preflight helpers.

Independent GitHub snapshot · Automated classification · Original documentation governs

Documentation de la Skill

GitHub

name: datasets-transforms description: "Use Torch Points3D dataset factories, point-cloud data layouts, transforms, filters, collate modes, and safe dataset preflight helpers." disable-model-invocation: true metadata: disco-role: operating license: NOASSERTION

Torch Points3D Datasets and Transforms

Use this sub-skill when the user asks about Torch Points3D data configs, torch_geometric.data.Data fields, dataset class resolution, transform/filter YAML, collate behavior, data layout preflights, or adding a dataset to the framework.

Read First

  • Read dataset and transform reference for factory signatures, config fields, collate modes, and common transform patterns.
  • Read data layouts for ShapeNet, S3DIS, ScanNet, ModelNet, SemanticKITTI, object detection, panoptic, and registration data expectations.
  • Read dataset/transform troubleshooting for class lookup failures, invalid transform names, missing features, multiscale constraints, and download/layout blocks.
  • Run transform_config_smoke.py to validate an OmegaConf-style transform or data-config class lookup without training.
  • Run check_scannet_layout.py to inspect a ScanNet raw scene directory without downloading missing files.

Main Workflows

Resolve a dataset class from config

Torch Points3D dataset configs use two required selectors:

task: segmentation
class: shapenet.ShapeNetDataset
dataroot: data

The factory imports torch_points3d.datasets.<task>.<module> and searches for a case-insensitive subclass of BaseDataset matching the class name. Use the transform smoke helper with --data-config to check class resolution before instantiating datasets that may download or preprocess data.

Validate transform YAML

Transforms are OmegaConf objects with a transform name plus optional params and lparams:

- transform: GridSampling3D
  params:
    size: 0.1
- transform: Center

Torch Points3D first looks in torch_points3d.core.data_transform, then in torch_geometric.transforms. Use:

python sub-skills/datasets-transforms/scripts/transform_config_smoke.py \
  --transforms-yaml '[{"transform":"GridSampling3D","params":{"size":0.1}},{"transform":"Center"}]'

Choose a point-cloud data format

  • Dense format: fixed-size tensors collated into [B, N, C]; used by dense APIs such as PointNet2 and RSConv.
  • PyG sparse/message-passing format: variable-size point clouds concatenated with a batch vector; used by many PyG and registration utilities.
  • Partial-dense format: KPConv-style fixed neighbor slots; supports precompute_multi_scale only for PARTIAL_DENSE models.
  • Sparse convolution format: quantized coordinates/features for MinkowskiEngine or torchsparse backends.

Add or adapt a dataset

Follow the framework convention: create a BaseDataset subclass under the task family (segmentation, classification, registration, object_detection, or panoptic), define train/test/val dataset attributes, and implement get_tracker. Then create a matching data config with task, class, dataroot, and transforms.

Boundary Rules

  • For model constructor choices and forward smoke tests, use model-apis.
  • For train/eval commands, checkpoints, logging, and config composition across task/models/data/model_name, use training-evaluation.
  • For registration-specific pair data, descriptor outputs, FPS utility behavior, and 3DMatch/KITTI/ETH evaluation, use registration-workflows.

Safety Checklist

  • Do not instantiate large dataset classes until data size, license, credentials, and preprocessing side effects are acceptable.
  • Use config/class/transform smoke checks before Trainer setup.
  • Keep transform names exact and pass OmegaConf containers rather than plain dictionaries to instantiate_transform.
  • When precompute_multi_scale=True, confirm the model convolution type is PARTIAL_DENSE; other conv types raise NotImplementedError.
Skills enregistrées