Files
GridBased/Configs/generate_frames_12keV.yaml
xie_x1andClaude Opus 5.5 0f9a3f496f Initial commit: grid-based multi-photon reconstruction
Code, configs, charge LUTs, best.pth and evaluation records for each
training run, the knife-edge / Siemens-star / XRF notebooks with
outputs, and the overnight run reports. Epoch checkpoints, inference
results and HTML exports stay local (see .gitignore).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 07:36:49 +02:00

64 lines
2.3 KiB
YAML

# GridBased frame generation -- 12 keV, MOENCH040 @150 V (WP1.2, stamp-reuse variant)
#
# Frames are composed from the existing noiseless single-photon MC stamps
# (McGeneration output). Charge superposition is linear, so pile-up frames can
# be assembled by summing stamps; detector noise is applied once per frame.
meta:
energy: 12 # keV, beam energy of the stamp library
sensor: Moench040
hv: 150 # V
pixel_size_um: 25
sensor_thickness_um: 650
stamps:
folder: /mnt/sls_det_storage/moench_data/MLXID/Samples/Simulation/Moench040
pattern: "12keV_Moench040_150V_{}.npz"
train_files: [0, 11] # inclusive index range -> 12 shards
val_files: [12, 13]
test_files: [14, 15]
frame:
size: 32 # training frame side (px). Fully-convolutional
# model => inference runs on full 400x400 frames.
margin: 4 # ring (px) over which photons are also thrown so
# that out-of-frame photons leak charge in
noise:
pixel_keV: 0.13 # per-pixel Gaussian, matches the iWoRiD study
common_mode_row_keV: 0.0 # WP1.3: switch on once measured
common_mode_col_keV: 0.0
edge_augmentation:
fraction: 0.08 # fraction of frames containing a sensor boundary
output:
folder: /mnt/sls_det_storage/moench_data/MLXID/Samples/GridBased/12keV_Moench040_150V
splits:
train:
frames_per_shard: 200_000 # 12 shards -> 2.4M frames, ~60M photons
occupancy: {mode: loguniform, min: 0.002, max: 0.10}
val:
frames_per_shard: 80_000
occupancy: {mode: loguniform, min: 0.002, max: 0.10}
test:
frames_per_shard: 80_000
occupancy: {mode: loguniform, min: 0.002, max: 0.10}
# fixed-occupancy sets, for scanning performance vs flux
eval_scan:
# 20 % and 50 % are far outside the 0.2-10 % training range on purpose:
# they are where the cluster chains stop working and the grid chain has to
# be shown extrapolating. Appended, never reordered -- the per-point seed
# is base_seed + 9000 + index, so inserting a point would reshuffle the
# existing ones.
occupancies: [0.005, 0.01, 0.02, 0.05, 0.10, 0.20, 0.50]
frames_each: 8_000
stamp_files: [14, 15]
edge_fraction: 0.0
runtime:
n_workers: 16
seed: 20260830