界面已本地化;技能介绍与说明文档按所选语言由 AI 自动翻译,代码、命令、路径和专业术语保留原文,以原作者文档为准。
探索技能
数据与研究 · SKILL.md

datamodules-and-tasks

datamodules-and-tasks

【数据与研究】Use for TorchGeo Lightning DataModules, CLI/config runs, task classes, losses, metrics, prediction/plot hooks, and training workflow wiring.

独立 GitHub 快照 · 自动分类 · 以原作者文档为准

技能说明

GitHub

name: datamodules-and-tasks description: "Use for TorchGeo Lightning DataModules, CLI/config runs, task classes, losses, metrics, prediction/plot hooks, and training workflow wiring." metadata: disco-role: operating disable-model-invocation: true license: MIT

TorchGeo datamodules and tasks

Use this sub-skill when wiring TorchGeo into Lightning training, validation, testing, prediction, CLI configs, or task modules.

DataModule operating facts

  • BaseDataModule wraps a dataset class, batch_size, num_workers, split datasets, split dataloaders, and Kornia augmentation hooks.
  • prepare_data() may download data when download=True; it must not create split state. setup(stage) creates datasets/samplers and is called on every process.
  • GeoDataModule is for GeoDataset classes and sets collate_fn = stack_samples. It manages RandomPatchSampler, GriddedPatchSampler, and batch samplers for split-specific patch extraction.
  • NonGeoDataModule is for integer-indexed datasets and ordinary PyTorch dataloader shuffle/split semantics.
  • on_after_batch_transfer() applies the split-specific augmentation after the batch reaches the device. This is where Kornia GPU augmentations belong.

Task classes

TorchGeo task modules are Lightning modules for common geospatial ML problems:

  • Classification: timm-backed image classification with weights, in_channels, task type, class/label counts, losses, and optional frozen backbone.
  • SemanticSegmentation: SMP or TorchGeo FCN segmentation with model, backbone, weights, in_channels, multiclass/multilabel/binary settings, losses, and freeze options.
  • Other task modules cover change detection, detection, instance segmentation, regression, temporal/spatiotemporal tasks, MAE, MoCo, BYOL, SimCLR, and IO benchmark workflows.

Before changing a task, inspect its corresponding tests/tasks/test_<task>.py for constructor matrix, batch schema, metric expectations, and trainer smoke coverage.

CLI/config workflow

  • The torchgeo console script is declared as torchgeo.main:main.
  • Prefer JSONArgParse/Lightning config files for reproducible training. Explicitly name the datamodule, task/model, trainer, optimizer/scheduler parameters, and paths.
  • For smoke checks, use small fake fixtures and max_epochs=1, small batch sizes, and no checkpoint downloads.

Batch and mask handling

  • Images are typically tensors shaped (B, C, H, W); some spatiotemporal paths use (B, T, C, H, W) and may flatten or route to spatiotemporal tasks.
  • Segmentation masks may require dtype conversion for Kornia and restoration before loss/metrics.
  • Detection and instance segmentation batches can contain variable-length boxes/masks; use the datamodule utility collate function used by the tests.

Read next

  • reference for task-specific examples and verification candidates.
  • Root troubleshooting for Lightning, Kornia, and optional dependency failures.
我的收藏