|
ReUseX
0.0.5
3D Point Cloud Processing for Building Reuse
|
#include <train.hpp>

Public Attributes | |
| GaussianCloud | gaussians |
| std::vector< TrainMetrics > | history |
| std::vector< EvalMetrics > | evals |
| Held-out evaluations, empty when TrainOptions::holdout_every is 0. | |
| double | seconds = 0 |
| std::size_t | final_count = 0 |
| double | final_psnr = 0 |
| mean PSNR over the last logged window | |
| double | final_holdout_psnr = 0 |
| Held-out PSNR at the last evaluation, 0 when there was no split. | |
| double | final_holdout_ssim = 0 |
| std::size_t | relocated = 0 |
| cumulative MCMC relocations | |
| std::size_t | added = 0 |
| cumulative MCMC growth | |
| std::vector< std::size_t > | trained_views |
| The view indices the optimizer actually drew during the run, sorted and deduplicated, and the ones reserved for evaluation. | |
| std::vector< std::size_t > | holdout_view_indices |
| std::vector< std::filesystem::path > | renders |
| PNGs written by the render_iterations schedule, in write order. | |
| std::vector< std::filesystem::path > | checkpoints |
| Intermediate .ply files from the checkpoint_every schedule that are still on disk, oldest first. | |
| int | final_sh_degree = 0 |
| The highest SH degree the warm-up schedule actually unlocked, which is not always gaussians.sh_degree: a run shorter than sh_degree_interval * sh_degree stops part-way up the ladder, and the bands it never reached are still zero in the saved model. | |
| bool | cancelled = false |
| True when the run stopped early on a cancel request rather than by reaching TrainOptions::iterations. | |
| int | iterations_run = 0 |
| The last iteration actually executed. | |
| std::size_t reusex::gsplat::TrainResult::added = 0 |
| bool reusex::gsplat::TrainResult::cancelled = false |
True when the run stopped early on a cancel request rather than by reaching TrainOptions::iterations.
The model and metrics are real, they are just from fewer iterations — check this before comparing two runs.
| std::vector<std::filesystem::path> reusex::gsplat::TrainResult::checkpoints |
| std::vector<EvalMetrics> reusex::gsplat::TrainResult::evals |
Held-out evaluations, empty when TrainOptions::holdout_every is 0.
| double reusex::gsplat::TrainResult::final_holdout_psnr = 0 |
Held-out PSNR at the last evaluation, 0 when there was no split.
This is the honest quality number; final_psnr is a training-view number.
| double reusex::gsplat::TrainResult::final_holdout_ssim = 0 |
| double reusex::gsplat::TrainResult::final_psnr = 0 |
| int reusex::gsplat::TrainResult::final_sh_degree = 0 |
The highest SH degree the warm-up schedule actually unlocked, which is not always gaussians.sh_degree: a run shorter than sh_degree_interval * sh_degree stops part-way up the ladder, and the bands it never reached are still zero in the saved model.
Recorded so a caller comparing two runs can see that one of them trained a smaller model than its --sh-degree suggests.
| GaussianCloud reusex::gsplat::TrainResult::gaussians |
| std::vector<TrainMetrics> reusex::gsplat::TrainResult::history |
| std::vector<std::size_t> reusex::gsplat::TrainResult::holdout_view_indices |
| int reusex::gsplat::TrainResult::iterations_run = 0 |
The last iteration actually executed.
Equals TrainOptions::iterations for a run that finished.
| std::size_t reusex::gsplat::TrainResult::relocated = 0 |
| std::vector<std::filesystem::path> reusex::gsplat::TrainResult::renders |
| std::vector<std::size_t> reusex::gsplat::TrainResult::trained_views |
The view indices the optimizer actually drew during the run, sorted and deduplicated, and the ones reserved for evaluation.
These are recorded rather than merely intended: "held out" is only a real claim if nothing ever backpropagated through those views, and that is a property of the draw loop, not of the split. Keeping the observed draws makes the separation checkable by a caller (and by a test) instead of having to be taken on trust.