Files
GridBased/Configs/train_grid_poly_Moench014.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

57 lines
1.6 KiB
YAML

# GridBased training -- polychromatic 5-30 keV, MOENCH014 @150 V
#
# Same architecture and the same losses as the 12 keV configuration; what
# changes is that the energy head now carries information, so it gets a real
# weight and a scale that is not tied to a beam energy.
experiment:
name: "poly5to30keV_Moench014"
results_dir: "Results"
data:
folder: /mnt/sls_det_storage/moench_data/MLXID/Samples/GridBased/poly5to30keV_Moench014_150V
train_shards: [0, 11]
val_shards: [0, 1]
max_train_frames: null
max_val_frames: 8000
input_scale: 15.0 # keV, mid-range; frames are divided by this
energy_scale: 15.0 # keV, the energy target is E / energy_scale
augment: true
batch_size_train: 256
batch_size_val: 512
num_workers: 8
model:
channels: [32, 64, 128, 128] # still 4 x conv3x3, so R = 4 px; wider, because
# the cloud size now has to be disentangled from
# the energy rather than mapping straight to depth
predict_energy: true
norm: "none"
prior_prob: 0.01
loss:
w_obj: 1.0
w_off: 1.0
w_ene: 1.0 # 0.1 at a single energy, where the head learned a
# constant; here it carries the spectrum
focal_alpha: 0.25
focal_gamma: 2.0
smooth_l1_beta_offset: 0.01
smooth_l1_beta_energy: 0.03 # ~ the 0.39 keV noise floor of a 3x3 sum, / 15 keV
training:
epochs: 300
lr: 1.0e-3
weight_decay: 0.0
scheduler_factor: 0.5
scheduler_patience: 6
amp: true
seed: 0
checkpoint_epochs: [50, 100, 150, 200, 250, 300]
eval:
threshold: 0.3
merge_distance: 0.1
match_radius: 1.0
pixel_size_um: 25.0