From 7033a286dfd5ed813aee05f5ace0adcbc275dd58 Mon Sep 17 00:00:00 2001 From: Yipeng Sun Date: Sat, 7 Nov 2026 13:05:30 +0100 Subject: [PATCH] Document 2.5.1 checkpoint and seed behavior --- diffct/geometry.py | 3 ++- docs/EXECUTION.md | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/diffct/geometry.py b/diffct/geometry.py index c4f6ddc..8a74f6a 100644 --- a/diffct/geometry.py +++ b/diffct/geometry.py @@ -251,7 +251,8 @@ def random_trajectory_3d(n_views, sid_mean, sdd_mean, sid_std=0.0, pos_std=0.0, dtype : torch.dtype, optional Data type for tensors (default: torch.float32). seed : int, optional - Random seed for reproducibility (default: None). + Random seed for reproducibility (default: None). The noise comes from + a private generator, so the global PyTorch random state is unchanged. Returns ------- diff --git a/docs/EXECUTION.md b/docs/EXECUTION.md index d16241b..3306b58 100644 --- a/docs/EXECUTION.md +++ b/docs/EXECUTION.md @@ -301,6 +301,9 @@ are checked for finite values in bounded blocks before creating the workspace or writing the output; every rank agrees on admission before execution. Checkpoint paths are `step-000002/rank-00000/metadata.json`, for example. +Saving never replaces a step: when the rank directory of a step already +exists, the solve raises a `ValueError` and leaves the saved checkpoint +unchanged. Use a new `checkpoint_directory` for a new solve. Resume from the corresponding rank directory using `resume=...`; `iterations` is the total target, including saved steps. Complete CGLS/SIRT/Adam state and residual history are restored. Fingerprints bind the acquisition, measurements,