计划执行与检查节点
executing-plans
按既定实施计划完成工作,保持过程检查和反馈。
training-and-inference【效率与协作】Route legacy SECOND and PointPillars model construction, training, evaluation, checkpoint restoration, and inference with explicit configuration, device, and backend guards.
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
Use this sub-skill when a task asks to train or evaluate SECOND/PointPillars,
build a VoxelNet, restore a .tckpt, run inference, select a model config,
or reason about multi-GPU, fp16, NMS, or spconv errors.
spconv APIs (VoxelGeneratorV2 and NMS symbols), legacy
Numba CUDA behavior, and an old PyTorch integration. A modern spconv 2.x
import is not proof of compatibility.python <training-skill-root>/scripts/check_legacy_backend.py.
Add --require-detector only when deciding whether to attempt a detector
route. Without it, the probe is diagnostic and returns success even when the
legacy symbols are absent.network_class_name, VFE, middle extractor, and RPN
names through the registries; use the Fire commands and output semantics in
workflows.First run the bundled non-invasive probe:
python <training-skill-root>/scripts/check_legacy_backend.py
python <training-skill-root>/scripts/check_legacy_backend.py --require-detector
The second command is the detector gate. This skill does not bundle or invoke
that historical writer/runner, so no source-checkout command is presented as a
runnable recipe. If the probe reports missing legacy symbols, stop before any
historical train, evaluate, or TorchInferenceContext attempt; capture the
exact missing names and use compatibility for
recovery. If a user separately supplies a compatible checkout, the historical
argument shapes are documented in workflows.
These are guarded historical routes, not verified recipes. train refuses an
existing model_dir unless --resume=True; --create_folder=True creates a
new timestamped folder when the requested prefix already exists. Keep model
outputs outside the source tree and back up checkpoints before experiments.
batch_size and num_workers in the training input config are per GPU.
The implementation multiplies both by the visible GPU count for
--multi_gpu=True; do not multiply the config values yourself.train_config.steps and steps_per_eval by the
number of GPUs when scaling a single-GPU schedule to multi-GPU. Verify this
arithmetic before launching; an undivided schedule changes total optimizer
updates and evaluation cadence.enable_mixed_precision: true is not equivalent to modern PyTorch AMP.
Honor the source assertion that max_number_of_voxels * batch_size < 65535.measure_time=True enables CUDA synchronization/timers in model paths and
can distort throughput. Use it only for a deliberate timing run.evaluate writes result.pkl below <result-path>/step_<global_step> and
invokes the dataset evaluator. The historical signature does not accept the
README-era --pickle_result keyword; do not pass it to a separately supplied
runner unless its help output proves otherwise. Route official label
conversion to geometry/evaluation after checking the exact dataset API.checkpoints.json. Restore the latest compatible state, or pass an explicit
.tckpt; never mix a checkpoint with an incompatible config.For exact signatures, config fields, model registry names, checkpoint utilities, and failure recovery, read the linked references before giving a detailed command or API answer.