# Fine-tuning and evaluation The final decoder uses metric local refinement (`metric_local_refinement`), with 128 local channels, two blocks, and at most 16 neighbors. Both schedules run up to 120 epochs, including ten frozen-encoder epochs, followed by cosine fine-tuning. The QL1 and QL2 trainers preserve their respective research protocols. Copy `configs/ql*_segmentation.yaml`, edit data paths and choose a new output directory. Download the paired encoder artifact before fine-tuning. A complete segmentation checkpoint is sufficient for inference. ```bash python scripts/finetune_segmentation.py --config configs/ql2_segmentation.yaml python scripts/evaluate_segmentation.py --config configs/ql2_segmentation_eval.yaml ``` The evaluation configs load released best segmentation checkpoints and use FP32. When evaluating a new run, update `model.segmentation_checkpoint`. QL1 includes the final common-support evaluation seed. mIoU uses five unthresholded semantic classes with unmapped labels ignored. Confidence thresholding belongs to exported products. QL2 evaluation is on the thinned QL1 proxy. Crop visualization LAS files cannot reconstruct an original LAS header or CRS from NumPy input. Record any change to support sampling, normalization, labels, physical radii, checkpoint, or split as a new experiment. Matching architecture alone does not reproduce scores: original splits and support selection also matter.