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

training-and-inference

training-and-inference

【数据与研究】Configure scvi-tools training, Trainer options, CPU/GPU devices, validation splits, dataloaders, callbacks, custom datamodules, and inference dataloader execution patterns.

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

技能说明

GitHub

name: training-and-inference description: "Configure scvi-tools training, Trainer options, CPU/GPU devices, validation splits, dataloaders, callbacks, custom datamodules, and inference dataloader execution patterns." disable-model-invocation: true metadata: disco-role: operating license: BSD 3-Clause

training-and-inference

Use this sub-skill when a task is about running, configuring, or debugging model.train(...), Lightning Trainer options, accelerators/devices, validation splits, minibatch loading, callbacks, custom datamodules, or passing dataloaders into inference methods.

Do not use this sub-skill for choosing the model family, setting up AnnData/MuData registries, saving/loading models, or interpreting downstream statistics. Route those to the core-models, data-setup, model-io-and-hub, or downstream-analysis sub-skills.

Fast Routing

  • Need the common train() arguments, TrainerConfig, TrainingPlanConfig, early stopping, checkpointing, or CPU/GPU/DDP choices: read references/training-reference.md.
  • Need DataSplitter, AnnDataLoader, load_sparse_tensor, custom datamodules, or inference dataloader patterns: read references/dataloaders.md.
  • Need to debug CUDA absence, DDP caveats, validation split errors, tiny last batches, callback monitor failures, or custom dataloader batch-key mismatches: read references/troubleshooting.md.
  • Need a portable smoke-test scaffold for a small CPU training run: run python scripts/train_smoke_template.py --help from this sub-skill directory.

Minimal Training Pattern

import scvi

scvi.model.SCVI.setup_anndata(adata, layer="counts", batch_key="batch")
model = scvi.model.SCVI(adata, n_latent=10)
model.train(
    max_epochs=20,
    accelerator="auto",
    devices="auto",
    train_size=0.9,
    validation_size=0.1,
    batch_size=128,
)
latent = model.get_latent_representation()

Keep setup_anndata and model construction aligned with the selected model class, then use this sub-skill to control how training and inference are executed.

Common Decisions

  • Prefer accelerator="auto", devices="auto" for portable code; use accelerator="cpu", devices=1 when a machine has no compatible GPU.
  • Use plan_config/plan_kwargs for optimizer and training-plan options such as lr, weight_decay, or compile.
  • Use trainer_config or trainer kwargs for Lightning behavior such as early_stopping, callbacks, logger, check_val_every_n_epoch, enable_checkpointing, and DDP strategy.
  • Use datamodule=... only for supported custom dataloaders or model classes initialized with registry=datamodule.registry; otherwise let model.train() build its default DataSplitter.
  • For inference on custom datamodules, build the datamodule inference loader and pass it as dataloader=... to methods such as get_latent_representation, get_elbo, get_marginal_ll, or get_normalized_expression.
我的收藏