Skip to content
Back to skills

Training

ASecurity

"Run or adapt GeoSeg supervised PyTorch Lightning training from a

  • 247 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 8, 2026
toolspythonbashtestingbackend

Works with

  • cli

Security analysis

A100/100

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

Scanned September 8, 2026

npx -y skills add VectorSpaceLab/AREX-Skill --skill training --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Training?

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

Security grade badge for Training
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vectorspacelab-training-2f5760e9/badge)](https://www.skillsdirectory.com/skills/vectorspacelab-training-2f5760e9)

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: training
description: "Run or adapt GeoSeg supervised PyTorch Lightning training from a
  Python config, including loaders, augmentation, losses, optimization,
  checkpoints, resumption, and metric interpretation."
disable-model-invocation: true
metadata:
  disco-role: operating
license: GPL 3.0
---

# GeoSeg training

Use this sub-skill when a downstream agent must start, adapt, or diagnose a
supervised GeoSeg training run. The native entrypoint is `train_supervision.py`,
but invoke it through the shared bundled wrapper below; do not launch checkout
files directly. It accepts a Python config rather than command-line
hyperparameter overrides. Full training is **skip-expensive** and
**data/checkpoint dependent**: do not launch it unless the requested dataset
layout, model/backbone weights, output locations, GPU budget, and stopping
criterion are all available.

## Route first

- Use [workflows.md](references/workflows.md) for the preflight, config,
  checkpoint, and metric lifecycle.
- Use [cli-reference.md](references/cli-reference.md) for exact flags, config
  fields, dataset layouts, and command templates.
- Use [troubleshooting.md](references/troubleshooting.md) for dependency,
  data/config, CLI, backend, checkpoint, and workflow failures.
- Route dataset conversion, patch splitting, and mask preparation to the
  `data-preparation` sub-skill. Route model selection and config construction
  to `model-and-config`. Route testing, checkpoint evaluation, and inference
  output rendering to `evaluation-inference`.

Do not implement preprocessing or inference rendering here.

## Safe entry point

Before importing a config, run the bundled static validator. It parses Python
syntax and assignment names without executing imports, constructing datasets or
models, downloading weights, or launching training:

Set `GEOSEG_SKILL` to the generated skill directory and use absolute config
paths when diagnosing from an arbitrary working directory:

```bash
export GEOSEG_SKILL=/path/to/this/skill
python "$GEOSEG_SKILL/sub-skills/training/scripts/check_training_config.py" \
  /path/to/GeoSeg/config/<dataset>/<model>.py
```

For native training, use the shared bundled wrapper rather than invoking the
checkout entrypoint directly. Replace `/path/to/GeoSeg` with the user's GeoSeg
checkout; `--repo-root` must point to that checkout. The config path remains a
user-provided argument and is passed unchanged to the native CLI:

```bash
python "$GEOSEG_SKILL/scripts/run_geoseg_entrypoint.py" \
  --repo-root /path/to/GeoSeg \
  train_supervision.py -c config/<dataset>/<model>.py
```

`-c` and `--config_path` are equivalent and required. There is no native
`--epochs`, `--batch-size`, `--resume`, or GPU override flag; make those
changes in a copied config and validate it again. The native `--help` smoke
check is a lightweight integration check, not evidence that a full run is
possible:

```bash
python "$GEOSEG_SKILL/scripts/run_geoseg_entrypoint.py" \
  --repo-root /path/to/GeoSeg \
  train_supervision.py --help
```

Run that smoke check only after this generated skill is integrated with the
repository environment. Never use `--help` as a substitute for dataset or
checkpoint validation.

## Operating rules

1. Validate the config statically, then verify its referenced data and weight
   paths before allowing Python config import. LoveDA creates
   `loveda_val_dataset` at module import, so even a config inspection that
   imports `geoseg.datasets.loveda_dataset` requires the external LoveDA Val
   tree. The static validator intentionally avoids this side effect.
2. Ensure the config's `num_classes`, `classes`, `ignore_index`, model output,
   and loss agree. A loader batch must contain `img` and
   `gt_semantic_seg`; masks must be integer class labels with the configured
   ignore value.
3. Select exactly one checkpoint intent: `pretrained_ckpt_path` initializes a
   `Supervision_Train` model from a checkpoint, while `resume_ckpt_path` asks
   Lightning to restore a training state during `trainer.fit`. Do not combine
   them accidentally; see [workflows.md](references/workflows.md).
4. Ensure `monitor` is one of the metrics actually logged by the script and
   that `monitor_mode` matches the desired direction before creating
   `ModelCheckpoint`.
5. Treat `gpus='auto'` as a Lightning device selection request, not a promise
   of a GPU. Confirm accelerator visibility and effective device count. Start
   with a deliberately small batch/crop smoke run only when data and weights
   are real; otherwise stop after static validation.
6. Report train and validation `mIoU`, `F1`, and `OA`, plus per-class IoU.
   Interpret mIoU/F1 with the dataset-specific last-class exclusion described
   in [cli-reference.md](references/cli-reference.md), rather than silently
   comparing incompatible averages.
7. Record the config path, commit/version, effective data roots, checkpoint
   intent, monitor, device setting, seed caveat, and whether training was
   skipped as expensive. Do not claim a result from a config-only or
   `--help` check.

## Known implementation caveats

The source imports `pytorch_lightning`, not the `lightning` namespace. The
requirements list both `lightning==2.0.0` and `pytorch-lightning==2.3.0`, but
the verified inspection environment used `pytorch-lightning==2.3.0` and omitted
the conflicting/unused `lightning` meta-package. Keep the source import and
prefer the verified package set; do not “fix” this by changing imports during a
training run.

`seed_everything(42)` is hard-coded in `main`; it seeds Python, NumPy, Torch,
and CUDA, sets cuDNN deterministic mode, and then also sets
`torch.backends.cudnn.benchmark=True`. Expect residual nondeterminism and
record hardware/backend details. `accumulate_n` appears in one config but is
not consumed by `train_supervision.py`, so it does not provide gradient
accumulation without a code change.

PyramidMamba's optional `mamba_ssm` dependency is unverified in this checkout;
route that model through dependency troubleshooting and do not mark it
training-ready based only on the config validator.

Files in this skill

  • SKILL.md6 KB
  • references/cli-reference.md7 KB
  • references/troubleshooting.md10.1 KB
  • references/workflows.md11.6 KB
  • scripts/check_training_config.py8.8 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…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.