Run NuRec Validation#
This guide covers running NuRec in validation mode to evaluate a trained reconstruction checkpoint. Validation produces quality metrics and rendered output you can use to assess model performance.
This guide assumes you have already completed a training run. If you haven’t, see Reconstruct an AV Scene with NuRec first.
Validation Modes#
NuRec supports the following training and validation modes via the mode argument:
Mode |
Description |
|---|---|
|
Runs training steps only. |
|
Runs validation against a trained checkpoint. |
|
Runs both training and validation in sequence. |
Run Validation#
Run validation against a trained checkpoint. The command reuses the parsed config and the final checkpoint from your training run, and writes validation artifacts back into the same output directory:
docker run --shm-size=64g --rm --gpus all \
-e NGC_API_KEY=${NGC_API_KEY} \
--volume <DATASET_DIR>:/workdir/dataset \
--volume <TRAINING_OUTPUT_DIR>:/workdir/output \
nvcr.io/nvidia/nre/nre-ga:26.04 \
--config-name=/workdir/output/config/parsed.yaml \
mode=val \
resume=/workdir/output/checkpoints/last.ckpt \
out_dir=/workdir/output
Notes:
<TRAINING_OUTPUT_DIR>is the top-level directory from your training run — the one that containsconfig/,checkpoints/, and log files.This step may prompt you to configure
wandb. Select option3to skip it.
Run Training and Validation Together#
Use mode=trainval to run training and validation as a single step — for example, in a batch pipeline where you don’t need to inspect training results before validation. NuRec trains to completion first, then automatically runs the validation pass against the final checkpoint.
To inspect training artifacts before deciding whether to validate (for example, to check convergence first), run the modes separately: mode=train followed by mode=val.
docker run --shm-size=64g --rm --gpus all \
-e NGC_API_KEY=${NGC_API_KEY} \
--volume <DATASET_DIR>:/workdir/dataset \
--volume <OUTPUT_DIR>:/workdir/output \
nvcr.io/nvidia/nre/nre-ga:26.04 \
mode=trainval \
out_dir=/workdir/output \
--config-name=configs/apps/prod/Hyperion-8.1/car2sim_6cam.yaml \
dataset.path=/workdir/dataset/pai_<CLIP_ID>.json \
dataset.camera_ids=[<CAM1>,<CAM2>,<CAM3>] \
dataset.lidar_ids=[lidar_top_360fov] \
dataset.aux_data=True
Interpreting Validation Metrics#
After validation completes, open metrics.yaml in the output directory. The key field to check is test/psnr (Peak Signal-to-Noise Ratio, measured in dB) — a standard measure of reconstruction fidelity. Higher values indicate the rendered output more closely matches the reference images.
PSNR values vary by scene complexity, number of cameras, and config, but as a general guide:
Above 25 dB — Good reconstruction quality; typically suitable for use in a simulation platform.
20–25 dB — Acceptable for some use cases; review the rendered images and depth maps to judge visually.
Below 20 dB — Low fidelity; investigate data quality, auxiliary data completeness, or try additional training epochs.
Also review the MP4 videos and per-frame images to catch spatial artifacts that aggregate metrics may not surface — for example, blurring around fast-moving actors or edge distortion in wide-angle cameras.
Validation Artifacts#
The validation pipeline writes the following artifacts to <TRAINING_OUTPUT_DIR>/val/:
metrics.yaml— Per-frame metrics and summary statistics (see Interpreting Validation Metrics).Depth map images and a corresponding MP4 video.
Opacity map images and a corresponding MP4 video.
Segmentation map images and a corresponding MP4 video.
Log files from the validation pipeline.
Next Steps#
Once validation passes and you’re satisfied with the reconstruction quality, the scene is ready to use in your simulation platform:
Render offline — Use the
rendercommand to generate a batch of images from the USDZ for inspection or dataset augmentation without a live server.Integrate with your sim platform — Launch the NuRec gRPC API server pointing at
usd-out/last.usdzto serve rendered RGB and LiDAR frames to your simulator in real time. See Get Started with NuRec: For Simulation Platforms for the full integration overview.
To view all available arguments for training, validation, and export utilities, run the following:
docker run --shm-size=64g --rm --gpus all \
-e NGC_API_KEY=${NGC_API_KEY} \
nvcr.io/nvidia/nre/nre-ga:26.04 --help
To get help for a specific export utility:
docker run --shm-size=64g --rm --gpus all \
-e NGC_API_KEY=${NGC_API_KEY} \
nvcr.io/nvidia/nre/nre-ga:26.04 \
<EXPORT_UTILITY_NAME> \
--help