Yajur's First Pull
#2
by ypreetham - opened
This view is limited to 50 files because it contains too many changes. See the raw diff here.
- .gitattributes +0 -1
- .gitignore +2 -15
- .python-version +0 -1
- AGENTS.md +0 -52
- LICENSE +21 -0
- Pretrained_GNN/multiclass_pretrained_model_12/config.yaml +0 -319
- Pretrained_GNN/multiclass_pretrained_model_12/model_epoch_71.pt +0 -3
- Pretrained_GNN/multiclass_pretrained_model_12/training.log +0 -74
- Pretrained_GNN/multilabel_pretrained_model_41/config.yaml +0 -569
- Pretrained_GNN/multilabel_pretrained_model_41/model_epoch_44.pt +0 -3
- Pretrained_GNN/multilabel_pretrained_model_41/training.log +0 -91
- README.md +0 -0
- configs/delphes_contrastive.yaml +0 -81
- configs/delphes_jepa.yaml +0 -77
- configs/delphes_jepa_edge.yaml +0 -82
- configs/delphes_masked.yaml +0 -78
- configs/delphes_pfn.yaml +0 -86
- configs/delphes_pretraining.yaml +0 -61
- configs/delphes_tabicl.yaml +0 -89
- configs/delphes_tabpfn.yaml +0 -89
- configs/gamgam.yaml +0 -97
- configs/gamgam_deep_sets.yaml +0 -88
- configs/gamgam_finetune.yaml +0 -97
- configs/gamgam_jepa_finetune.yaml +0 -95
- configs/gamgam_pfn.yaml +0 -90
- configs/gamgam_tabdpt.yaml +0 -91
- configs/gamgam_tabicl.yaml +0 -95
- configs/gamgam_tabpfn.yaml +0 -96
- configs/gamgam_transformer.yaml +0 -92
- configs/tth_cp_even_odd.yaml +0 -49
- docs/design.md +0 -392
- docs/usage.md +0 -255
- plots/cka_layerwise.svg +0 -0
- plots/hyperparameter_optimization.svg +0 -0
- plots/trainingtime.svg +0 -0
- pyproject.toml +0 -80
- root_gnn_dgl/README.md +137 -0
- root_gnn_dgl/configs/attention/ttH_CP_even_vs_odd.yaml +58 -0
- root_gnn_dgl/configs/stats_100K/finetuning_ttH_CP_even_vs_odd.yaml +67 -0
- root_gnn_dgl/configs/stats_100K/pretraining_multiclass.yaml +134 -0
- root_gnn_dgl/configs/stats_100K/ttH_CP_even_vs_odd.yaml +57 -0
- root_gnn_dgl/configs/stats_all/finetuning_ttH_CP_even_vs_odd.yaml +62 -0
- root_gnn_dgl/configs/stats_all/pretraining_multiclass.yaml +134 -0
- root_gnn_dgl/configs/stats_all/ttH_CP_even_vs_odd.yaml +57 -0
- root_gnn_dgl/jobs/cpu.sh +1 -0
- root_gnn_dgl/jobs/inference/run_inference.py +214 -0
- root_gnn_dgl/jobs/interactive.sh +1 -0
- root_gnn_dgl/jobs/prep_data/prep_data.sh +20 -0
- root_gnn_dgl/jobs/prep_data/run_processing.py +103 -0
- root_gnn_dgl/jobs/salloc.sh +1 -0
.gitattributes
CHANGED
|
@@ -33,4 +33,3 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
|
| 33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
| 36 |
-
training_time.png filter=lfs diff=lfs merge=lfs -text
|
|
|
|
| 33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
|
|
.gitignore
CHANGED
|
@@ -1,16 +1,3 @@
|
|
| 1 |
-
# Python tooling
|
| 2 |
__pycache__/
|
| 3 |
-
|
| 4 |
-
|
| 5 |
-
.venv/
|
| 6 |
-
.pytest_cache/
|
| 7 |
-
.ruff_cache/
|
| 8 |
-
.coverage
|
| 9 |
-
dist/
|
| 10 |
-
build/
|
| 11 |
-
|
| 12 |
-
# Local data and generated outputs
|
| 13 |
-
data/
|
| 14 |
-
outputs/
|
| 15 |
-
logs/
|
| 16 |
-
*.onnx
|
|
|
|
|
|
|
| 1 |
__pycache__/
|
| 2 |
+
trainings/
|
| 3 |
+
scores/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.python-version
DELETED
|
@@ -1 +0,0 @@
|
|
| 1 |
-
3.14
|
|
|
|
|
|
AGENTS.md
DELETED
|
@@ -1,52 +0,0 @@
|
|
| 1 |
-
# GNN4Colliders agent instructions
|
| 2 |
-
|
| 3 |
-
GNN4Colliders trains event classifiers (the ROOT-GNN edge network of Ho et
|
| 4 |
-
al., JINST 21 (2026) P08006, a transformer and Deep Sets) on reconstructed
|
| 5 |
-
collider objects. Keep it small and readable: a physicist should be able to follow a
|
| 6 |
-
run from `cli.py` to the model in a few files.
|
| 7 |
-
|
| 8 |
-
## Layout
|
| 9 |
-
|
| 10 |
-
```text
|
| 11 |
-
src/gnn4colliders/ flat modules; see docs/design.md for what each holds
|
| 12 |
-
configs/ one self-contained YAML file per experiment
|
| 13 |
-
scripts/ Slurm wrappers and small helpers (no core logic)
|
| 14 |
-
tests/ pytest, with small ROOT fixtures in tests/fixtures
|
| 15 |
-
Pretrained_GNN/ the published pretrained checkpoints (Git LFS)
|
| 16 |
-
```
|
| 17 |
-
|
| 18 |
-
* `README.md` is the paper's Hugging Face model card. Do not edit it; usage
|
| 19 |
-
goes in `docs/usage.md`, design and results in `docs/design.md`.
|
| 20 |
-
* The main benchmark is `configs/gamgam.yaml` (ATLAS Open Data GamGam, 5
|
| 21 |
-
classes); compare with Table 3 of the paper (`docs/design.md`).
|
| 22 |
-
|
| 23 |
-
## Rules
|
| 24 |
-
|
| 25 |
-
* Add a module or an abstraction only when existing code cannot hold it
|
| 26 |
-
clearly. No new frameworks (Lightning, Hydra, DGL, PyG) without agreement.
|
| 27 |
-
* Configuration is plain dataclasses in `config.py`; every key has a default
|
| 28 |
-
or is required, and unknown keys are errors. Site settings (accounts,
|
| 29 |
-
paths, `UV_CACHE_DIR`) belong in scripts, not in configs or code.
|
| 30 |
-
* Name domain quantities (`labels`, `weight`, `fold`, `event_index`) instead
|
| 31 |
-
of relying on tensor column positions, except for the documented seven node
|
| 32 |
-
columns.
|
| 33 |
-
* Randomness is seeded explicitly (`train.seed`, `data.seed`); never mutate
|
| 34 |
-
global random state elsewhere. Do not claim bitwise reproducibility on GPUs.
|
| 35 |
-
* The node schema, edge construction, MLP layout and parameter names must
|
| 36 |
-
stay compatible with `Pretrained_GNN/`; a test loads both pretrained models.
|
| 37 |
-
* Changes to features, splits, loss or metrics change physics results: say so
|
| 38 |
-
explicitly and re-check the GamGam benchmark.
|
| 39 |
-
|
| 40 |
-
## Checks
|
| 41 |
-
|
| 42 |
-
```bash
|
| 43 |
-
uv sync --dev
|
| 44 |
-
uv run pytest # GPU tests run on a CUDA node
|
| 45 |
-
uv run ruff check . && uv run ruff format --check .
|
| 46 |
-
```
|
| 47 |
-
|
| 48 |
-
On Perlmutter, run GPU work on compute nodes (`salloc -C gpu -q
|
| 49 |
-
shared_interactive ...`) with `UV_CACHE_DIR=$SCRATCH/.cache/uv`.
|
| 50 |
-
|
| 51 |
-
Report what changed, what was run and what was not, and any change to
|
| 52 |
-
results.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
MIT License
|
| 2 |
+
|
| 3 |
+
Copyright (c) 2025 LBL ATLAS
|
| 4 |
+
|
| 5 |
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
| 6 |
+
of this software and associated documentation files (the "Software"), to deal
|
| 7 |
+
in the Software without restriction, including without limitation the rights
|
| 8 |
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
| 9 |
+
copies of the Software, and to permit persons to whom the Software is
|
| 10 |
+
furnished to do so, subject to the following conditions:
|
| 11 |
+
|
| 12 |
+
The above copyright notice and this permission notice shall be included in all
|
| 13 |
+
copies or substantial portions of the Software.
|
| 14 |
+
|
| 15 |
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
| 16 |
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
| 17 |
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
| 18 |
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
| 19 |
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
| 20 |
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
| 21 |
+
SOFTWARE.
|
Pretrained_GNN/multiclass_pretrained_model_12/config.yaml
DELETED
|
@@ -1,319 +0,0 @@
|
|
| 1 |
-
Datasets:
|
| 2 |
-
SingleT_schan:
|
| 3 |
-
args:
|
| 4 |
-
buffer_size: 11
|
| 5 |
-
chunks: 100
|
| 6 |
-
file_names: SingleT_schan.root
|
| 7 |
-
fold_var: Number
|
| 8 |
-
label: 8
|
| 9 |
-
name: SingleT_schan
|
| 10 |
-
node_branch_names: &id001
|
| 11 |
-
- - jet_pt
|
| 12 |
-
- ele_pt
|
| 13 |
-
- mu_pt
|
| 14 |
-
- ph_pt
|
| 15 |
-
- MET_met
|
| 16 |
-
- - jet_eta
|
| 17 |
-
- ele_eta
|
| 18 |
-
- mu_eta
|
| 19 |
-
- ph_eta
|
| 20 |
-
- 0
|
| 21 |
-
- - jet_phi
|
| 22 |
-
- ele_phi
|
| 23 |
-
- mu_phi
|
| 24 |
-
- ph_phi
|
| 25 |
-
- MET_phi
|
| 26 |
-
- CALC_E
|
| 27 |
-
- - jet_btag
|
| 28 |
-
- 0
|
| 29 |
-
- 0
|
| 30 |
-
- 0
|
| 31 |
-
- 0
|
| 32 |
-
- - 0
|
| 33 |
-
- ele_charge
|
| 34 |
-
- mu_charge
|
| 35 |
-
- 0
|
| 36 |
-
- 0
|
| 37 |
-
- NODE_TYPE
|
| 38 |
-
node_branch_types: &id002
|
| 39 |
-
- vector
|
| 40 |
-
- vector
|
| 41 |
-
- vector
|
| 42 |
-
- vector
|
| 43 |
-
- single
|
| 44 |
-
node_feature_scales: &id003
|
| 45 |
-
- 1e-1
|
| 46 |
-
- 1
|
| 47 |
-
- 1
|
| 48 |
-
- 1e-1
|
| 49 |
-
- 1
|
| 50 |
-
- 1
|
| 51 |
-
- 1
|
| 52 |
-
raw_dir: /global/cfs/projectdirs/atlas/joshua/root_gnn/root_gnn_dgl/data/ntuples/Hyy_pretraining/
|
| 53 |
-
save_dir: /pscratch/sd/j/joshuaho/root_gnn/root_gnn_dgl/data/processed_pretraining_multiclass_12_process/
|
| 54 |
-
tree_name: output
|
| 55 |
-
weight_var: weight
|
| 56 |
-
class: LazyDataset
|
| 57 |
-
folding: &id004
|
| 58 |
-
n_folds: 10
|
| 59 |
-
test:
|
| 60 |
-
- 0
|
| 61 |
-
- 1
|
| 62 |
-
train:
|
| 63 |
-
- 2
|
| 64 |
-
- 3
|
| 65 |
-
- 4
|
| 66 |
-
- 5
|
| 67 |
-
- 6
|
| 68 |
-
- 7
|
| 69 |
-
- 8
|
| 70 |
-
- 9
|
| 71 |
-
module: root_gnn_base.dataset
|
| 72 |
-
padding_mode: NONE
|
| 73 |
-
shuffle_chunks: 10
|
| 74 |
-
VBF:
|
| 75 |
-
args:
|
| 76 |
-
buffer_size: 11
|
| 77 |
-
chunks: 100
|
| 78 |
-
file_names: VBF_NLO_inc.root
|
| 79 |
-
fold_var: Number
|
| 80 |
-
label: 3
|
| 81 |
-
name: VBF
|
| 82 |
-
node_branch_names: *id001
|
| 83 |
-
node_branch_types: *id002
|
| 84 |
-
node_feature_scales: *id003
|
| 85 |
-
raw_dir: /global/cfs/projectdirs/atlas/joshua/root_gnn/root_gnn_dgl/data/ntuples/Hyy_pretraining/
|
| 86 |
-
save_dir: /pscratch/sd/j/joshuaho/root_gnn/root_gnn_dgl/data/processed_pretraining_multiclass_12_process/
|
| 87 |
-
tree_name: output
|
| 88 |
-
weight_var: weight
|
| 89 |
-
class: LazyDataset
|
| 90 |
-
folding: *id004
|
| 91 |
-
module: root_gnn_base.dataset
|
| 92 |
-
padding_mode: NONE
|
| 93 |
-
shuffle_chunks: 10
|
| 94 |
-
WH:
|
| 95 |
-
args:
|
| 96 |
-
buffer_size: 11
|
| 97 |
-
chunks: 100
|
| 98 |
-
file_names: WH_NLO_inc.root
|
| 99 |
-
fold_var: Number
|
| 100 |
-
label: 4
|
| 101 |
-
name: WH
|
| 102 |
-
node_branch_names: *id001
|
| 103 |
-
node_branch_types: *id002
|
| 104 |
-
node_feature_scales: *id003
|
| 105 |
-
raw_dir: /global/cfs/projectdirs/atlas/joshua/root_gnn/root_gnn_dgl/data/ntuples/Hyy_pretraining/
|
| 106 |
-
save_dir: /pscratch/sd/j/joshuaho/root_gnn/root_gnn_dgl/data/processed_pretraining_multiclass_12_process/
|
| 107 |
-
tree_name: output
|
| 108 |
-
weight_var: weight
|
| 109 |
-
class: LazyDataset
|
| 110 |
-
folding: *id004
|
| 111 |
-
module: root_gnn_base.dataset
|
| 112 |
-
padding_mode: NONE
|
| 113 |
-
shuffle_chunks: 10
|
| 114 |
-
ZH:
|
| 115 |
-
args:
|
| 116 |
-
buffer_size: 11
|
| 117 |
-
chunks: 100
|
| 118 |
-
file_names: ZH_NLO_inc.root
|
| 119 |
-
fold_var: Number
|
| 120 |
-
label: 5
|
| 121 |
-
name: ZH
|
| 122 |
-
node_branch_names: *id001
|
| 123 |
-
node_branch_types: *id002
|
| 124 |
-
node_feature_scales: *id003
|
| 125 |
-
raw_dir: /global/cfs/projectdirs/atlas/joshua/root_gnn/root_gnn_dgl/data/ntuples/Hyy_pretraining/
|
| 126 |
-
save_dir: /pscratch/sd/j/joshuaho/root_gnn/root_gnn_dgl/data/processed_pretraining_multiclass_12_process/
|
| 127 |
-
tree_name: output
|
| 128 |
-
weight_var: weight
|
| 129 |
-
class: LazyDataset
|
| 130 |
-
folding: *id004
|
| 131 |
-
module: root_gnn_base.dataset
|
| 132 |
-
padding_mode: NONE
|
| 133 |
-
shuffle_chunks: 10
|
| 134 |
-
ggF:
|
| 135 |
-
args:
|
| 136 |
-
buffer_size: 11
|
| 137 |
-
chunks: 100
|
| 138 |
-
file_names: ggF_NLO_inc.root
|
| 139 |
-
fold_var: Number
|
| 140 |
-
label: 2
|
| 141 |
-
name: ggF
|
| 142 |
-
node_branch_names: *id001
|
| 143 |
-
node_branch_types: *id002
|
| 144 |
-
node_feature_scales: *id003
|
| 145 |
-
raw_dir: /global/cfs/projectdirs/atlas/joshua/root_gnn/root_gnn_dgl/data/ntuples/Hyy_pretraining/
|
| 146 |
-
save_dir: /pscratch/sd/j/joshuaho/root_gnn/root_gnn_dgl/data/processed_pretraining_multiclass_12_process/
|
| 147 |
-
tree_name: output
|
| 148 |
-
weight_var: weight
|
| 149 |
-
class: LazyDataset
|
| 150 |
-
folding: *id004
|
| 151 |
-
module: root_gnn_base.dataset
|
| 152 |
-
padding_mode: NONE
|
| 153 |
-
shuffle_chunks: 10
|
| 154 |
-
tHjb:
|
| 155 |
-
args:
|
| 156 |
-
buffer_size: 11
|
| 157 |
-
chunks: 100
|
| 158 |
-
file_names: tHjb_NLO_inc.root
|
| 159 |
-
fold_var: Number
|
| 160 |
-
label: 1
|
| 161 |
-
name: tHjb
|
| 162 |
-
node_branch_names: *id001
|
| 163 |
-
node_branch_types: *id002
|
| 164 |
-
node_feature_scales: *id003
|
| 165 |
-
raw_dir: /global/cfs/projectdirs/atlas/joshua/root_gnn/root_gnn_dgl/data/ntuples/Hyy_pretraining/
|
| 166 |
-
save_dir: /pscratch/sd/j/joshuaho/root_gnn/root_gnn_dgl/data/processed_pretraining_multiclass_12_process/
|
| 167 |
-
tree_name: output
|
| 168 |
-
weight_var: weight
|
| 169 |
-
class: LazyDataset
|
| 170 |
-
folding: *id004
|
| 171 |
-
module: root_gnn_base.dataset
|
| 172 |
-
padding_mode: NONE
|
| 173 |
-
shuffle_chunks: 10
|
| 174 |
-
ttH:
|
| 175 |
-
args:
|
| 176 |
-
buffer_size: 11
|
| 177 |
-
chunks: 100
|
| 178 |
-
file_names: ttH_NLO_inc.root
|
| 179 |
-
fold_var: Number
|
| 180 |
-
label: 0
|
| 181 |
-
name: ttH
|
| 182 |
-
node_branch_names: *id001
|
| 183 |
-
node_branch_types: *id002
|
| 184 |
-
node_feature_scales: *id003
|
| 185 |
-
raw_dir: /global/cfs/projectdirs/atlas/joshua/root_gnn/root_gnn_dgl/data/ntuples/Hyy_pretraining/
|
| 186 |
-
save_dir: /pscratch/sd/j/joshuaho/root_gnn/root_gnn_dgl/data/processed_pretraining_multiclass_12_process/
|
| 187 |
-
tree_name: output
|
| 188 |
-
weight_var: weight
|
| 189 |
-
class: LazyDataset
|
| 190 |
-
folding: *id004
|
| 191 |
-
module: root_gnn_base.dataset
|
| 192 |
-
padding_mode: NONE
|
| 193 |
-
shuffle_chunks: 10
|
| 194 |
-
ttW:
|
| 195 |
-
args:
|
| 196 |
-
buffer_size: 11
|
| 197 |
-
chunks: 100
|
| 198 |
-
file_names: ttW.root
|
| 199 |
-
fold_var: Number
|
| 200 |
-
label: 10
|
| 201 |
-
name: ttW
|
| 202 |
-
node_branch_names: *id001
|
| 203 |
-
node_branch_types: *id002
|
| 204 |
-
node_feature_scales: *id003
|
| 205 |
-
raw_dir: /global/cfs/projectdirs/atlas/joshua/root_gnn/root_gnn_dgl/data/ntuples/Hyy_pretraining/
|
| 206 |
-
save_dir: /pscratch/sd/j/joshuaho/root_gnn/root_gnn_dgl/data/processed_pretraining_multiclass_12_process/
|
| 207 |
-
tree_name: output
|
| 208 |
-
weight_var: weight
|
| 209 |
-
class: LazyDataset
|
| 210 |
-
folding: *id004
|
| 211 |
-
module: root_gnn_base.dataset
|
| 212 |
-
padding_mode: NONE
|
| 213 |
-
shuffle_chunks: 10
|
| 214 |
-
ttbar:
|
| 215 |
-
args:
|
| 216 |
-
buffer_size: 11
|
| 217 |
-
chunks: 100
|
| 218 |
-
file_names: ttbar.root
|
| 219 |
-
fold_var: Number
|
| 220 |
-
label: 9
|
| 221 |
-
name: ttbar
|
| 222 |
-
node_branch_names: *id001
|
| 223 |
-
node_branch_types: *id002
|
| 224 |
-
node_feature_scales: *id003
|
| 225 |
-
raw_dir: /global/cfs/projectdirs/atlas/joshua/root_gnn/root_gnn_dgl/data/ntuples/Hyy_pretraining/
|
| 226 |
-
save_dir: /pscratch/sd/j/joshuaho/root_gnn/root_gnn_dgl/data/processed_pretraining_multiclass_12_process/
|
| 227 |
-
tree_name: output
|
| 228 |
-
weight_var: weight
|
| 229 |
-
class: LazyDataset
|
| 230 |
-
folding: *id004
|
| 231 |
-
module: root_gnn_base.dataset
|
| 232 |
-
padding_mode: NONE
|
| 233 |
-
shuffle_chunks: 10
|
| 234 |
-
ttt:
|
| 235 |
-
args:
|
| 236 |
-
buffer_size: 11
|
| 237 |
-
chunks: 100
|
| 238 |
-
file_names: ttt.root
|
| 239 |
-
fold_var: Number
|
| 240 |
-
label: 11
|
| 241 |
-
name: ttt
|
| 242 |
-
node_branch_names: *id001
|
| 243 |
-
node_branch_types: *id002
|
| 244 |
-
node_feature_scales: *id003
|
| 245 |
-
raw_dir: /global/cfs/projectdirs/atlas/joshua/root_gnn/root_gnn_dgl/data/ntuples/Hyy_pretraining/
|
| 246 |
-
save_dir: /pscratch/sd/j/joshuaho/root_gnn/root_gnn_dgl/data/processed_pretraining_multiclass_12_process/
|
| 247 |
-
tree_name: output
|
| 248 |
-
weight_var: weight
|
| 249 |
-
class: LazyDataset
|
| 250 |
-
folding: *id004
|
| 251 |
-
module: root_gnn_base.dataset
|
| 252 |
-
padding_mode: NONE
|
| 253 |
-
shuffle_chunks: 10
|
| 254 |
-
tttt:
|
| 255 |
-
args:
|
| 256 |
-
buffer_size: 11
|
| 257 |
-
chunks: 100
|
| 258 |
-
file_names: tttt.root
|
| 259 |
-
fold_var: Number
|
| 260 |
-
label: 7
|
| 261 |
-
name: tttt
|
| 262 |
-
node_branch_names: *id001
|
| 263 |
-
node_branch_types: *id002
|
| 264 |
-
node_feature_scales: *id003
|
| 265 |
-
raw_dir: /global/cfs/projectdirs/atlas/joshua/root_gnn/root_gnn_dgl/data/ntuples/Hyy_pretraining/
|
| 266 |
-
save_dir: /pscratch/sd/j/joshuaho/root_gnn/root_gnn_dgl/data/processed_pretraining_multiclass_12_process/
|
| 267 |
-
tree_name: output
|
| 268 |
-
weight_var: weight
|
| 269 |
-
class: LazyDataset
|
| 270 |
-
folding: *id004
|
| 271 |
-
module: root_gnn_base.dataset
|
| 272 |
-
padding_mode: NONE
|
| 273 |
-
shuffle_chunks: 10
|
| 274 |
-
ttyy:
|
| 275 |
-
args:
|
| 276 |
-
buffer_size: 11
|
| 277 |
-
chunks: 100
|
| 278 |
-
file_names: ttyy.root
|
| 279 |
-
fold_var: Number
|
| 280 |
-
label: 6
|
| 281 |
-
name: ttyy_ch
|
| 282 |
-
node_branch_names: *id001
|
| 283 |
-
node_branch_types: *id002
|
| 284 |
-
node_feature_scales: *id003
|
| 285 |
-
raw_dir: /global/cfs/projectdirs/atlas/joshua/root_gnn/root_gnn_dgl/data/ntuples/Hyy_pretraining/
|
| 286 |
-
save_dir: /pscratch/sd/j/joshuaho/root_gnn/root_gnn_dgl/data/processed_pretraining_multiclass_12_process/
|
| 287 |
-
tree_name: output
|
| 288 |
-
weight_var: weight
|
| 289 |
-
class: LazyDataset
|
| 290 |
-
folding: *id004
|
| 291 |
-
module: root_gnn_base.dataset
|
| 292 |
-
padding_mode: NONE
|
| 293 |
-
shuffle_chunks: 10
|
| 294 |
-
Loss:
|
| 295 |
-
args: {}
|
| 296 |
-
class: CrossEntropyLoss
|
| 297 |
-
finish:
|
| 298 |
-
args:
|
| 299 |
-
dim: 1
|
| 300 |
-
class: Softmax
|
| 301 |
-
module: torch.nn
|
| 302 |
-
module: torch.nn
|
| 303 |
-
Model:
|
| 304 |
-
args:
|
| 305 |
-
dropout: 0
|
| 306 |
-
hid_size: 64
|
| 307 |
-
in_size: 7
|
| 308 |
-
n_layers: 4
|
| 309 |
-
n_proc_steps: 4
|
| 310 |
-
out_size: 12
|
| 311 |
-
class: Edge_Network
|
| 312 |
-
module: models.GCN
|
| 313 |
-
Training:
|
| 314 |
-
batch_size: 1024
|
| 315 |
-
epochs: 100
|
| 316 |
-
gamma: 0.99
|
| 317 |
-
learning_rate: 0.0001
|
| 318 |
-
Training_Directory: trainings/pretraining_multiclass/multiclass_12_process/
|
| 319 |
-
Training_Name: multiclass_12_process
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Pretrained_GNN/multiclass_pretrained_model_12/model_epoch_71.pt
DELETED
|
@@ -1,3 +0,0 @@
|
|
| 1 |
-
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:f382f9f8b2d8c09b896657d397985f9149f018fcf3aa6d6f56ce3e51cf8a6351
|
| 3 |
-
size 1707502
|
|
|
|
|
|
|
|
|
|
|
|
Pretrained_GNN/multiclass_pretrained_model_12/training.log
DELETED
|
@@ -1,74 +0,0 @@
|
|
| 1 |
-
Training multiclass_12_process 2024-09-06 23:50:52.835697
|
| 2 |
-
Epoch 00000 | LR 1.0000e-04 | Loss 1.6853 | Accuracy 0.3672 | Test_Loss 1.6844 | Test_AUC 0.8323 | Time 2406.1502 s
|
| 3 |
-
Epoch 00001 | LR 9.9000e-05 | Loss 1.6216 | Accuracy 0.3743 | Test_Loss 1.6660 | Test_AUC 0.8344 | Time 2406.9453 s
|
| 4 |
-
Epoch 00002 | LR 9.8010e-05 | Loss 1.6066 | Accuracy 0.3769 | Test_Loss 1.6656 | Test_AUC 0.8389 | Time 2355.3162 s
|
| 5 |
-
Epoch 00003 | LR 9.7030e-05 | Loss 1.5989 | Accuracy 0.3752 | Test_Loss 1.6700 | Test_AUC 0.8379 | Time 2351.9926 s
|
| 6 |
-
Epoch 00004 | LR 9.6060e-05 | Loss 1.5936 | Accuracy 0.3809 | Test_Loss 1.6568 | Test_AUC 0.8435 | Time 2323.1655 s
|
| 7 |
-
Epoch 00005 | LR 9.5099e-05 | Loss 1.5898 | Accuracy 0.3784 | Test_Loss 1.6613 | Test_AUC 0.8405 | Time 2293.3972 s
|
| 8 |
-
Epoch 00006 | LR 9.4148e-05 | Loss 1.5869 | Accuracy 0.3832 | Test_Loss 1.6416 | Test_AUC 0.8416 | Time 2297.7492 s
|
| 9 |
-
Epoch 00007 | LR 9.3207e-05 | Loss 1.5844 | Accuracy 0.3917 | Test_Loss 1.6090 | Test_AUC 0.8455 | Time 2296.5126 s
|
| 10 |
-
Epoch 00008 | LR 9.2274e-05 | Loss 1.5822 | Accuracy 0.3895 | Test_Loss 1.6174 | Test_AUC 0.8429 | Time 2372.6853 s
|
| 11 |
-
Epoch 00009 | LR 9.1352e-05 | Loss 1.5810 | Accuracy 0.3965 | Test_Loss 1.6079 | Test_AUC 0.8453 | Time 2455.0305 s
|
| 12 |
-
Epoch 00010 | LR 9.0438e-05 | Loss 1.5795 | Accuracy 0.3966 | Test_Loss 1.6067 | Test_AUC 0.8468 | Time 2459.9180 s
|
| 13 |
-
Epoch 00011 | LR 8.9534e-05 | Loss 1.5782 | Accuracy 0.3943 | Test_Loss 1.6117 | Test_AUC 0.8465 | Time 2444.6930 s
|
| 14 |
-
Epoch 00012 | LR 8.8638e-05 | Loss 1.5770 | Accuracy 0.3973 | Test_Loss 1.6081 | Test_AUC 0.8471 | Time 2475.8966 s
|
| 15 |
-
Epoch 00013 | LR 8.7752e-05 | Loss 1.5759 | Accuracy 0.3973 | Test_Loss 1.6037 | Test_AUC 0.8486 | Time 2330.9825 s
|
| 16 |
-
Epoch 00014 | LR 8.6875e-05 | Loss 1.5749 | Accuracy 0.3974 | Test_Loss 1.6066 | Test_AUC 0.8491 | Time 2276.6652 s
|
| 17 |
-
Epoch 00015 | LR 8.6006e-05 | Loss 1.5741 | Accuracy 0.3981 | Test_Loss 1.6070 | Test_AUC 0.8475 | Time 2278.0207 s
|
| 18 |
-
Epoch 00016 | LR 8.5146e-05 | Loss 1.5733 | Accuracy 0.3958 | Test_Loss 1.6089 | Test_AUC 0.8471 | Time 2296.7680 s
|
| 19 |
-
Epoch 00017 | LR 8.4294e-05 | Loss 1.5726 | Accuracy 0.3978 | Test_Loss 1.6004 | Test_AUC 0.8491 | Time 2273.7842 s
|
| 20 |
-
Epoch 00018 | LR 8.3451e-05 | Loss 1.5718 | Accuracy 0.3847 | Test_Loss 1.6652 | Test_AUC 0.8448 | Time 2265.8179 s
|
| 21 |
-
Epoch 00019 | LR 8.2617e-05 | Loss 1.5713 | Accuracy 0.3858 | Test_Loss 1.6495 | Test_AUC 0.8434 | Time 2271.3266 s
|
| 22 |
-
Epoch 00020 | LR 8.1791e-05 | Loss 1.5708 | Accuracy 0.3842 | Test_Loss 1.6602 | Test_AUC 0.8431 | Time 2263.7548 s
|
| 23 |
-
Epoch 00021 | LR 8.0973e-05 | Loss 1.5703 | Accuracy 0.3829 | Test_Loss 1.6628 | Test_AUC 0.8439 | Time 2277.5963 s
|
| 24 |
-
Epoch 00022 | LR 8.0163e-05 | Loss 1.5699 | Accuracy 0.3873 | Test_Loss 1.6452 | Test_AUC 0.8436 | Time 2381.2508 s
|
| 25 |
-
Epoch 00023 | LR 7.9361e-05 | Loss 1.5694 | Accuracy 0.3841 | Test_Loss 1.6477 | Test_AUC 0.8446 | Time 2371.5616 s
|
| 26 |
-
Epoch 00024 | LR 7.8568e-05 | Loss 1.5690 | Accuracy 0.3917 | Test_Loss 1.6253 | Test_AUC 0.8448 | Time 2412.1963 s
|
| 27 |
-
Epoch 00025 | LR 7.7782e-05 | Loss 1.5685 | Accuracy 0.3997 | Test_Loss 1.5952 | Test_AUC 0.8483 | Time 2361.6398 s
|
| 28 |
-
Epoch 00026 | LR 7.7004e-05 | Loss 1.5680 | Accuracy 0.3975 | Test_Loss 1.6004 | Test_AUC 0.8491 | Time 2370.2956 s
|
| 29 |
-
Epoch 00027 | LR 7.6234e-05 | Loss 1.5679 | Accuracy 0.4008 | Test_Loss 1.6004 | Test_AUC 0.8496 | Time 2401.6121 s
|
| 30 |
-
Epoch 00028 | LR 7.5472e-05 | Loss 1.5678 | Accuracy 0.3993 | Test_Loss 1.6004 | Test_AUC 0.8492 | Time 2403.7899 s
|
| 31 |
-
Epoch 00029 | LR 7.4717e-05 | Loss 1.5676 | Accuracy 0.3993 | Test_Loss 1.5997 | Test_AUC 0.8497 | Time 2407.6645 s
|
| 32 |
-
Epoch 00030 | LR 7.3970e-05 | Loss 1.5672 | Accuracy 0.4022 | Test_Loss 1.5928 | Test_AUC 0.8498 | Time 2401.9651 s
|
| 33 |
-
Epoch 00031 | LR 7.3230e-05 | Loss 1.5669 | Accuracy 0.3991 | Test_Loss 1.6006 | Test_AUC 0.8475 | Time 2397.6024 s
|
| 34 |
-
Epoch 00032 | LR 7.2498e-05 | Loss 1.5667 | Accuracy 0.4011 | Test_Loss 1.5956 | Test_AUC 0.8483 | Time 2404.3273 s
|
| 35 |
-
Epoch 00033 | LR 7.1773e-05 | Loss 1.5664 | Accuracy 0.3999 | Test_Loss 1.5982 | Test_AUC 0.8468 | Time 2397.5160 s
|
| 36 |
-
Epoch 00034 | LR 7.1055e-05 | Loss 1.5662 | Accuracy 0.4012 | Test_Loss 1.5956 | Test_AUC 0.8491 | Time 2396.6267 s
|
| 37 |
-
Epoch 00035 | LR 7.0345e-05 | Loss 1.5659 | Accuracy 0.4003 | Test_Loss 1.5962 | Test_AUC 0.8473 | Time 2393.2753 s
|
| 38 |
-
Training multiclass_12_process 2024-09-08 07:29:43.909566
|
| 39 |
-
Epoch 00036 | LR 7.0345e-05 | Loss 1.5654 | Accuracy 0.3859 | Test_Loss 1.6487 | Test_AUC 0.8440 | Time 2350.2070 s
|
| 40 |
-
Epoch 00037 | LR 6.9641e-05 | Loss 1.5654 | Accuracy 0.3855 | Test_Loss 1.6569 | Test_AUC 0.8450 | Time 2376.8111 s
|
| 41 |
-
Epoch 00038 | LR 6.8945e-05 | Loss 1.5652 | Accuracy 0.3876 | Test_Loss 1.6477 | Test_AUC 0.8444 | Time 2388.1118 s
|
| 42 |
-
Epoch 00039 | LR 6.8255e-05 | Loss 1.5650 | Accuracy 0.3856 | Test_Loss 1.6473 | Test_AUC 0.8441 | Time 2367.7247 s
|
| 43 |
-
Epoch 00040 | LR 6.7573e-05 | Loss 1.5648 | Accuracy 0.3893 | Test_Loss 1.6384 | Test_AUC 0.8448 | Time 2354.1136 s
|
| 44 |
-
Epoch 00041 | LR 6.6897e-05 | Loss 1.5646 | Accuracy 0.3861 | Test_Loss 1.6461 | Test_AUC 0.8458 | Time 2340.8834 s
|
| 45 |
-
Epoch 00042 | LR 6.6228e-05 | Loss 1.5644 | Accuracy 0.3932 | Test_Loss 1.6217 | Test_AUC 0.8482 | Time 2349.6574 s
|
| 46 |
-
Epoch 00043 | LR 6.5566e-05 | Loss 1.5641 | Accuracy 0.4010 | Test_Loss 1.5895 | Test_AUC 0.8484 | Time 2360.5786 s
|
| 47 |
-
Epoch 00044 | LR 6.4910e-05 | Loss 1.5638 | Accuracy 0.4019 | Test_Loss 1.5900 | Test_AUC 0.8483 | Time 2468.9202 s
|
| 48 |
-
Epoch 00045 | LR 6.4261e-05 | Loss 1.5640 | Accuracy 0.4008 | Test_Loss 1.5990 | Test_AUC 0.8481 | Time 2473.0072 s
|
| 49 |
-
Epoch 00046 | LR 6.3619e-05 | Loss 1.5639 | Accuracy 0.4011 | Test_Loss 1.5962 | Test_AUC 0.8498 | Time 2448.4408 s
|
| 50 |
-
Epoch 00047 | LR 6.2982e-05 | Loss 1.5638 | Accuracy 0.4017 | Test_Loss 1.5946 | Test_AUC 0.8485 | Time 2381.1478 s
|
| 51 |
-
Epoch 00048 | LR 6.2353e-05 | Loss 1.5636 | Accuracy 0.4011 | Test_Loss 1.5942 | Test_AUC 0.8480 | Time 2393.2382 s
|
| 52 |
-
Epoch 00049 | LR 6.1729e-05 | Loss 1.5635 | Accuracy 0.4022 | Test_Loss 1.5950 | Test_AUC 0.8482 | Time 2350.8688 s
|
| 53 |
-
Epoch 00050 | LR 6.1112e-05 | Loss 1.5634 | Accuracy 0.4007 | Test_Loss 1.5968 | Test_AUC 0.8500 | Time 2334.9762 s
|
| 54 |
-
Epoch 00051 | LR 6.0501e-05 | Loss 1.5632 | Accuracy 0.4026 | Test_Loss 1.5919 | Test_AUC 0.8487 | Time 2269.9354 s
|
| 55 |
-
Epoch 00052 | LR 5.9896e-05 | Loss 1.5631 | Accuracy 0.4018 | Test_Loss 1.5961 | Test_AUC 0.8493 | Time 2303.6344 s
|
| 56 |
-
Epoch 00053 | LR 5.9297e-05 | Loss 1.5630 | Accuracy 0.4022 | Test_Loss 1.5928 | Test_AUC 0.8501 | Time 2275.7180 s
|
| 57 |
-
Epoch 00054 | LR 5.8704e-05 | Loss 1.5626 | Accuracy 0.3868 | Test_Loss 1.6539 | Test_AUC 0.8439 | Time 2282.3519 s
|
| 58 |
-
Epoch 00055 | LR 5.8117e-05 | Loss 1.5626 | Accuracy 0.3848 | Test_Loss 1.6525 | Test_AUC 0.8449 | Time 2338.0367 s
|
| 59 |
-
Epoch 00056 | LR 5.7535e-05 | Loss 1.5625 | Accuracy 0.3861 | Test_Loss 1.6500 | Test_AUC 0.8444 | Time 2349.1735 s
|
| 60 |
-
Epoch 00057 | LR 5.6960e-05 | Loss 1.5624 | Accuracy 0.3883 | Test_Loss 1.6474 | Test_AUC 0.8438 | Time 2352.2581 s
|
| 61 |
-
Epoch 00058 | LR 5.6391e-05 | Loss 1.5623 | Accuracy 0.3869 | Test_Loss 1.6484 | Test_AUC 0.8453 | Time 2300.8949 s
|
| 62 |
-
Epoch 00059 | LR 5.5827e-05 | Loss 1.5621 | Accuracy 0.3885 | Test_Loss 1.6456 | Test_AUC 0.8452 | Time 2296.1956 s
|
| 63 |
-
Epoch 00060 | LR 5.5268e-05 | Loss 1.5620 | Accuracy 0.3891 | Test_Loss 1.6347 | Test_AUC 0.8457 | Time 2311.4265 s
|
| 64 |
-
Epoch 00061 | LR 5.4716e-05 | Loss 1.5618 | Accuracy 0.4018 | Test_Loss 1.5879 | Test_AUC 0.8495 | Time 2307.2661 s
|
| 65 |
-
Epoch 00062 | LR 5.4169e-05 | Loss 1.5615 | Accuracy 0.4029 | Test_Loss 1.5857 | Test_AUC 0.8507 | Time 2356.9390 s
|
| 66 |
-
Epoch 00063 | LR 5.3627e-05 | Loss 1.5617 | Accuracy 0.4008 | Test_Loss 1.5969 | Test_AUC 0.8497 | Time 2315.4540 s
|
| 67 |
-
Epoch 00064 | LR 5.3091e-05 | Loss 1.5618 | Accuracy 0.4014 | Test_Loss 1.5944 | Test_AUC 0.8490 | Time 2322.3426 s
|
| 68 |
-
Epoch 00065 | LR 5.2560e-05 | Loss 1.5618 | Accuracy 0.4013 | Test_Loss 1.5960 | Test_AUC 0.8498 | Time 2337.3654 s
|
| 69 |
-
Epoch 00066 | LR 5.2034e-05 | Loss 1.5616 | Accuracy 0.4038 | Test_Loss 1.5905 | Test_AUC 0.8505 | Time 2354.6974 s
|
| 70 |
-
Epoch 00067 | LR 5.1514e-05 | Loss 1.5615 | Accuracy 0.4028 | Test_Loss 1.5932 | Test_AUC 0.8491 | Time 2346.2346 s
|
| 71 |
-
Epoch 00068 | LR 5.0999e-05 | Loss 1.5615 | Accuracy 0.4026 | Test_Loss 1.5919 | Test_AUC 0.8492 | Time 2364.3581 s
|
| 72 |
-
Epoch 00069 | LR 5.0489e-05 | Loss 1.5614 | Accuracy 0.4014 | Test_Loss 1.5947 | Test_AUC 0.8485 | Time 2321.0254 s
|
| 73 |
-
Epoch 00070 | LR 4.9984e-05 | Loss 1.5613 | Accuracy 0.4018 | Test_Loss 1.5942 | Test_AUC 0.8504 | Time 2360.4706 s
|
| 74 |
-
Epoch 00071 | LR 4.9484e-05 | Loss 1.5612 | Accuracy 0.4016 | Test_Loss 1.5946 | Test_AUC 0.8487 | Time 2348.2632 s
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Pretrained_GNN/multilabel_pretrained_model_41/config.yaml
DELETED
|
@@ -1,569 +0,0 @@
|
|
| 1 |
-
Datasets:
|
| 2 |
-
SingleT_schan:
|
| 3 |
-
args:
|
| 4 |
-
buffer_size: 11
|
| 5 |
-
chunks: 100
|
| 6 |
-
file_names: SingleT_schan_multilabel.root
|
| 7 |
-
fold_var: Number
|
| 8 |
-
label: &id001
|
| 9 |
-
- n_higgs
|
| 10 |
-
- n_top
|
| 11 |
-
- n_V
|
| 12 |
-
- n_W
|
| 13 |
-
- n_Z
|
| 14 |
-
- higgs_exists
|
| 15 |
-
- higgs_pt_low
|
| 16 |
-
- higgs_pt_med
|
| 17 |
-
- higgs_pt_high
|
| 18 |
-
- higgs_eta_0
|
| 19 |
-
- higgs_eta_1
|
| 20 |
-
- higgs_eta_2
|
| 21 |
-
- higgs_eta_3
|
| 22 |
-
- higgs_phi_0
|
| 23 |
-
- higgs_phi_1
|
| 24 |
-
- higgs_phi_2
|
| 25 |
-
- higgs_phi_3
|
| 26 |
-
- top0_exists
|
| 27 |
-
- top0_pt_low
|
| 28 |
-
- top0_pt_med
|
| 29 |
-
- top0_pt_high
|
| 30 |
-
- top0_eta_0
|
| 31 |
-
- top0_eta_1
|
| 32 |
-
- top0_eta_2
|
| 33 |
-
- top0_eta_3
|
| 34 |
-
- top0_phi_0
|
| 35 |
-
- top0_phi_1
|
| 36 |
-
- top0_phi_2
|
| 37 |
-
- top0_phi_3
|
| 38 |
-
- top1_exists
|
| 39 |
-
- top1_pt_low
|
| 40 |
-
- top1_pt_med
|
| 41 |
-
- top1_pt_high
|
| 42 |
-
- top1_eta_0
|
| 43 |
-
- top1_eta_1
|
| 44 |
-
- top1_eta_2
|
| 45 |
-
- top1_eta_3
|
| 46 |
-
- top1_phi_0
|
| 47 |
-
- top1_phi_1
|
| 48 |
-
- top1_phi_2
|
| 49 |
-
- top1_phi_3
|
| 50 |
-
name: SingleT_schan
|
| 51 |
-
node_branch_names: &id002
|
| 52 |
-
- - jet_pt
|
| 53 |
-
- ele_pt
|
| 54 |
-
- mu_pt
|
| 55 |
-
- ph_pt
|
| 56 |
-
- MET_met
|
| 57 |
-
- - jet_eta
|
| 58 |
-
- ele_eta
|
| 59 |
-
- mu_eta
|
| 60 |
-
- ph_eta
|
| 61 |
-
- 0
|
| 62 |
-
- - jet_phi
|
| 63 |
-
- ele_phi
|
| 64 |
-
- mu_phi
|
| 65 |
-
- ph_phi
|
| 66 |
-
- MET_phi
|
| 67 |
-
- CALC_E
|
| 68 |
-
- - jet_btag
|
| 69 |
-
- 0
|
| 70 |
-
- 0
|
| 71 |
-
- 0
|
| 72 |
-
- 0
|
| 73 |
-
- - 0
|
| 74 |
-
- ele_charge
|
| 75 |
-
- mu_charge
|
| 76 |
-
- 0
|
| 77 |
-
- 0
|
| 78 |
-
- NODE_TYPE
|
| 79 |
-
node_branch_types: &id003
|
| 80 |
-
- vector
|
| 81 |
-
- vector
|
| 82 |
-
- vector
|
| 83 |
-
- vector
|
| 84 |
-
- single
|
| 85 |
-
node_feature_scales: &id004
|
| 86 |
-
- 1e-1
|
| 87 |
-
- 1
|
| 88 |
-
- 1
|
| 89 |
-
- 1e-1
|
| 90 |
-
- 1
|
| 91 |
-
- 1
|
| 92 |
-
- 1
|
| 93 |
-
raw_dir: /global/cfs/projectdirs/atlas/joshua/root_gnn/root_gnn_dgl/data/ntuples/Hyy_pretraining/multilabel/
|
| 94 |
-
save_dir: /pscratch/sd/j/joshuaho/root_gnn/root_gnn_dgl/data/processed_diverse_multilabel/
|
| 95 |
-
tree_name: output
|
| 96 |
-
weight_var: weight
|
| 97 |
-
class: LazyMultiLabelDataset
|
| 98 |
-
folding: &id005
|
| 99 |
-
n_folds: 10
|
| 100 |
-
test:
|
| 101 |
-
- 0
|
| 102 |
-
- 1
|
| 103 |
-
train:
|
| 104 |
-
- 2
|
| 105 |
-
- 3
|
| 106 |
-
- 4
|
| 107 |
-
- 5
|
| 108 |
-
- 6
|
| 109 |
-
- 7
|
| 110 |
-
- 8
|
| 111 |
-
- 9
|
| 112 |
-
module: root_gnn_base.dataset
|
| 113 |
-
padding_mode: NONE
|
| 114 |
-
shuffle_chunks: 10
|
| 115 |
-
VBF:
|
| 116 |
-
args:
|
| 117 |
-
buffer_size: 11
|
| 118 |
-
chunks: 100
|
| 119 |
-
file_names: VBF_NLO_inc_multilabel.root
|
| 120 |
-
fold_var: Number
|
| 121 |
-
label: *id001
|
| 122 |
-
name: VBF
|
| 123 |
-
node_branch_names: *id002
|
| 124 |
-
node_branch_types: *id003
|
| 125 |
-
node_feature_scales: *id004
|
| 126 |
-
raw_dir: /global/cfs/projectdirs/atlas/joshua/root_gnn/root_gnn_dgl/data/ntuples/Hyy_pretraining/multilabel/
|
| 127 |
-
save_dir: /pscratch/sd/j/joshuaho/root_gnn/root_gnn_dgl/data/processed_diverse_multilabel/
|
| 128 |
-
tree_name: output
|
| 129 |
-
weight_var: weight
|
| 130 |
-
class: LazyMultiLabelDataset
|
| 131 |
-
folding: *id005
|
| 132 |
-
module: root_gnn_base.dataset
|
| 133 |
-
padding_mode: NONE
|
| 134 |
-
shuffle_chunks: 10
|
| 135 |
-
WH:
|
| 136 |
-
args:
|
| 137 |
-
buffer_size: 11
|
| 138 |
-
chunks: 100
|
| 139 |
-
file_names: WH_NLO_inc_multilabel.root
|
| 140 |
-
fold_var: Number
|
| 141 |
-
label: *id001
|
| 142 |
-
name: WH
|
| 143 |
-
node_branch_names: *id002
|
| 144 |
-
node_branch_types: *id003
|
| 145 |
-
node_feature_scales: *id004
|
| 146 |
-
raw_dir: /global/cfs/projectdirs/atlas/joshua/root_gnn/root_gnn_dgl/data/ntuples/Hyy_pretraining/multilabel/
|
| 147 |
-
save_dir: /pscratch/sd/j/joshuaho/root_gnn/root_gnn_dgl/data/processed_diverse_multilabel/
|
| 148 |
-
tree_name: output
|
| 149 |
-
weight_var: weight
|
| 150 |
-
class: LazyMultiLabelDataset
|
| 151 |
-
folding: *id005
|
| 152 |
-
module: root_gnn_base.dataset
|
| 153 |
-
padding_mode: NONE
|
| 154 |
-
shuffle_chunks: 10
|
| 155 |
-
ZH:
|
| 156 |
-
args:
|
| 157 |
-
buffer_size: 11
|
| 158 |
-
chunks: 100
|
| 159 |
-
file_names: ZH_NLO_inc_multilabel.root
|
| 160 |
-
fold_var: Number
|
| 161 |
-
label: *id001
|
| 162 |
-
name: ZH
|
| 163 |
-
node_branch_names: *id002
|
| 164 |
-
node_branch_types: *id003
|
| 165 |
-
node_feature_scales: *id004
|
| 166 |
-
raw_dir: /global/cfs/projectdirs/atlas/joshua/root_gnn/root_gnn_dgl/data/ntuples/Hyy_pretraining/multilabel/
|
| 167 |
-
save_dir: /pscratch/sd/j/joshuaho/root_gnn/root_gnn_dgl/data/processed_diverse_multilabel/
|
| 168 |
-
tree_name: output
|
| 169 |
-
weight_var: weight
|
| 170 |
-
class: LazyMultiLabelDataset
|
| 171 |
-
folding: *id005
|
| 172 |
-
module: root_gnn_base.dataset
|
| 173 |
-
padding_mode: NONE
|
| 174 |
-
shuffle_chunks: 10
|
| 175 |
-
ggF:
|
| 176 |
-
args:
|
| 177 |
-
buffer_size: 11
|
| 178 |
-
chunks: 100
|
| 179 |
-
file_names: ggF_NLO_inc_multilabel.root
|
| 180 |
-
fold_var: Number
|
| 181 |
-
label: *id001
|
| 182 |
-
name: ggF
|
| 183 |
-
node_branch_names: *id002
|
| 184 |
-
node_branch_types: *id003
|
| 185 |
-
node_feature_scales: *id004
|
| 186 |
-
raw_dir: /global/cfs/projectdirs/atlas/joshua/root_gnn/root_gnn_dgl/data/ntuples/Hyy_pretraining/multilabel/
|
| 187 |
-
save_dir: /pscratch/sd/j/joshuaho/root_gnn/root_gnn_dgl/data/processed_diverse_multilabel/
|
| 188 |
-
tree_name: output
|
| 189 |
-
weight_var: weight
|
| 190 |
-
class: LazyMultiLabelDataset
|
| 191 |
-
folding: *id005
|
| 192 |
-
module: root_gnn_base.dataset
|
| 193 |
-
padding_mode: NONE
|
| 194 |
-
shuffle_chunks: 10
|
| 195 |
-
tHjb:
|
| 196 |
-
args:
|
| 197 |
-
buffer_size: 11
|
| 198 |
-
chunks: 100
|
| 199 |
-
file_names: tHjb_NLO_inc_multilabel.root
|
| 200 |
-
fold_var: Number
|
| 201 |
-
label: *id001
|
| 202 |
-
name: tHjb
|
| 203 |
-
node_branch_names: *id002
|
| 204 |
-
node_branch_types: *id003
|
| 205 |
-
node_feature_scales: *id004
|
| 206 |
-
raw_dir: /global/cfs/projectdirs/atlas/joshua/root_gnn/root_gnn_dgl/data/ntuples/Hyy_pretraining/multilabel/
|
| 207 |
-
save_dir: /pscratch/sd/j/joshuaho/root_gnn/root_gnn_dgl/data/processed_diverse_multilabel/
|
| 208 |
-
tree_name: output
|
| 209 |
-
weight_var: weight
|
| 210 |
-
class: LazyMultiLabelDataset
|
| 211 |
-
folding: *id005
|
| 212 |
-
module: root_gnn_base.dataset
|
| 213 |
-
padding_mode: NONE
|
| 214 |
-
shuffle_chunks: 10
|
| 215 |
-
ttH:
|
| 216 |
-
args:
|
| 217 |
-
buffer_size: 11
|
| 218 |
-
chunks: 100
|
| 219 |
-
file_names: ttH_NLO_inc_multilabel.root
|
| 220 |
-
fold_var: Number
|
| 221 |
-
label: *id001
|
| 222 |
-
name: ttH
|
| 223 |
-
node_branch_names: *id002
|
| 224 |
-
node_branch_types: *id003
|
| 225 |
-
node_feature_scales: *id004
|
| 226 |
-
raw_dir: /global/cfs/projectdirs/atlas/joshua/root_gnn/root_gnn_dgl/data/ntuples/Hyy_pretraining/multilabel/
|
| 227 |
-
save_dir: /pscratch/sd/j/joshuaho/root_gnn/root_gnn_dgl/data/processed_diverse_multilabel/
|
| 228 |
-
tree_name: output
|
| 229 |
-
weight_var: weight
|
| 230 |
-
class: LazyMultiLabelDataset
|
| 231 |
-
folding: *id005
|
| 232 |
-
module: root_gnn_base.dataset
|
| 233 |
-
padding_mode: NONE
|
| 234 |
-
shuffle_chunks: 10
|
| 235 |
-
ttW:
|
| 236 |
-
args:
|
| 237 |
-
buffer_size: 11
|
| 238 |
-
chunks: 100
|
| 239 |
-
file_names: ttW_multilabel.root
|
| 240 |
-
fold_var: Number
|
| 241 |
-
label: *id001
|
| 242 |
-
name: ttW
|
| 243 |
-
node_branch_names: *id002
|
| 244 |
-
node_branch_types: *id003
|
| 245 |
-
node_feature_scales: *id004
|
| 246 |
-
raw_dir: /global/cfs/projectdirs/atlas/joshua/root_gnn/root_gnn_dgl/data/ntuples/Hyy_pretraining/multilabel/
|
| 247 |
-
save_dir: /pscratch/sd/j/joshuaho/root_gnn/root_gnn_dgl/data/processed_diverse_multilabel/
|
| 248 |
-
tree_name: output
|
| 249 |
-
weight_var: weight
|
| 250 |
-
class: LazyMultiLabelDataset
|
| 251 |
-
folding: *id005
|
| 252 |
-
module: root_gnn_base.dataset
|
| 253 |
-
padding_mode: NONE
|
| 254 |
-
shuffle_chunks: 10
|
| 255 |
-
ttbar:
|
| 256 |
-
args:
|
| 257 |
-
buffer_size: 11
|
| 258 |
-
chunks: 100
|
| 259 |
-
file_names: ttbar_multilabel.root
|
| 260 |
-
fold_var: Number
|
| 261 |
-
label: *id001
|
| 262 |
-
name: ttbar
|
| 263 |
-
node_branch_names: *id002
|
| 264 |
-
node_branch_types: *id003
|
| 265 |
-
node_feature_scales: *id004
|
| 266 |
-
raw_dir: /global/cfs/projectdirs/atlas/joshua/root_gnn/root_gnn_dgl/data/ntuples/Hyy_pretraining/multilabel/
|
| 267 |
-
save_dir: /pscratch/sd/j/joshuaho/root_gnn/root_gnn_dgl/data/processed_diverse_multilabel/
|
| 268 |
-
tree_name: output
|
| 269 |
-
weight_var: weight
|
| 270 |
-
class: LazyMultiLabelDataset
|
| 271 |
-
folding: *id005
|
| 272 |
-
module: root_gnn_base.dataset
|
| 273 |
-
padding_mode: NONE
|
| 274 |
-
shuffle_chunks: 10
|
| 275 |
-
ttt:
|
| 276 |
-
args:
|
| 277 |
-
buffer_size: 11
|
| 278 |
-
chunks: 100
|
| 279 |
-
file_names: ttt_multilabel.root
|
| 280 |
-
fold_var: Number
|
| 281 |
-
label: *id001
|
| 282 |
-
name: ttt
|
| 283 |
-
node_branch_names: *id002
|
| 284 |
-
node_branch_types: *id003
|
| 285 |
-
node_feature_scales: *id004
|
| 286 |
-
raw_dir: /global/cfs/projectdirs/atlas/joshua/root_gnn/root_gnn_dgl/data/ntuples/Hyy_pretraining/multilabel/
|
| 287 |
-
save_dir: /pscratch/sd/j/joshuaho/root_gnn/root_gnn_dgl/data/processed_diverse_multilabel/
|
| 288 |
-
tree_name: output
|
| 289 |
-
weight_var: weight
|
| 290 |
-
class: LazyMultiLabelDataset
|
| 291 |
-
folding: *id005
|
| 292 |
-
module: root_gnn_base.dataset
|
| 293 |
-
padding_mode: NONE
|
| 294 |
-
shuffle_chunks: 10
|
| 295 |
-
tttt:
|
| 296 |
-
args:
|
| 297 |
-
buffer_size: 11
|
| 298 |
-
chunks: 100
|
| 299 |
-
file_names: tttt_multilabel.root
|
| 300 |
-
fold_var: Number
|
| 301 |
-
label: *id001
|
| 302 |
-
name: tttt
|
| 303 |
-
node_branch_names: *id002
|
| 304 |
-
node_branch_types: *id003
|
| 305 |
-
node_feature_scales: *id004
|
| 306 |
-
raw_dir: /global/cfs/projectdirs/atlas/joshua/root_gnn/root_gnn_dgl/data/ntuples/Hyy_pretraining/multilabel/
|
| 307 |
-
save_dir: /pscratch/sd/j/joshuaho/root_gnn/root_gnn_dgl/data/processed_diverse_multilabel/
|
| 308 |
-
tree_name: output
|
| 309 |
-
weight_var: weight
|
| 310 |
-
class: LazyMultiLabelDataset
|
| 311 |
-
folding: *id005
|
| 312 |
-
module: root_gnn_base.dataset
|
| 313 |
-
padding_mode: NONE
|
| 314 |
-
shuffle_chunks: 10
|
| 315 |
-
ttyy:
|
| 316 |
-
args:
|
| 317 |
-
buffer_size: 11
|
| 318 |
-
chunks: 100
|
| 319 |
-
file_names: ttyy_multilabel.root
|
| 320 |
-
fold_var: Number
|
| 321 |
-
label: *id001
|
| 322 |
-
name: ttyy
|
| 323 |
-
node_branch_names: *id002
|
| 324 |
-
node_branch_types: *id003
|
| 325 |
-
node_feature_scales: *id004
|
| 326 |
-
raw_dir: /global/cfs/projectdirs/atlas/joshua/root_gnn/root_gnn_dgl/data/ntuples/Hyy_pretraining/multilabel/
|
| 327 |
-
save_dir: /pscratch/sd/j/joshuaho/root_gnn/root_gnn_dgl/data/processed_diverse_multilabel/
|
| 328 |
-
tree_name: output
|
| 329 |
-
weight_var: weight
|
| 330 |
-
class: LazyMultiLabelDataset
|
| 331 |
-
folding: *id005
|
| 332 |
-
module: root_gnn_base.dataset
|
| 333 |
-
padding_mode: NONE
|
| 334 |
-
shuffle_chunks: 10
|
| 335 |
-
Loss:
|
| 336 |
-
args:
|
| 337 |
-
label_names:
|
| 338 |
-
- n_higgs
|
| 339 |
-
- n_top
|
| 340 |
-
- n_V
|
| 341 |
-
- n_W
|
| 342 |
-
- n_Z
|
| 343 |
-
- higgs_exists
|
| 344 |
-
- higgs_pt_low
|
| 345 |
-
- higgs_pt_med
|
| 346 |
-
- higgs_pt_high
|
| 347 |
-
- higgs_eta_0
|
| 348 |
-
- higgs_eta_1
|
| 349 |
-
- higgs_eta_2
|
| 350 |
-
- higgs_eta_3
|
| 351 |
-
- higgs_phi_0
|
| 352 |
-
- higgs_phi_1
|
| 353 |
-
- higgs_phi_2
|
| 354 |
-
- higgs_phi_3
|
| 355 |
-
- top0_exists
|
| 356 |
-
- top0_pt_low
|
| 357 |
-
- top0_pt_med
|
| 358 |
-
- top0_pt_high
|
| 359 |
-
- top0_eta_0
|
| 360 |
-
- top0_eta_1
|
| 361 |
-
- top0_eta_2
|
| 362 |
-
- top0_eta_3
|
| 363 |
-
- top0_phi_0
|
| 364 |
-
- top0_phi_1
|
| 365 |
-
- top0_phi_2
|
| 366 |
-
- top0_phi_3
|
| 367 |
-
- top1_exists
|
| 368 |
-
- top1_pt_low
|
| 369 |
-
- top1_pt_med
|
| 370 |
-
- top1_pt_high
|
| 371 |
-
- top1_eta_0
|
| 372 |
-
- top1_eta_1
|
| 373 |
-
- top1_eta_2
|
| 374 |
-
- top1_eta_3
|
| 375 |
-
- top1_phi_0
|
| 376 |
-
- top1_phi_1
|
| 377 |
-
- top1_phi_2
|
| 378 |
-
- top1_phi_3
|
| 379 |
-
label_types:
|
| 380 |
-
- r
|
| 381 |
-
- r
|
| 382 |
-
- r
|
| 383 |
-
- r
|
| 384 |
-
- r
|
| 385 |
-
- c
|
| 386 |
-
- c
|
| 387 |
-
- c
|
| 388 |
-
- c
|
| 389 |
-
- c
|
| 390 |
-
- c
|
| 391 |
-
- c
|
| 392 |
-
- c
|
| 393 |
-
- c
|
| 394 |
-
- c
|
| 395 |
-
- c
|
| 396 |
-
- c
|
| 397 |
-
- c
|
| 398 |
-
- c
|
| 399 |
-
- c
|
| 400 |
-
- c
|
| 401 |
-
- c
|
| 402 |
-
- c
|
| 403 |
-
- c
|
| 404 |
-
- c
|
| 405 |
-
- c
|
| 406 |
-
- c
|
| 407 |
-
- c
|
| 408 |
-
- c
|
| 409 |
-
- c
|
| 410 |
-
- c
|
| 411 |
-
- c
|
| 412 |
-
- c
|
| 413 |
-
- c
|
| 414 |
-
- c
|
| 415 |
-
- c
|
| 416 |
-
- c
|
| 417 |
-
- c
|
| 418 |
-
- c
|
| 419 |
-
- c
|
| 420 |
-
- c
|
| 421 |
-
label_weights:
|
| 422 |
-
- 1
|
| 423 |
-
- 1
|
| 424 |
-
- 1
|
| 425 |
-
- 1
|
| 426 |
-
- 1
|
| 427 |
-
- 1
|
| 428 |
-
- 1
|
| 429 |
-
- 1
|
| 430 |
-
- 1
|
| 431 |
-
- 1
|
| 432 |
-
- 1
|
| 433 |
-
- 1
|
| 434 |
-
- 1
|
| 435 |
-
- 1
|
| 436 |
-
- 1
|
| 437 |
-
- 1
|
| 438 |
-
- 1
|
| 439 |
-
- 1
|
| 440 |
-
- 1
|
| 441 |
-
- 1
|
| 442 |
-
- 1
|
| 443 |
-
- 1
|
| 444 |
-
- 1
|
| 445 |
-
- 1
|
| 446 |
-
- 1
|
| 447 |
-
- 1
|
| 448 |
-
- 1
|
| 449 |
-
- 1
|
| 450 |
-
- 1
|
| 451 |
-
- 1
|
| 452 |
-
- 1
|
| 453 |
-
- 1
|
| 454 |
-
- 1
|
| 455 |
-
- 1
|
| 456 |
-
- 1
|
| 457 |
-
- 1
|
| 458 |
-
- 1
|
| 459 |
-
- 1
|
| 460 |
-
- 1
|
| 461 |
-
- 1
|
| 462 |
-
- 1
|
| 463 |
-
class: MultiLabelLoss
|
| 464 |
-
finish:
|
| 465 |
-
args:
|
| 466 |
-
label_names:
|
| 467 |
-
- n_higgs
|
| 468 |
-
- n_top
|
| 469 |
-
- n_V
|
| 470 |
-
- n_W
|
| 471 |
-
- n_Z
|
| 472 |
-
- higgs_exists
|
| 473 |
-
- higgs_pt_low
|
| 474 |
-
- higgs_pt_med
|
| 475 |
-
- higgs_pt_high
|
| 476 |
-
- higgs_eta_0
|
| 477 |
-
- higgs_eta_1
|
| 478 |
-
- higgs_eta_2
|
| 479 |
-
- higgs_eta_3
|
| 480 |
-
- higgs_phi_0
|
| 481 |
-
- higgs_phi_1
|
| 482 |
-
- higgs_phi_2
|
| 483 |
-
- higgs_phi_3
|
| 484 |
-
- top0_exists
|
| 485 |
-
- top0_pt_low
|
| 486 |
-
- top0_pt_med
|
| 487 |
-
- top0_pt_high
|
| 488 |
-
- top0_eta_0
|
| 489 |
-
- top0_eta_1
|
| 490 |
-
- top0_eta_2
|
| 491 |
-
- top0_eta_3
|
| 492 |
-
- top0_phi_0
|
| 493 |
-
- top0_phi_1
|
| 494 |
-
- top0_phi_2
|
| 495 |
-
- top0_phi_3
|
| 496 |
-
- top1_exists
|
| 497 |
-
- top1_pt_low
|
| 498 |
-
- top1_pt_med
|
| 499 |
-
- top1_pt_high
|
| 500 |
-
- top1_eta_0
|
| 501 |
-
- top1_eta_1
|
| 502 |
-
- top1_eta_2
|
| 503 |
-
- top1_eta_3
|
| 504 |
-
- top1_phi_0
|
| 505 |
-
- top1_phi_1
|
| 506 |
-
- top1_phi_2
|
| 507 |
-
- top1_phi_3
|
| 508 |
-
label_types:
|
| 509 |
-
- r
|
| 510 |
-
- r
|
| 511 |
-
- r
|
| 512 |
-
- r
|
| 513 |
-
- r
|
| 514 |
-
- c
|
| 515 |
-
- c
|
| 516 |
-
- c
|
| 517 |
-
- c
|
| 518 |
-
- c
|
| 519 |
-
- c
|
| 520 |
-
- c
|
| 521 |
-
- c
|
| 522 |
-
- c
|
| 523 |
-
- c
|
| 524 |
-
- c
|
| 525 |
-
- c
|
| 526 |
-
- c
|
| 527 |
-
- c
|
| 528 |
-
- c
|
| 529 |
-
- c
|
| 530 |
-
- c
|
| 531 |
-
- c
|
| 532 |
-
- c
|
| 533 |
-
- c
|
| 534 |
-
- c
|
| 535 |
-
- c
|
| 536 |
-
- c
|
| 537 |
-
- c
|
| 538 |
-
- c
|
| 539 |
-
- c
|
| 540 |
-
- c
|
| 541 |
-
- c
|
| 542 |
-
- c
|
| 543 |
-
- c
|
| 544 |
-
- c
|
| 545 |
-
- c
|
| 546 |
-
- c
|
| 547 |
-
- c
|
| 548 |
-
- c
|
| 549 |
-
- c
|
| 550 |
-
class: MultiLabelFinish
|
| 551 |
-
module: models.loss
|
| 552 |
-
module: models.loss
|
| 553 |
-
Model:
|
| 554 |
-
args:
|
| 555 |
-
dropout: 0.1
|
| 556 |
-
hid_size: 64
|
| 557 |
-
in_size: 7
|
| 558 |
-
n_layers: 4
|
| 559 |
-
n_proc_steps: 4
|
| 560 |
-
out_size: 41
|
| 561 |
-
class: Edge_Network
|
| 562 |
-
module: models.GCN
|
| 563 |
-
Training:
|
| 564 |
-
batch_size: 1024
|
| 565 |
-
epochs: 100
|
| 566 |
-
gamma: 0.99
|
| 567 |
-
learning_rate: 0.0001
|
| 568 |
-
Training_Directory: trainings/pretraining_multilabel/multilabel_41_higgs_tops_all_kinematics/
|
| 569 |
-
Training_Name: multilabel_41_higgs_tops_all_kinematics
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Pretrained_GNN/multilabel_pretrained_model_41/model_epoch_44.pt
DELETED
|
@@ -1,3 +0,0 @@
|
|
| 1 |
-
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:c3fdf8d12e9c1bece6e22a91b10a6ede5e7ce8103e247b912fbfda580461446b
|
| 3 |
-
size 1730158
|
|
|
|
|
|
|
|
|
|
|
|
Pretrained_GNN/multilabel_pretrained_model_41/training.log
DELETED
|
@@ -1,91 +0,0 @@
|
|
| 1 |
-
Training multilabel_41_higgs_tops_all_kinematics 2024-08-23 19:20:10.496271
|
| 2 |
-
MultiLabel_Accuracy | 0.7455 | 0.5281 | 0.3708 | 0.3795 | 0.9044 | 0.4787 | 0.8561 | 0.6573 | 0.9652 | 0.8321 | 0.9076 | 0.9074 | 0.8316 | 0.8933 | 0.8935 | 0.7987 | 0.8932 | 0.7644 | 0.9852 | 0.5181 | 0.8782 | 0.8829 | 0.8077 | 0.8077 | 0.8832 | 0.8453 | 0.8454 | 0.8456 | 0.8453 | 0.7744 | 0.9731 | 0.5523 | 0.9525 | 0.8843 | 0.8548 | 0.8545 | 0.8843 | 0.8695 | 0.8695 | 0.8696 | 0.8693
|
| 3 |
-
Epoch 00000 | LR 1.0000e-04 | Loss 21.5584 | Accuracy 0.8039 | Test_Loss 29.8678 | Test_AUC 0.0000 | Time 352.4659 s
|
| 4 |
-
MultiLabel_Accuracy | 0.7517 | 0.5461 | 0.4684 | 0.4625 | 0.9044 | 0.7094 | 0.8561 | 0.6573 | 0.9652 | 0.8321 | 0.9076 | 0.9074 | 0.8316 | 0.8933 | 0.8935 | 0.7987 | 0.8932 | 0.8195 | 0.9852 | 0.6451 | 0.8782 | 0.8829 | 0.8077 | 0.8077 | 0.8832 | 0.8453 | 0.8454 | 0.8456 | 0.8453 | 0.8309 | 0.9731 | 0.7521 | 0.9525 | 0.8843 | 0.8548 | 0.8545 | 0.8843 | 0.8695 | 0.8695 | 0.8696 | 0.8693
|
| 5 |
-
Epoch 00001 | LR 9.9000e-05 | Loss 16.0182 | Accuracy 0.8252 | Test_Loss 28.8779 | Test_AUC 0.0000 | Time 303.0560 s
|
| 6 |
-
MultiLabel_Accuracy | 0.7517 | 0.5593 | 0.4727 | 0.4625 | 0.9044 | 0.7153 | 0.8561 | 0.6573 | 0.9652 | 0.8321 | 0.9076 | 0.9074 | 0.8316 | 0.8933 | 0.8935 | 0.7987 | 0.8932 | 0.8259 | 0.9852 | 0.7177 | 0.8782 | 0.8829 | 0.8077 | 0.8077 | 0.8832 | 0.8453 | 0.8454 | 0.8456 | 0.8453 | 0.8330 | 0.9731 | 0.7826 | 0.9525 | 0.8843 | 0.8548 | 0.8545 | 0.8843 | 0.8695 | 0.8695 | 0.8696 | 0.8693
|
| 7 |
-
Epoch 00002 | LR 9.8010e-05 | Loss 15.3191 | Accuracy 0.8285 | Test_Loss 28.6484 | Test_AUC 0.0000 | Time 288.8502 s
|
| 8 |
-
MultiLabel_Accuracy | 0.7560 | 0.5629 | 0.4914 | 0.4665 | 0.9044 | 0.7099 | 0.8561 | 0.6573 | 0.9652 | 0.8321 | 0.9076 | 0.9074 | 0.8316 | 0.8933 | 0.8935 | 0.7987 | 0.8932 | 0.8284 | 0.9852 | 0.7207 | 0.9055 | 0.8829 | 0.8077 | 0.8077 | 0.8832 | 0.8453 | 0.8454 | 0.8456 | 0.8453 | 0.8376 | 0.9731 | 0.7980 | 0.9525 | 0.8843 | 0.8548 | 0.8545 | 0.8843 | 0.8695 | 0.8695 | 0.8696 | 0.8693
|
| 9 |
-
Epoch 00003 | LR 9.7030e-05 | Loss 15.0311 | Accuracy 0.8304 | Test_Loss 28.5576 | Test_AUC 0.0000 | Time 286.0547 s
|
| 10 |
-
MultiLabel_Accuracy | 0.7625 | 0.5731 | 0.5011 | 0.4725 | 0.9044 | 0.7103 | 0.8561 | 0.6573 | 0.9652 | 0.8321 | 0.9076 | 0.9074 | 0.8316 | 0.8933 | 0.8935 | 0.7987 | 0.8932 | 0.8325 | 0.9852 | 0.7283 | 0.9086 | 0.8829 | 0.8077 | 0.8077 | 0.8832 | 0.8453 | 0.8454 | 0.8456 | 0.8453 | 0.8426 | 0.9731 | 0.8055 | 0.9525 | 0.8843 | 0.8548 | 0.8545 | 0.8843 | 0.8695 | 0.8695 | 0.8696 | 0.8693
|
| 11 |
-
Epoch 00004 | LR 9.6060e-05 | Loss 14.8461 | Accuracy 0.8319 | Test_Loss 28.4603 | Test_AUC 0.0000 | Time 284.5482 s
|
| 12 |
-
MultiLabel_Accuracy | 0.7645 | 0.5736 | 0.5196 | 0.5005 | 0.9044 | 0.7025 | 0.8561 | 0.6573 | 0.9652 | 0.8321 | 0.9076 | 0.9074 | 0.8316 | 0.8933 | 0.8935 | 0.7987 | 0.8932 | 0.8364 | 0.9852 | 0.7657 | 0.9338 | 0.8829 | 0.8077 | 0.8077 | 0.8832 | 0.8453 | 0.8454 | 0.8456 | 0.8453 | 0.8469 | 0.9731 | 0.8034 | 0.9525 | 0.8843 | 0.8548 | 0.8545 | 0.8843 | 0.8695 | 0.8695 | 0.8696 | 0.8693
|
| 13 |
-
Epoch 00005 | LR 9.5099e-05 | Loss 14.7059 | Accuracy 0.8346 | Test_Loss 28.4169 | Test_AUC 0.0000 | Time 281.6354 s
|
| 14 |
-
MultiLabel_Accuracy | 0.7648 | 0.5748 | 0.5223 | 0.5069 | 0.9044 | 0.7103 | 0.8561 | 0.6573 | 0.9652 | 0.8321 | 0.9076 | 0.9074 | 0.8316 | 0.8933 | 0.8935 | 0.7987 | 0.8932 | 0.8350 | 0.9852 | 0.7655 | 0.9281 | 0.8829 | 0.8077 | 0.8077 | 0.8832 | 0.8453 | 0.8454 | 0.8456 | 0.8453 | 0.8430 | 0.9731 | 0.8036 | 0.9525 | 0.8843 | 0.8548 | 0.8545 | 0.8843 | 0.8695 | 0.8695 | 0.8696 | 0.8693
|
| 15 |
-
Epoch 00006 | LR 9.4148e-05 | Loss 14.6290 | Accuracy 0.8347 | Test_Loss 28.3604 | Test_AUC 0.0000 | Time 281.7016 s
|
| 16 |
-
MultiLabel_Accuracy | 0.7626 | 0.5821 | 0.5289 | 0.5139 | 0.9044 | 0.7184 | 0.8561 | 0.6573 | 0.9652 | 0.8321 | 0.9076 | 0.9074 | 0.8316 | 0.8933 | 0.8935 | 0.7987 | 0.8932 | 0.8283 | 0.9852 | 0.7678 | 0.9335 | 0.8829 | 0.8077 | 0.8077 | 0.8832 | 0.8453 | 0.8454 | 0.8456 | 0.8453 | 0.8344 | 0.9731 | 0.7900 | 0.9525 | 0.8843 | 0.8548 | 0.8545 | 0.8843 | 0.8695 | 0.8695 | 0.8696 | 0.8693
|
| 17 |
-
Epoch 00007 | LR 9.3207e-05 | Loss 14.5512 | Accuracy 0.8349 | Test_Loss 28.3178 | Test_AUC 0.0000 | Time 283.5411 s
|
| 18 |
-
MultiLabel_Accuracy | 0.7629 | 0.5778 | 0.5311 | 0.5153 | 0.9044 | 0.7141 | 0.8561 | 0.6573 | 0.9652 | 0.8321 | 0.9076 | 0.9074 | 0.8316 | 0.8933 | 0.8935 | 0.7987 | 0.8932 | 0.8294 | 0.9852 | 0.7725 | 0.9309 | 0.8829 | 0.8077 | 0.8077 | 0.8832 | 0.8453 | 0.8454 | 0.8456 | 0.8453 | 0.8272 | 0.9731 | 0.7831 | 0.9525 | 0.8843 | 0.8548 | 0.8545 | 0.8843 | 0.8695 | 0.8695 | 0.8696 | 0.8693
|
| 19 |
-
Epoch 00008 | LR 9.2274e-05 | Loss 14.4881 | Accuracy 0.8345 | Test_Loss 28.3158 | Test_AUC 0.0000 | Time 301.1452 s
|
| 20 |
-
MultiLabel_Accuracy | 0.7641 | 0.5809 | 0.5265 | 0.5111 | 0.9044 | 0.7141 | 0.8561 | 0.6573 | 0.9652 | 0.8321 | 0.9076 | 0.9074 | 0.8316 | 0.8933 | 0.8935 | 0.7987 | 0.8932 | 0.8289 | 0.9852 | 0.7678 | 0.9249 | 0.8829 | 0.8077 | 0.8077 | 0.8832 | 0.8453 | 0.8454 | 0.8456 | 0.8453 | 0.8278 | 0.9731 | 0.7936 | 0.9525 | 0.8843 | 0.8548 | 0.8545 | 0.8843 | 0.8695 | 0.8695 | 0.8696 | 0.8693
|
| 21 |
-
Epoch 00009 | LR 9.1352e-05 | Loss 14.4349 | Accuracy 0.8344 | Test_Loss 28.2953 | Test_AUC 0.0000 | Time 290.1668 s
|
| 22 |
-
MultiLabel_Accuracy | 0.7630 | 0.5775 | 0.5313 | 0.5147 | 0.9044 | 0.7133 | 0.8561 | 0.6573 | 0.9652 | 0.8321 | 0.9076 | 0.9074 | 0.8316 | 0.8933 | 0.8935 | 0.7987 | 0.8932 | 0.8268 | 0.9852 | 0.7712 | 0.9161 | 0.8829 | 0.8077 | 0.8077 | 0.8832 | 0.8453 | 0.8454 | 0.8456 | 0.8453 | 0.8224 | 0.9731 | 0.7899 | 0.9525 | 0.8843 | 0.8548 | 0.8545 | 0.8843 | 0.8695 | 0.8695 | 0.8696 | 0.8693
|
| 23 |
-
Epoch 00010 | LR 9.0438e-05 | Loss 14.3933 | Accuracy 0.8341 | Test_Loss 28.2877 | Test_AUC 0.0000 | Time 282.7054 s
|
| 24 |
-
MultiLabel_Accuracy | 0.7631 | 0.5796 | 0.5274 | 0.5106 | 0.9044 | 0.7121 | 0.8561 | 0.6573 | 0.9652 | 0.8321 | 0.9076 | 0.9074 | 0.8316 | 0.8933 | 0.8935 | 0.7987 | 0.8932 | 0.8272 | 0.9852 | 0.7771 | 0.9241 | 0.8829 | 0.8077 | 0.8077 | 0.8832 | 0.8453 | 0.8454 | 0.8456 | 0.8453 | 0.8227 | 0.9731 | 0.7846 | 0.9525 | 0.8843 | 0.8548 | 0.8545 | 0.8843 | 0.8695 | 0.8695 | 0.8696 | 0.8693
|
| 25 |
-
Epoch 00011 | LR 8.9534e-05 | Loss 14.3596 | Accuracy 0.8341 | Test_Loss 28.2753 | Test_AUC 0.0000 | Time 281.5382 s
|
| 26 |
-
MultiLabel_Accuracy | 0.7640 | 0.5816 | 0.5218 | 0.5071 | 0.9044 | 0.7125 | 0.8561 | 0.6573 | 0.9652 | 0.8321 | 0.9076 | 0.9074 | 0.8316 | 0.8933 | 0.8935 | 0.7987 | 0.8932 | 0.8278 | 0.9852 | 0.7836 | 0.9215 | 0.8829 | 0.8077 | 0.8077 | 0.8832 | 0.8453 | 0.8454 | 0.8456 | 0.8453 | 0.8261 | 0.9731 | 0.7864 | 0.9525 | 0.8843 | 0.8548 | 0.8545 | 0.8843 | 0.8695 | 0.8695 | 0.8696 | 0.8693
|
| 27 |
-
Epoch 00012 | LR 8.8638e-05 | Loss 14.3304 | Accuracy 0.8342 | Test_Loss 28.2619 | Test_AUC 0.0000 | Time 356.4046 s
|
| 28 |
-
MultiLabel_Accuracy | 0.7643 | 0.5823 | 0.5164 | 0.5030 | 0.9044 | 0.7158 | 0.8561 | 0.6573 | 0.9652 | 0.8321 | 0.9076 | 0.9074 | 0.8316 | 0.8933 | 0.8935 | 0.7987 | 0.8932 | 0.8284 | 0.9852 | 0.7898 | 0.9320 | 0.8829 | 0.8077 | 0.8077 | 0.8832 | 0.8453 | 0.8454 | 0.8456 | 0.8453 | 0.8290 | 0.9731 | 0.7799 | 0.9525 | 0.8843 | 0.8548 | 0.8545 | 0.8843 | 0.8695 | 0.8695 | 0.8696 | 0.8693
|
| 29 |
-
Epoch 00013 | LR 8.7752e-05 | Loss 14.3099 | Accuracy 0.8344 | Test_Loss 28.2455 | Test_AUC 0.0000 | Time 319.6655 s
|
| 30 |
-
MultiLabel_Accuracy | 0.7639 | 0.5792 | 0.5255 | 0.5108 | 0.9044 | 0.7151 | 0.8561 | 0.6573 | 0.9652 | 0.8321 | 0.9076 | 0.9074 | 0.8316 | 0.8933 | 0.8935 | 0.7987 | 0.8932 | 0.8270 | 0.9852 | 0.7780 | 0.9251 | 0.8829 | 0.8077 | 0.8077 | 0.8832 | 0.8453 | 0.8454 | 0.8456 | 0.8453 | 0.8258 | 0.9731 | 0.7858 | 0.9525 | 0.8843 | 0.8548 | 0.8545 | 0.8843 | 0.8695 | 0.8695 | 0.8696 | 0.8693
|
| 31 |
-
Epoch 00014 | LR 8.6875e-05 | Loss 14.2862 | Accuracy 0.8343 | Test_Loss 28.2518 | Test_AUC 0.0000 | Time 285.1502 s
|
| 32 |
-
MultiLabel_Accuracy | 0.7647 | 0.5830 | 0.5255 | 0.5100 | 0.9044 | 0.7184 | 0.8561 | 0.6573 | 0.9652 | 0.8321 | 0.9076 | 0.9074 | 0.8316 | 0.8933 | 0.8935 | 0.7987 | 0.8932 | 0.8260 | 0.9852 | 0.7850 | 0.9223 | 0.8829 | 0.8077 | 0.8077 | 0.8832 | 0.8453 | 0.8454 | 0.8456 | 0.8453 | 0.8261 | 0.9731 | 0.7829 | 0.9525 | 0.8843 | 0.8548 | 0.8545 | 0.8843 | 0.8695 | 0.8695 | 0.8696 | 0.8693
|
| 33 |
-
Epoch 00015 | LR 8.6006e-05 | Loss 14.2648 | Accuracy 0.8345 | Test_Loss 28.2293 | Test_AUC 0.0000 | Time 284.2648 s
|
| 34 |
-
MultiLabel_Accuracy | 0.7655 | 0.5830 | 0.5284 | 0.5133 | 0.9044 | 0.7184 | 0.8561 | 0.6573 | 0.9652 | 0.8321 | 0.9076 | 0.9074 | 0.8316 | 0.8933 | 0.8935 | 0.7987 | 0.8932 | 0.8285 | 0.9852 | 0.7904 | 0.9221 | 0.8829 | 0.8077 | 0.8077 | 0.8832 | 0.8453 | 0.8454 | 0.8456 | 0.8453 | 0.8304 | 0.9731 | 0.7856 | 0.9525 | 0.8843 | 0.8548 | 0.8545 | 0.8843 | 0.8695 | 0.8695 | 0.8696 | 0.8693
|
| 35 |
-
Epoch 00016 | LR 8.5146e-05 | Loss 14.2550 | Accuracy 0.8350 | Test_Loss 28.2367 | Test_AUC 0.0000 | Time 285.0594 s
|
| 36 |
-
MultiLabel_Accuracy | 0.7646 | 0.5796 | 0.5293 | 0.5135 | 0.9044 | 0.7168 | 0.8561 | 0.6573 | 0.9652 | 0.8321 | 0.9076 | 0.9074 | 0.8316 | 0.8933 | 0.8935 | 0.7987 | 0.8932 | 0.8288 | 0.9852 | 0.7897 | 0.9253 | 0.8829 | 0.8077 | 0.8077 | 0.8832 | 0.8453 | 0.8454 | 0.8456 | 0.8453 | 0.8290 | 0.9731 | 0.7913 | 0.9525 | 0.8843 | 0.8548 | 0.8545 | 0.8843 | 0.8695 | 0.8695 | 0.8696 | 0.8693
|
| 37 |
-
Epoch 00017 | LR 8.4294e-05 | Loss 14.2427 | Accuracy 0.8351 | Test_Loss 28.2483 | Test_AUC 0.0000 | Time 285.6626 s
|
| 38 |
-
MultiLabel_Accuracy | 0.7650 | 0.5815 | 0.5352 | 0.5199 | 0.9044 | 0.7206 | 0.8561 | 0.6573 | 0.9652 | 0.8321 | 0.9076 | 0.9074 | 0.8316 | 0.8933 | 0.8935 | 0.7987 | 0.8932 | 0.8246 | 0.9852 | 0.7882 | 0.9255 | 0.8829 | 0.8077 | 0.8077 | 0.8832 | 0.8453 | 0.8454 | 0.8456 | 0.8453 | 0.8242 | 0.9731 | 0.7825 | 0.9525 | 0.8843 | 0.8548 | 0.8545 | 0.8843 | 0.8695 | 0.8695 | 0.8696 | 0.8693
|
| 39 |
-
Epoch 00018 | LR 8.3451e-05 | Loss 14.2201 | Accuracy 0.8351 | Test_Loss 28.2372 | Test_AUC 0.0000 | Time 281.2534 s
|
| 40 |
-
MultiLabel_Accuracy | 0.7651 | 0.5869 | 0.5295 | 0.5168 | 0.9044 | 0.7228 | 0.8561 | 0.6573 | 0.9652 | 0.8321 | 0.9076 | 0.9074 | 0.8316 | 0.8933 | 0.8935 | 0.7987 | 0.8932 | 0.8277 | 0.9852 | 0.7926 | 0.9242 | 0.8829 | 0.8077 | 0.8077 | 0.8832 | 0.8453 | 0.8454 | 0.8456 | 0.8453 | 0.8306 | 0.9731 | 0.7825 | 0.9525 | 0.8843 | 0.8548 | 0.8545 | 0.8843 | 0.8695 | 0.8695 | 0.8696 | 0.8693
|
| 41 |
-
Epoch 00019 | LR 8.2617e-05 | Loss 14.2050 | Accuracy 0.8353 | Test_Loss 28.2081 | Test_AUC 0.0000 | Time 280.0656 s
|
| 42 |
-
MultiLabel_Accuracy | 0.7646 | 0.5755 | 0.5386 | 0.5236 | 0.9044 | 0.7172 | 0.8561 | 0.6573 | 0.9652 | 0.8321 | 0.9076 | 0.9074 | 0.8316 | 0.8933 | 0.8935 | 0.7987 | 0.8932 | 0.8265 | 0.9852 | 0.7885 | 0.9215 | 0.8829 | 0.8077 | 0.8077 | 0.8832 | 0.8453 | 0.8454 | 0.8456 | 0.8453 | 0.8277 | 0.9731 | 0.7928 | 0.9599 | 0.8843 | 0.8548 | 0.8545 | 0.8843 | 0.8695 | 0.8695 | 0.8696 | 0.8693
|
| 43 |
-
Epoch 00020 | LR 8.1791e-05 | Loss 14.1920 | Accuracy 0.8355 | Test_Loss 28.2547 | Test_AUC 0.0000 | Time 281.6702 s
|
| 44 |
-
MultiLabel_Accuracy | 0.7666 | 0.5848 | 0.5371 | 0.5224 | 0.9044 | 0.7205 | 0.8561 | 0.6573 | 0.9652 | 0.8321 | 0.9076 | 0.9074 | 0.8316 | 0.8933 | 0.8935 | 0.7987 | 0.8932 | 0.8267 | 0.9852 | 0.7904 | 0.9215 | 0.8829 | 0.8077 | 0.8077 | 0.8832 | 0.8453 | 0.8454 | 0.8456 | 0.8453 | 0.8255 | 0.9731 | 0.7858 | 0.9597 | 0.8843 | 0.8548 | 0.8545 | 0.8843 | 0.8695 | 0.8695 | 0.8696 | 0.8693
|
| 45 |
-
Epoch 00021 | LR 8.0973e-05 | Loss 14.1798 | Accuracy 0.8356 | Test_Loss 28.2137 | Test_AUC 0.0000 | Time 283.8978 s
|
| 46 |
-
MultiLabel_Accuracy | 0.7645 | 0.5835 | 0.5386 | 0.5260 | 0.9044 | 0.7215 | 0.8561 | 0.6573 | 0.9652 | 0.8321 | 0.9076 | 0.9074 | 0.8316 | 0.8933 | 0.8935 | 0.7987 | 0.8932 | 0.8252 | 0.9852 | 0.7857 | 0.9235 | 0.8829 | 0.8077 | 0.8077 | 0.8832 | 0.8453 | 0.8454 | 0.8456 | 0.8453 | 0.8265 | 0.9731 | 0.7921 | 0.9599 | 0.8843 | 0.8548 | 0.8545 | 0.8843 | 0.8695 | 0.8695 | 0.8696 | 0.8693
|
| 47 |
-
Epoch 00022 | LR 8.0163e-05 | Loss 14.1698 | Accuracy 0.8357 | Test_Loss 28.2437 | Test_AUC 0.0000 | Time 284.9271 s
|
| 48 |
-
MultiLabel_Accuracy | 0.7659 | 0.5885 | 0.5385 | 0.5258 | 0.9044 | 0.7210 | 0.8561 | 0.6573 | 0.9652 | 0.8321 | 0.9076 | 0.9074 | 0.8316 | 0.8933 | 0.8935 | 0.7987 | 0.8932 | 0.8287 | 0.9852 | 0.7920 | 0.9255 | 0.8829 | 0.8077 | 0.8077 | 0.8832 | 0.8453 | 0.8454 | 0.8456 | 0.8453 | 0.8275 | 0.9731 | 0.7913 | 0.9594 | 0.8843 | 0.8548 | 0.8545 | 0.8843 | 0.8695 | 0.8695 | 0.8696 | 0.8693
|
| 49 |
-
Epoch 00023 | LR 7.9361e-05 | Loss 14.1528 | Accuracy 0.8361 | Test_Loss 28.1935 | Test_AUC 0.0000 | Time 282.3253 s
|
| 50 |
-
MultiLabel_Accuracy | 0.7656 | 0.5849 | 0.5377 | 0.5230 | 0.9044 | 0.7188 | 0.8561 | 0.6573 | 0.9652 | 0.8321 | 0.9076 | 0.9074 | 0.8316 | 0.8933 | 0.8935 | 0.7987 | 0.8932 | 0.8275 | 0.9852 | 0.7909 | 0.9259 | 0.8829 | 0.8077 | 0.8077 | 0.8832 | 0.8453 | 0.8454 | 0.8456 | 0.8453 | 0.8289 | 0.9731 | 0.7928 | 0.9598 | 0.8843 | 0.8548 | 0.8545 | 0.8843 | 0.8695 | 0.8695 | 0.8696 | 0.8693
|
| 51 |
-
Epoch 00024 | LR 7.8568e-05 | Loss 14.1443 | Accuracy 0.8359 | Test_Loss 28.2195 | Test_AUC 0.0000 | Time 295.7619 s
|
| 52 |
-
MultiLabel_Accuracy | 0.7652 | 0.5848 | 0.5384 | 0.5230 | 0.9044 | 0.7158 | 0.8561 | 0.6573 | 0.9652 | 0.8321 | 0.9076 | 0.9074 | 0.8316 | 0.8933 | 0.8935 | 0.7987 | 0.8932 | 0.8280 | 0.9852 | 0.7879 | 0.9215 | 0.8829 | 0.8077 | 0.8077 | 0.8832 | 0.8453 | 0.8454 | 0.8456 | 0.8453 | 0.8293 | 0.9731 | 0.7947 | 0.9594 | 0.8843 | 0.8548 | 0.8545 | 0.8843 | 0.8695 | 0.8695 | 0.8696 | 0.8693
|
| 53 |
-
Epoch 00025 | LR 7.7782e-05 | Loss 14.1351 | Accuracy 0.8357 | Test_Loss 28.2209 | Test_AUC 0.0000 | Time 305.7035 s
|
| 54 |
-
MultiLabel_Accuracy | 0.7657 | 0.5860 | 0.5367 | 0.5201 | 0.9044 | 0.7158 | 0.8561 | 0.6573 | 0.9652 | 0.8321 | 0.9076 | 0.9074 | 0.8316 | 0.8933 | 0.8935 | 0.7987 | 0.8932 | 0.8297 | 0.9852 | 0.7926 | 0.9228 | 0.8829 | 0.8077 | 0.8077 | 0.8832 | 0.8453 | 0.8454 | 0.8456 | 0.8453 | 0.8298 | 0.9731 | 0.7950 | 0.9594 | 0.8843 | 0.8548 | 0.8545 | 0.8843 | 0.8695 | 0.8695 | 0.8696 | 0.8693
|
| 55 |
-
Epoch 00026 | LR 7.7004e-05 | Loss 14.1285 | Accuracy 0.8359 | Test_Loss 28.2225 | Test_AUC 0.0000 | Time 294.8985 s
|
| 56 |
-
MultiLabel_Accuracy | 0.7661 | 0.5872 | 0.5370 | 0.5208 | 0.9044 | 0.7178 | 0.8561 | 0.6573 | 0.9652 | 0.8321 | 0.9076 | 0.9074 | 0.8316 | 0.8933 | 0.8935 | 0.7987 | 0.8932 | 0.8288 | 0.9852 | 0.7931 | 0.9269 | 0.8829 | 0.8077 | 0.8077 | 0.8832 | 0.8453 | 0.8454 | 0.8456 | 0.8453 | 0.8294 | 0.9731 | 0.7926 | 0.9601 | 0.8843 | 0.8548 | 0.8545 | 0.8843 | 0.8695 | 0.8695 | 0.8696 | 0.8693
|
| 57 |
-
Epoch 00027 | LR 7.6234e-05 | Loss 14.1134 | Accuracy 0.8360 | Test_Loss 28.1849 | Test_AUC 0.0000 | Time 282.3505 s
|
| 58 |
-
MultiLabel_Accuracy | 0.7663 | 0.5863 | 0.5395 | 0.5243 | 0.9044 | 0.7188 | 0.8561 | 0.6573 | 0.9652 | 0.8321 | 0.9076 | 0.9074 | 0.8316 | 0.8933 | 0.8935 | 0.7987 | 0.8932 | 0.8283 | 0.9852 | 0.7875 | 0.9197 | 0.8829 | 0.8077 | 0.8077 | 0.8832 | 0.8453 | 0.8454 | 0.8456 | 0.8453 | 0.8304 | 0.9731 | 0.7959 | 0.9589 | 0.8843 | 0.8548 | 0.8545 | 0.8843 | 0.8695 | 0.8695 | 0.8696 | 0.8693
|
| 59 |
-
Epoch 00028 | LR 7.5472e-05 | Loss 14.1056 | Accuracy 0.8359 | Test_Loss 28.2178 | Test_AUC 0.0000 | Time 286.5912 s
|
| 60 |
-
MultiLabel_Accuracy | 0.7660 | 0.5886 | 0.5383 | 0.5231 | 0.9044 | 0.7219 | 0.8561 | 0.6573 | 0.9652 | 0.8321 | 0.9076 | 0.9074 | 0.8316 | 0.8933 | 0.8935 | 0.7987 | 0.8932 | 0.8268 | 0.9852 | 0.7913 | 0.9258 | 0.8829 | 0.8077 | 0.8077 | 0.8832 | 0.8453 | 0.8454 | 0.8456 | 0.8453 | 0.8262 | 0.9731 | 0.7927 | 0.9599 | 0.8843 | 0.8548 | 0.8545 | 0.8843 | 0.8695 | 0.8695 | 0.8696 | 0.8693
|
| 61 |
-
Epoch 00029 | LR 7.4717e-05 | Loss 14.0994 | Accuracy 0.8361 | Test_Loss 28.2007 | Test_AUC 0.0000 | Time 281.7022 s
|
| 62 |
-
MultiLabel_Accuracy | 0.7675 | 0.5887 | 0.5363 | 0.5219 | 0.9044 | 0.7175 | 0.8561 | 0.6573 | 0.9652 | 0.8321 | 0.9076 | 0.9074 | 0.8316 | 0.8933 | 0.8935 | 0.7987 | 0.8932 | 0.8311 | 0.9852 | 0.7943 | 0.9255 | 0.8829 | 0.8077 | 0.8077 | 0.8832 | 0.8453 | 0.8454 | 0.8456 | 0.8453 | 0.8295 | 0.9731 | 0.7942 | 0.9597 | 0.8843 | 0.8548 | 0.8545 | 0.8843 | 0.8695 | 0.8695 | 0.8696 | 0.8693
|
| 63 |
-
Epoch 00030 | LR 7.3970e-05 | Loss 14.0880 | Accuracy 0.8362 | Test_Loss 28.1905 | Test_AUC 0.0000 | Time 279.7372 s
|
| 64 |
-
MultiLabel_Accuracy | 0.7677 | 0.5906 | 0.5366 | 0.5232 | 0.9044 | 0.7194 | 0.8561 | 0.6573 | 0.9652 | 0.8321 | 0.9076 | 0.9074 | 0.8316 | 0.8933 | 0.8935 | 0.7987 | 0.8932 | 0.8312 | 0.9852 | 0.7940 | 0.9255 | 0.8829 | 0.8077 | 0.8077 | 0.8832 | 0.8453 | 0.8454 | 0.8456 | 0.8453 | 0.8308 | 0.9731 | 0.7967 | 0.9594 | 0.8843 | 0.8548 | 0.8545 | 0.8843 | 0.8695 | 0.8695 | 0.8696 | 0.8693
|
| 65 |
-
Epoch 00031 | LR 7.3230e-05 | Loss 14.0795 | Accuracy 0.8364 | Test_Loss 28.1945 | Test_AUC 0.0000 | Time 285.0377 s
|
| 66 |
-
MultiLabel_Accuracy | 0.7687 | 0.5940 | 0.5357 | 0.5232 | 0.9044 | 0.7206 | 0.8561 | 0.6573 | 0.9652 | 0.8321 | 0.9076 | 0.9074 | 0.8316 | 0.8933 | 0.8935 | 0.7987 | 0.8932 | 0.8299 | 0.9852 | 0.7924 | 0.9242 | 0.8829 | 0.8077 | 0.8077 | 0.8832 | 0.8453 | 0.8454 | 0.8456 | 0.8453 | 0.8324 | 0.9731 | 0.7960 | 0.9596 | 0.8843 | 0.8548 | 0.8545 | 0.8843 | 0.8695 | 0.8695 | 0.8696 | 0.8693
|
| 67 |
-
Epoch 00032 | LR 7.2498e-05 | Loss 14.0707 | Accuracy 0.8364 | Test_Loss 28.1790 | Test_AUC 0.0000 | Time 282.6988 s
|
| 68 |
-
MultiLabel_Accuracy | 0.7673 | 0.5884 | 0.5350 | 0.5214 | 0.9044 | 0.7151 | 0.8561 | 0.6573 | 0.9652 | 0.8321 | 0.9076 | 0.9074 | 0.8316 | 0.8933 | 0.8935 | 0.7987 | 0.8932 | 0.8321 | 0.9852 | 0.7913 | 0.9197 | 0.8829 | 0.8077 | 0.8077 | 0.8832 | 0.8453 | 0.8454 | 0.8456 | 0.8453 | 0.8279 | 0.9731 | 0.7922 | 0.9590 | 0.8843 | 0.8548 | 0.8545 | 0.8843 | 0.8695 | 0.8695 | 0.8696 | 0.8693
|
| 69 |
-
Epoch 00033 | LR 7.1773e-05 | Loss 14.0643 | Accuracy 0.8358 | Test_Loss 28.1895 | Test_AUC 0.0000 | Time 278.8458 s
|
| 70 |
-
MultiLabel_Accuracy | 0.7681 | 0.5947 | 0.5338 | 0.5211 | 0.9044 | 0.7213 | 0.8561 | 0.6573 | 0.9652 | 0.8321 | 0.9076 | 0.9074 | 0.8316 | 0.8933 | 0.8935 | 0.7987 | 0.8932 | 0.8298 | 0.9852 | 0.7941 | 0.9262 | 0.8829 | 0.8077 | 0.8077 | 0.8832 | 0.8453 | 0.8454 | 0.8456 | 0.8453 | 0.8269 | 0.9731 | 0.7919 | 0.9600 | 0.8843 | 0.8548 | 0.8545 | 0.8843 | 0.8695 | 0.8695 | 0.8696 | 0.8693
|
| 71 |
-
Epoch 00034 | LR 7.1055e-05 | Loss 14.0574 | Accuracy 0.8362 | Test_Loss 28.1609 | Test_AUC 0.0000 | Time 283.4880 s
|
| 72 |
-
MultiLabel_Accuracy | 0.7690 | 0.5982 | 0.5342 | 0.5229 | 0.9044 | 0.7235 | 0.8561 | 0.6573 | 0.9652 | 0.8321 | 0.9076 | 0.9074 | 0.8316 | 0.8933 | 0.8935 | 0.7987 | 0.8932 | 0.8299 | 0.9852 | 0.7948 | 0.9273 | 0.8829 | 0.8077 | 0.8077 | 0.8832 | 0.8453 | 0.8454 | 0.8456 | 0.8453 | 0.8274 | 0.9731 | 0.7912 | 0.9601 | 0.8843 | 0.8548 | 0.8545 | 0.8843 | 0.8695 | 0.8695 | 0.8696 | 0.8693
|
| 73 |
-
Epoch 00035 | LR 7.0345e-05 | Loss 14.0464 | Accuracy 0.8365 | Test_Loss 28.1496 | Test_AUC 0.0000 | Time 285.9291 s
|
| 74 |
-
MultiLabel_Accuracy | 0.7684 | 0.5962 | 0.5339 | 0.5212 | 0.9044 | 0.7213 | 0.8561 | 0.6573 | 0.9652 | 0.8321 | 0.9076 | 0.9074 | 0.8316 | 0.8933 | 0.8935 | 0.7987 | 0.8932 | 0.8349 | 0.9852 | 0.7960 | 0.9255 | 0.8829 | 0.8077 | 0.8077 | 0.8832 | 0.8453 | 0.8454 | 0.8456 | 0.8453 | 0.8302 | 0.9731 | 0.7935 | 0.9597 | 0.8843 | 0.8548 | 0.8545 | 0.8843 | 0.8695 | 0.8695 | 0.8696 | 0.8693
|
| 75 |
-
Epoch 00036 | LR 6.9641e-05 | Loss 14.0393 | Accuracy 0.8365 | Test_Loss 28.1716 | Test_AUC 0.0000 | Time 284.9658 s
|
| 76 |
-
MultiLabel_Accuracy | 0.7686 | 0.5963 | 0.5337 | 0.5208 | 0.9044 | 0.7184 | 0.8561 | 0.6573 | 0.9652 | 0.8321 | 0.9076 | 0.9074 | 0.8316 | 0.8933 | 0.8935 | 0.7987 | 0.8932 | 0.8339 | 0.9852 | 0.7956 | 0.9259 | 0.8829 | 0.8077 | 0.8077 | 0.8832 | 0.8453 | 0.8454 | 0.8456 | 0.8453 | 0.8305 | 0.9731 | 0.7932 | 0.9596 | 0.8843 | 0.8548 | 0.8545 | 0.8843 | 0.8695 | 0.8695 | 0.8696 | 0.8693
|
| 77 |
-
Epoch 00037 | LR 6.8945e-05 | Loss 14.0344 | Accuracy 0.8364 | Test_Loss 28.1794 | Test_AUC 0.0000 | Time 289.9682 s
|
| 78 |
-
MultiLabel_Accuracy | 0.7692 | 0.5996 | 0.5330 | 0.5190 | 0.9044 | 0.7203 | 0.8561 | 0.6573 | 0.9652 | 0.8321 | 0.9076 | 0.9074 | 0.8316 | 0.8933 | 0.8935 | 0.7987 | 0.8932 | 0.8346 | 0.9852 | 0.7971 | 0.9260 | 0.8829 | 0.8077 | 0.8077 | 0.8832 | 0.8453 | 0.8454 | 0.8456 | 0.8453 | 0.8321 | 0.9731 | 0.7949 | 0.9598 | 0.8843 | 0.8548 | 0.8545 | 0.8843 | 0.8695 | 0.8695 | 0.8696 | 0.8693
|
| 79 |
-
Epoch 00038 | LR 6.8255e-05 | Loss 14.0218 | Accuracy 0.8367 | Test_Loss 28.1637 | Test_AUC 0.0000 | Time 287.4777 s
|
| 80 |
-
MultiLabel_Accuracy | 0.7691 | 0.5970 | 0.5330 | 0.5201 | 0.9044 | 0.7190 | 0.8561 | 0.6573 | 0.9652 | 0.8321 | 0.9076 | 0.9074 | 0.8316 | 0.8933 | 0.8935 | 0.7987 | 0.8932 | 0.8345 | 0.9852 | 0.7968 | 0.9276 | 0.8829 | 0.8077 | 0.8077 | 0.8832 | 0.8453 | 0.8454 | 0.8456 | 0.8453 | 0.8342 | 0.9731 | 0.7962 | 0.9601 | 0.8843 | 0.8548 | 0.8545 | 0.8843 | 0.8695 | 0.8695 | 0.8696 | 0.8693
|
| 81 |
-
Epoch 00039 | LR 6.7573e-05 | Loss 14.0097 | Accuracy 0.8367 | Test_Loss 28.1543 | Test_AUC 0.0000 | Time 290.9069 s
|
| 82 |
-
MultiLabel_Accuracy | 0.7694 | 0.5998 | 0.5333 | 0.5203 | 0.9044 | 0.7209 | 0.8561 | 0.6573 | 0.9652 | 0.8321 | 0.9076 | 0.9074 | 0.8316 | 0.8933 | 0.8935 | 0.7987 | 0.8932 | 0.8350 | 0.9852 | 0.7975 | 0.9277 | 0.8829 | 0.8077 | 0.8077 | 0.8832 | 0.8453 | 0.8454 | 0.8456 | 0.8453 | 0.8353 | 0.9731 | 0.7976 | 0.9601 | 0.8843 | 0.8548 | 0.8545 | 0.8843 | 0.8695 | 0.8695 | 0.8696 | 0.8693
|
| 83 |
-
Epoch 00040 | LR 6.6897e-05 | Loss 13.9961 | Accuracy 0.8369 | Test_Loss 28.1429 | Test_AUC 0.0000 | Time 284.9635 s
|
| 84 |
-
MultiLabel_Accuracy | 0.7692 | 0.5994 | 0.5328 | 0.5191 | 0.9044 | 0.7226 | 0.8561 | 0.6573 | 0.9652 | 0.8321 | 0.9076 | 0.9074 | 0.8316 | 0.8933 | 0.8935 | 0.7987 | 0.8932 | 0.8346 | 0.9852 | 0.7977 | 0.9274 | 0.8829 | 0.8077 | 0.8077 | 0.8832 | 0.8453 | 0.8454 | 0.8456 | 0.8453 | 0.8365 | 0.9731 | 0.7987 | 0.9602 | 0.8843 | 0.8548 | 0.8545 | 0.8843 | 0.8695 | 0.8695 | 0.8696 | 0.8693
|
| 85 |
-
Epoch 00041 | LR 6.6228e-05 | Loss 13.9844 | Accuracy 0.8370 | Test_Loss 28.1354 | Test_AUC 0.0000 | Time 283.8730 s
|
| 86 |
-
MultiLabel_Accuracy | 0.7694 | 0.6001 | 0.5347 | 0.5204 | 0.9044 | 0.7256 | 0.8561 | 0.6573 | 0.9652 | 0.8321 | 0.9076 | 0.9074 | 0.8316 | 0.8933 | 0.8935 | 0.7987 | 0.8932 | 0.8345 | 0.9852 | 0.7974 | 0.9282 | 0.8829 | 0.8077 | 0.8077 | 0.8832 | 0.8453 | 0.8454 | 0.8456 | 0.8453 | 0.8360 | 0.9731 | 0.7990 | 0.9599 | 0.8843 | 0.8548 | 0.8545 | 0.8843 | 0.8695 | 0.8695 | 0.8696 | 0.8693
|
| 87 |
-
Epoch 00042 | LR 6.5566e-05 | Loss 13.9704 | Accuracy 0.8371 | Test_Loss 28.1307 | Test_AUC 0.0000 | Time 284.3014 s
|
| 88 |
-
MultiLabel_Accuracy | 0.7695 | 0.5988 | 0.5348 | 0.5199 | 0.9044 | 0.7225 | 0.8561 | 0.6573 | 0.9652 | 0.8321 | 0.9076 | 0.9074 | 0.8316 | 0.8933 | 0.8935 | 0.7987 | 0.8932 | 0.8366 | 0.9852 | 0.7988 | 0.9278 | 0.8829 | 0.8077 | 0.8077 | 0.8832 | 0.8453 | 0.8454 | 0.8456 | 0.8453 | 0.8378 | 0.9731 | 0.8020 | 0.9602 | 0.8843 | 0.8548 | 0.8545 | 0.8843 | 0.8695 | 0.8695 | 0.8696 | 0.8693
|
| 89 |
-
Epoch 00043 | LR 6.4910e-05 | Loss 13.9571 | Accuracy 0.8372 | Test_Loss 28.1316 | Test_AUC 0.0000 | Time 282.0029 s
|
| 90 |
-
MultiLabel_Accuracy | 0.7695 | 0.5994 | 0.5348 | 0.5192 | 0.9044 | 0.7233 | 0.8561 | 0.6573 | 0.9652 | 0.8321 | 0.9076 | 0.9074 | 0.8316 | 0.8933 | 0.8935 | 0.7987 | 0.8932 | 0.8354 | 0.9852 | 0.7979 | 0.9274 | 0.8829 | 0.8077 | 0.8077 | 0.8832 | 0.8453 | 0.8454 | 0.8456 | 0.8453 | 0.8359 | 0.9731 | 0.8007 | 0.9602 | 0.8843 | 0.8548 | 0.8545 | 0.8843 | 0.8695 | 0.8695 | 0.8696 | 0.8693
|
| 91 |
-
Epoch 00044 | LR 6.4261e-05 | Loss 13.9445 | Accuracy 0.8371 | Test_Loss 28.1224 | Test_AUC 0.0000 | Time 282.0396 s
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
README.md
CHANGED
|
The diff for this file is too large to render.
See raw diff
|
|
|
configs/delphes_contrastive.yaml
DELETED
|
@@ -1,81 +0,0 @@
|
|
| 1 |
-
# Contrastive (SimCLR) pretraining of the object transformer on the 12
|
| 2 |
-
# Delphes samples of configs/delphes_jepa.yaml, without their labels (same
|
| 3 |
-
# event cache): two random views of every event (rotation, eta flip, energy
|
| 4 |
-
# scale, object dropout) are pulled together (src/gnn4colliders/contrastive.py).
|
| 5 |
-
# Fine-tune with configs/gamgam_jepa_finetune.yaml
|
| 6 |
-
# model.pretrained=outputs/delphes_contrastive/last.pt, or compare encoders
|
| 7 |
-
# without fine-tuning: gnn4colliders probe configs/gamgam_jepa_finetune.yaml
|
| 8 |
-
# data.train_events=1000 split=validation model.pretrained=...
|
| 9 |
-
#
|
| 10 |
-
# gnn4colliders train configs/delphes_contrastive.yaml
|
| 11 |
-
name: delphes_contrastive
|
| 12 |
-
|
| 13 |
-
data:
|
| 14 |
-
hf_repo: HWresearch/Delphes
|
| 15 |
-
hf_revision: 76a6c362bfba8e766ba7255a5c08a55257f78d0e
|
| 16 |
-
files:
|
| 17 |
-
- {path: samples/higgs/top-associated/tth/ttH_NLO_inc.root, label: 0}
|
| 18 |
-
- {path: samples/higgs/top-associated/thjb/tHjb_NLO_inc.root, label: 1}
|
| 19 |
-
- {path: samples/higgs/ggf/ggF_NLO_inc.root, label: 2}
|
| 20 |
-
- {path: samples/higgs/vbf/VBF_NLO_inc.root, label: 3}
|
| 21 |
-
- {path: samples/higgs/vh/wh/WH_NLO_inc.root, label: 4}
|
| 22 |
-
- {path: samples/higgs/vh/zh/ZH_NLO_inc.root, label: 5}
|
| 23 |
-
- {path: samples/photon/ttyy/ttyy.root, label: 6}
|
| 24 |
-
- {path: samples/top/multitop/tttt.root, label: 7}
|
| 25 |
-
- {path: samples/top/single-top/SingleT_schan.root, label: 8}
|
| 26 |
-
- {path: samples/top/ttbar/ttbar.root, label: 9}
|
| 27 |
-
- {path: samples/top/ttv/ttW.root, label: 10}
|
| 28 |
-
- {path: samples/top/multitop/ttt.root, label: 11}
|
| 29 |
-
tree_name: output
|
| 30 |
-
feature_branches:
|
| 31 |
-
- [jet_pt, ele_pt, mu_pt, ph_pt, MET_met]
|
| 32 |
-
- [jet_eta, ele_eta, mu_eta, ph_eta, 0]
|
| 33 |
-
- [jet_phi, ele_phi, mu_phi, ph_phi, MET_phi]
|
| 34 |
-
- CALC_E
|
| 35 |
-
- [jet_btag, 0, 0, 0, 0]
|
| 36 |
-
- [0, ele_charge, mu_charge, 0, 0]
|
| 37 |
-
- NODE_TYPE
|
| 38 |
-
object_types: [vector, vector, vector, vector, single]
|
| 39 |
-
scales: [0.1, 1, 1, 0.1, 1, 1, 1]
|
| 40 |
-
# Number is the event index; Number % 10 is the fold. Pretraining trained
|
| 41 |
-
# on folds 2-9 and tested on 0-1; here fold 0 validates and fold 1 tests.
|
| 42 |
-
fold_var: Number
|
| 43 |
-
fold_modulus: 10
|
| 44 |
-
train_folds: [2, 3, 4, 5, 6, 7, 8, 9]
|
| 45 |
-
validation_folds: [0]
|
| 46 |
-
test_folds: [1]
|
| 47 |
-
# JEPA ignores labels and weights; the cache is that of
|
| 48 |
-
# configs/delphes_pretraining.yaml.
|
| 49 |
-
weight_var: weight
|
| 50 |
-
cache: outputs/delphes_pretraining/events.pt
|
| 51 |
-
batch_size: 1024
|
| 52 |
-
prepare_workers: 8
|
| 53 |
-
loader_workers: 4
|
| 54 |
-
pin_memory: true
|
| 55 |
-
|
| 56 |
-
model:
|
| 57 |
-
name: contrastive
|
| 58 |
-
backbone: transformer
|
| 59 |
-
# The encoder; configs/gamgam_jepa_finetune.yaml must match it.
|
| 60 |
-
hid_size: 128
|
| 61 |
-
n_layers: 4
|
| 62 |
-
n_heads: 8
|
| 63 |
-
ffn_size: 512
|
| 64 |
-
dropout: 0.0
|
| 65 |
-
pair_bias: true
|
| 66 |
-
temperature: 0.1
|
| 67 |
-
scale_jitter: 0.1
|
| 68 |
-
object_dropout: 0.1
|
| 69 |
-
|
| 70 |
-
task:
|
| 71 |
-
name: contrastive
|
| 72 |
-
|
| 73 |
-
train:
|
| 74 |
-
max_epochs: 30
|
| 75 |
-
optimizer: adamw
|
| 76 |
-
learning_rate: 5.0e-4
|
| 77 |
-
weight_decay: 0.05
|
| 78 |
-
lr_decay: 0.95
|
| 79 |
-
early_stopping: null
|
| 80 |
-
# Fine-tune from last.pt.
|
| 81 |
-
best_metric: loss
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
configs/delphes_jepa.yaml
DELETED
|
@@ -1,77 +0,0 @@
|
|
| 1 |
-
# JEPA pretraining of the object transformer on the 12 Delphes samples of
|
| 2 |
-
# the supervised pretraining (configs/delphes_pretraining.yaml), without
|
| 3 |
-
# their labels. Fine-tune with configs/gamgam_jepa_finetune.yaml.
|
| 4 |
-
#
|
| 5 |
-
# gnn4colliders prepare configs/delphes_jepa.yaml
|
| 6 |
-
# gnn4colliders train configs/delphes_jepa.yaml
|
| 7 |
-
name: delphes_jepa
|
| 8 |
-
|
| 9 |
-
data:
|
| 10 |
-
hf_repo: HWresearch/Delphes
|
| 11 |
-
hf_revision: 76a6c362bfba8e766ba7255a5c08a55257f78d0e
|
| 12 |
-
files:
|
| 13 |
-
- {path: samples/higgs/top-associated/tth/ttH_NLO_inc.root, label: 0}
|
| 14 |
-
- {path: samples/higgs/top-associated/thjb/tHjb_NLO_inc.root, label: 1}
|
| 15 |
-
- {path: samples/higgs/ggf/ggF_NLO_inc.root, label: 2}
|
| 16 |
-
- {path: samples/higgs/vbf/VBF_NLO_inc.root, label: 3}
|
| 17 |
-
- {path: samples/higgs/vh/wh/WH_NLO_inc.root, label: 4}
|
| 18 |
-
- {path: samples/higgs/vh/zh/ZH_NLO_inc.root, label: 5}
|
| 19 |
-
- {path: samples/photon/ttyy/ttyy.root, label: 6}
|
| 20 |
-
- {path: samples/top/multitop/tttt.root, label: 7}
|
| 21 |
-
- {path: samples/top/single-top/SingleT_schan.root, label: 8}
|
| 22 |
-
- {path: samples/top/ttbar/ttbar.root, label: 9}
|
| 23 |
-
- {path: samples/top/ttv/ttW.root, label: 10}
|
| 24 |
-
- {path: samples/top/multitop/ttt.root, label: 11}
|
| 25 |
-
tree_name: output
|
| 26 |
-
feature_branches:
|
| 27 |
-
- [jet_pt, ele_pt, mu_pt, ph_pt, MET_met]
|
| 28 |
-
- [jet_eta, ele_eta, mu_eta, ph_eta, 0]
|
| 29 |
-
- [jet_phi, ele_phi, mu_phi, ph_phi, MET_phi]
|
| 30 |
-
- CALC_E
|
| 31 |
-
- [jet_btag, 0, 0, 0, 0]
|
| 32 |
-
- [0, ele_charge, mu_charge, 0, 0]
|
| 33 |
-
- NODE_TYPE
|
| 34 |
-
object_types: [vector, vector, vector, vector, single]
|
| 35 |
-
scales: [0.1, 1, 1, 0.1, 1, 1, 1]
|
| 36 |
-
# Number is the event index; Number % 10 is the fold. Pretraining trained
|
| 37 |
-
# on folds 2-9 and tested on 0-1; here fold 0 validates and fold 1 tests.
|
| 38 |
-
fold_var: Number
|
| 39 |
-
fold_modulus: 10
|
| 40 |
-
train_folds: [2, 3, 4, 5, 6, 7, 8, 9]
|
| 41 |
-
validation_folds: [0]
|
| 42 |
-
test_folds: [1]
|
| 43 |
-
# JEPA ignores labels and weights; the cache is that of
|
| 44 |
-
# configs/delphes_pretraining.yaml.
|
| 45 |
-
weight_var: weight
|
| 46 |
-
cache: outputs/delphes_pretraining/events.pt
|
| 47 |
-
batch_size: 1024
|
| 48 |
-
prepare_workers: 8
|
| 49 |
-
loader_workers: 4
|
| 50 |
-
pin_memory: true
|
| 51 |
-
|
| 52 |
-
model:
|
| 53 |
-
name: jepa
|
| 54 |
-
# The encoder; configs/gamgam_jepa_finetune.yaml must match it.
|
| 55 |
-
hid_size: 128
|
| 56 |
-
n_layers: 4
|
| 57 |
-
n_heads: 8
|
| 58 |
-
ffn_size: 512
|
| 59 |
-
dropout: 0.0
|
| 60 |
-
pair_bias: true
|
| 61 |
-
predictor_layers: 2
|
| 62 |
-
mask_fraction: 0.4
|
| 63 |
-
ema_momentum: 0.996
|
| 64 |
-
|
| 65 |
-
task:
|
| 66 |
-
name: jepa
|
| 67 |
-
|
| 68 |
-
train:
|
| 69 |
-
max_epochs: 30
|
| 70 |
-
optimizer: adamw
|
| 71 |
-
learning_rate: 5.0e-4
|
| 72 |
-
weight_decay: 0.05
|
| 73 |
-
lr_decay: 0.95
|
| 74 |
-
early_stopping: null
|
| 75 |
-
# The target drifts with the EMA, so the loss does not compare epochs;
|
| 76 |
-
# fine-tune from last.pt.
|
| 77 |
-
best_metric: loss
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
configs/delphes_jepa_edge.yaml
DELETED
|
@@ -1,82 +0,0 @@
|
|
| 1 |
-
# JEPA pretraining of the edge network, of the size of the supervised
|
| 2 |
-
# pretrained models (Pretrained_GNN/), on the same 12 Delphes samples without
|
| 3 |
-
# their labels. Fine-tune with configs/gamgam_finetune.yaml and
|
| 4 |
-
# model.pretrained=outputs/delphes_jepa_edge/last.pt.
|
| 5 |
-
#
|
| 6 |
-
# gnn4colliders prepare configs/delphes_jepa_edge.yaml
|
| 7 |
-
# gnn4colliders train configs/delphes_jepa_edge.yaml
|
| 8 |
-
name: delphes_jepa_edge
|
| 9 |
-
|
| 10 |
-
data:
|
| 11 |
-
hf_repo: HWresearch/Delphes
|
| 12 |
-
hf_revision: 76a6c362bfba8e766ba7255a5c08a55257f78d0e
|
| 13 |
-
files:
|
| 14 |
-
- {path: samples/higgs/top-associated/tth/ttH_NLO_inc.root, label: 0}
|
| 15 |
-
- {path: samples/higgs/top-associated/thjb/tHjb_NLO_inc.root, label: 1}
|
| 16 |
-
- {path: samples/higgs/ggf/ggF_NLO_inc.root, label: 2}
|
| 17 |
-
- {path: samples/higgs/vbf/VBF_NLO_inc.root, label: 3}
|
| 18 |
-
- {path: samples/higgs/vh/wh/WH_NLO_inc.root, label: 4}
|
| 19 |
-
- {path: samples/higgs/vh/zh/ZH_NLO_inc.root, label: 5}
|
| 20 |
-
- {path: samples/photon/ttyy/ttyy.root, label: 6}
|
| 21 |
-
- {path: samples/top/multitop/tttt.root, label: 7}
|
| 22 |
-
- {path: samples/top/single-top/SingleT_schan.root, label: 8}
|
| 23 |
-
- {path: samples/top/ttbar/ttbar.root, label: 9}
|
| 24 |
-
- {path: samples/top/ttv/ttW.root, label: 10}
|
| 25 |
-
- {path: samples/top/multitop/ttt.root, label: 11}
|
| 26 |
-
tree_name: output
|
| 27 |
-
feature_branches:
|
| 28 |
-
- [jet_pt, ele_pt, mu_pt, ph_pt, MET_met]
|
| 29 |
-
- [jet_eta, ele_eta, mu_eta, ph_eta, 0]
|
| 30 |
-
- [jet_phi, ele_phi, mu_phi, ph_phi, MET_phi]
|
| 31 |
-
- CALC_E
|
| 32 |
-
- [jet_btag, 0, 0, 0, 0]
|
| 33 |
-
- [0, ele_charge, mu_charge, 0, 0]
|
| 34 |
-
- NODE_TYPE
|
| 35 |
-
object_types: [vector, vector, vector, vector, single]
|
| 36 |
-
scales: [0.1, 1, 1, 0.1, 1, 1, 1]
|
| 37 |
-
# Number is the event index; Number % 10 is the fold. Pretraining trained
|
| 38 |
-
# on folds 2-9 and tested on 0-1; here fold 0 validates and fold 1 tests.
|
| 39 |
-
fold_var: Number
|
| 40 |
-
fold_modulus: 10
|
| 41 |
-
train_folds: [2, 3, 4, 5, 6, 7, 8, 9]
|
| 42 |
-
validation_folds: [0]
|
| 43 |
-
test_folds: [1]
|
| 44 |
-
# JEPA ignores labels and weights; the cache is that of
|
| 45 |
-
# configs/delphes_pretraining.yaml.
|
| 46 |
-
weight_var: weight
|
| 47 |
-
cache: outputs/delphes_pretraining/events.pt
|
| 48 |
-
batch_size: 1024
|
| 49 |
-
prepare_workers: 8
|
| 50 |
-
loader_workers: 4
|
| 51 |
-
pin_memory: true
|
| 52 |
-
|
| 53 |
-
model:
|
| 54 |
-
name: jepa
|
| 55 |
-
backbone: edge_network
|
| 56 |
-
# The encoder: as in Pretrained_GNN/*/config.yaml.
|
| 57 |
-
hid_size: 64
|
| 58 |
-
n_layers: 4
|
| 59 |
-
n_proc_steps: 4
|
| 60 |
-
dropout: 0.0
|
| 61 |
-
# The predictor: transformer blocks.
|
| 62 |
-
predictor_layers: 2
|
| 63 |
-
n_heads: 4
|
| 64 |
-
ffn_size: 256
|
| 65 |
-
mask_fraction: 0.4
|
| 66 |
-
ema_momentum: 0.996
|
| 67 |
-
# Without it the encodings collapse (docs/design.md, JEPA pretraining).
|
| 68 |
-
variance_weight: 0.1
|
| 69 |
-
|
| 70 |
-
task:
|
| 71 |
-
name: jepa
|
| 72 |
-
|
| 73 |
-
train:
|
| 74 |
-
max_epochs: 30
|
| 75 |
-
optimizer: adamw
|
| 76 |
-
learning_rate: 5.0e-4
|
| 77 |
-
weight_decay: 0.05
|
| 78 |
-
lr_decay: 0.95
|
| 79 |
-
early_stopping: null
|
| 80 |
-
# The target drifts with the EMA, so the loss does not compare epochs;
|
| 81 |
-
# fine-tune from last.pt.
|
| 82 |
-
best_metric: loss
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
configs/delphes_masked.yaml
DELETED
|
@@ -1,78 +0,0 @@
|
|
| 1 |
-
# Masked object modelling of the object transformer on the 12 Delphes
|
| 2 |
-
# samples of configs/delphes_jepa.yaml, without their labels (same event
|
| 3 |
-
# cache): JEPA's masking and predictor, but the predictor predicts the hidden
|
| 4 |
-
# objects' kinematics instead of their target encodings (model.jepa_target:
|
| 5 |
-
# features; src/gnn4colliders/jepa.py). Fine-tune or probe with
|
| 6 |
-
# configs/gamgam_jepa_finetune.yaml model.pretrained=outputs/delphes_masked/last.pt.
|
| 7 |
-
#
|
| 8 |
-
# gnn4colliders train configs/delphes_masked.yaml
|
| 9 |
-
name: delphes_masked
|
| 10 |
-
|
| 11 |
-
data:
|
| 12 |
-
hf_repo: HWresearch/Delphes
|
| 13 |
-
hf_revision: 76a6c362bfba8e766ba7255a5c08a55257f78d0e
|
| 14 |
-
files:
|
| 15 |
-
- {path: samples/higgs/top-associated/tth/ttH_NLO_inc.root, label: 0}
|
| 16 |
-
- {path: samples/higgs/top-associated/thjb/tHjb_NLO_inc.root, label: 1}
|
| 17 |
-
- {path: samples/higgs/ggf/ggF_NLO_inc.root, label: 2}
|
| 18 |
-
- {path: samples/higgs/vbf/VBF_NLO_inc.root, label: 3}
|
| 19 |
-
- {path: samples/higgs/vh/wh/WH_NLO_inc.root, label: 4}
|
| 20 |
-
- {path: samples/higgs/vh/zh/ZH_NLO_inc.root, label: 5}
|
| 21 |
-
- {path: samples/photon/ttyy/ttyy.root, label: 6}
|
| 22 |
-
- {path: samples/top/multitop/tttt.root, label: 7}
|
| 23 |
-
- {path: samples/top/single-top/SingleT_schan.root, label: 8}
|
| 24 |
-
- {path: samples/top/ttbar/ttbar.root, label: 9}
|
| 25 |
-
- {path: samples/top/ttv/ttW.root, label: 10}
|
| 26 |
-
- {path: samples/top/multitop/ttt.root, label: 11}
|
| 27 |
-
tree_name: output
|
| 28 |
-
feature_branches:
|
| 29 |
-
- [jet_pt, ele_pt, mu_pt, ph_pt, MET_met]
|
| 30 |
-
- [jet_eta, ele_eta, mu_eta, ph_eta, 0]
|
| 31 |
-
- [jet_phi, ele_phi, mu_phi, ph_phi, MET_phi]
|
| 32 |
-
- CALC_E
|
| 33 |
-
- [jet_btag, 0, 0, 0, 0]
|
| 34 |
-
- [0, ele_charge, mu_charge, 0, 0]
|
| 35 |
-
- NODE_TYPE
|
| 36 |
-
object_types: [vector, vector, vector, vector, single]
|
| 37 |
-
scales: [0.1, 1, 1, 0.1, 1, 1, 1]
|
| 38 |
-
# Number is the event index; Number % 10 is the fold. Pretraining trained
|
| 39 |
-
# on folds 2-9 and tested on 0-1; here fold 0 validates and fold 1 tests.
|
| 40 |
-
fold_var: Number
|
| 41 |
-
fold_modulus: 10
|
| 42 |
-
train_folds: [2, 3, 4, 5, 6, 7, 8, 9]
|
| 43 |
-
validation_folds: [0]
|
| 44 |
-
test_folds: [1]
|
| 45 |
-
# JEPA ignores labels and weights; the cache is that of
|
| 46 |
-
# configs/delphes_pretraining.yaml.
|
| 47 |
-
weight_var: weight
|
| 48 |
-
cache: outputs/delphes_pretraining/events.pt
|
| 49 |
-
batch_size: 1024
|
| 50 |
-
prepare_workers: 8
|
| 51 |
-
loader_workers: 4
|
| 52 |
-
pin_memory: true
|
| 53 |
-
|
| 54 |
-
model:
|
| 55 |
-
name: jepa
|
| 56 |
-
jepa_target: features
|
| 57 |
-
# The encoder; configs/gamgam_jepa_finetune.yaml must match it.
|
| 58 |
-
hid_size: 128
|
| 59 |
-
n_layers: 4
|
| 60 |
-
n_heads: 8
|
| 61 |
-
ffn_size: 512
|
| 62 |
-
dropout: 0.0
|
| 63 |
-
pair_bias: true
|
| 64 |
-
predictor_layers: 2
|
| 65 |
-
mask_fraction: 0.4
|
| 66 |
-
|
| 67 |
-
task:
|
| 68 |
-
name: jepa
|
| 69 |
-
|
| 70 |
-
train:
|
| 71 |
-
max_epochs: 30
|
| 72 |
-
optimizer: adamw
|
| 73 |
-
learning_rate: 5.0e-4
|
| 74 |
-
weight_decay: 0.05
|
| 75 |
-
lr_decay: 0.95
|
| 76 |
-
early_stopping: null
|
| 77 |
-
# Fine-tune from last.pt.
|
| 78 |
-
best_metric: loss
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
configs/delphes_pfn.yaml
DELETED
|
@@ -1,86 +0,0 @@
|
|
| 1 |
-
# Meta-training of a prior-fitted network (src/gnn4colliders/pfn.py) on
|
| 2 |
-
# classification tasks drawn from the 12 Delphes samples: it learns to
|
| 3 |
-
# classify events given labelled context events, and is then evaluated in
|
| 4 |
-
# context on new data (configs/gamgam_pfn.yaml). The encoder has the sizes of
|
| 5 |
-
# configs/delphes_jepa.yaml, so model.pretrained=outputs/delphes_jepa/last.pt
|
| 6 |
-
# starts it from the JEPA encoder. task.prior_classes=[1,6,7,8,9,10,11]
|
| 7 |
-
# leaves out the five processes of the GamGam task (ttH, ggF, VBF, WH, ZH).
|
| 8 |
-
#
|
| 9 |
-
# gnn4colliders train configs/delphes_pfn.yaml
|
| 10 |
-
name: delphes_pfn
|
| 11 |
-
|
| 12 |
-
data:
|
| 13 |
-
hf_repo: HWresearch/Delphes
|
| 14 |
-
hf_revision: 76a6c362bfba8e766ba7255a5c08a55257f78d0e
|
| 15 |
-
files:
|
| 16 |
-
- {path: samples/higgs/top-associated/tth/ttH_NLO_inc.root, label: 0}
|
| 17 |
-
- {path: samples/higgs/top-associated/thjb/tHjb_NLO_inc.root, label: 1}
|
| 18 |
-
- {path: samples/higgs/ggf/ggF_NLO_inc.root, label: 2}
|
| 19 |
-
- {path: samples/higgs/vbf/VBF_NLO_inc.root, label: 3}
|
| 20 |
-
- {path: samples/higgs/vh/wh/WH_NLO_inc.root, label: 4}
|
| 21 |
-
- {path: samples/higgs/vh/zh/ZH_NLO_inc.root, label: 5}
|
| 22 |
-
- {path: samples/photon/ttyy/ttyy.root, label: 6}
|
| 23 |
-
- {path: samples/top/multitop/tttt.root, label: 7}
|
| 24 |
-
- {path: samples/top/single-top/SingleT_schan.root, label: 8}
|
| 25 |
-
- {path: samples/top/ttbar/ttbar.root, label: 9}
|
| 26 |
-
- {path: samples/top/ttv/ttW.root, label: 10}
|
| 27 |
-
- {path: samples/top/multitop/ttt.root, label: 11}
|
| 28 |
-
tree_name: output
|
| 29 |
-
feature_branches:
|
| 30 |
-
- [jet_pt, ele_pt, mu_pt, ph_pt, MET_met]
|
| 31 |
-
- [jet_eta, ele_eta, mu_eta, ph_eta, 0]
|
| 32 |
-
- [jet_phi, ele_phi, mu_phi, ph_phi, MET_phi]
|
| 33 |
-
- CALC_E
|
| 34 |
-
- [jet_btag, 0, 0, 0, 0]
|
| 35 |
-
- [0, ele_charge, mu_charge, 0, 0]
|
| 36 |
-
- NODE_TYPE
|
| 37 |
-
object_types: [vector, vector, vector, vector, single]
|
| 38 |
-
scales: [0.1, 1, 1, 0.1, 1, 1, 1]
|
| 39 |
-
# Number is the event index; Number % 10 is the fold. Pretraining trained
|
| 40 |
-
# on folds 2-9 and tested on 0-1; here fold 0 validates and fold 1 tests.
|
| 41 |
-
fold_var: Number
|
| 42 |
-
fold_modulus: 10
|
| 43 |
-
train_folds: [2, 3, 4, 5, 6, 7, 8, 9]
|
| 44 |
-
validation_folds: [0]
|
| 45 |
-
test_folds: [1]
|
| 46 |
-
# Tasks use the labels, not the weights; the cache is that of
|
| 47 |
-
# configs/delphes_pretraining.yaml.
|
| 48 |
-
weight_var: weight
|
| 49 |
-
cache: outputs/delphes_pretraining/events.pt
|
| 50 |
-
# Events per step (tasks of context and query events).
|
| 51 |
-
batch_size: 4096
|
| 52 |
-
prepare_workers: 8
|
| 53 |
-
loader_workers: 4
|
| 54 |
-
pin_memory: true
|
| 55 |
-
|
| 56 |
-
model:
|
| 57 |
-
name: pfn
|
| 58 |
-
hid_size: 128
|
| 59 |
-
n_layers: 4
|
| 60 |
-
n_heads: 8
|
| 61 |
-
ffn_size: 512
|
| 62 |
-
dropout: 0.0
|
| 63 |
-
pair_bias: true
|
| 64 |
-
pretrained: null
|
| 65 |
-
max_classes: 10
|
| 66 |
-
pfn_layers: 6
|
| 67 |
-
|
| 68 |
-
task:
|
| 69 |
-
name: pfn
|
| 70 |
-
# The prior: classes per task, context events (log-uniform) and queries.
|
| 71 |
-
prior_classes: null
|
| 72 |
-
task_classes: [2, 10]
|
| 73 |
-
context_events: [16, 2048]
|
| 74 |
-
query_events: 256
|
| 75 |
-
energy_jitter: 0.2
|
| 76 |
-
steps_per_epoch: 1000
|
| 77 |
-
validation_steps: 50
|
| 78 |
-
|
| 79 |
-
train:
|
| 80 |
-
max_epochs: 50
|
| 81 |
-
optimizer: adamw
|
| 82 |
-
learning_rate: 1.0e-4
|
| 83 |
-
weight_decay: 0.01
|
| 84 |
-
lr_decay: 0.95
|
| 85 |
-
early_stopping: null
|
| 86 |
-
best_metric: loss
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
configs/delphes_pretraining.yaml
DELETED
|
@@ -1,61 +0,0 @@
|
|
| 1 |
-
# 12-class pretraining on the Delphes samples of Ho et al. (2026), read from
|
| 2 |
-
# the HWresearch/Delphes Hugging Face dataset.
|
| 3 |
-
name: delphes_pretraining
|
| 4 |
-
|
| 5 |
-
data:
|
| 6 |
-
hf_repo: HWresearch/Delphes
|
| 7 |
-
hf_revision: 76a6c362bfba8e766ba7255a5c08a55257f78d0e
|
| 8 |
-
files:
|
| 9 |
-
- {path: samples/higgs/top-associated/tth/ttH_NLO_inc.root, label: 0}
|
| 10 |
-
- {path: samples/higgs/top-associated/thjb/tHjb_NLO_inc.root, label: 1}
|
| 11 |
-
- {path: samples/higgs/ggf/ggF_NLO_inc.root, label: 2}
|
| 12 |
-
- {path: samples/higgs/vbf/VBF_NLO_inc.root, label: 3}
|
| 13 |
-
- {path: samples/higgs/vh/wh/WH_NLO_inc.root, label: 4}
|
| 14 |
-
- {path: samples/higgs/vh/zh/ZH_NLO_inc.root, label: 5}
|
| 15 |
-
- {path: samples/photon/ttyy/ttyy.root, label: 6}
|
| 16 |
-
- {path: samples/top/multitop/tttt.root, label: 7}
|
| 17 |
-
- {path: samples/top/single-top/SingleT_schan.root, label: 8}
|
| 18 |
-
- {path: samples/top/ttbar/ttbar.root, label: 9}
|
| 19 |
-
- {path: samples/top/ttv/ttW.root, label: 10}
|
| 20 |
-
- {path: samples/top/multitop/ttt.root, label: 11}
|
| 21 |
-
tree_name: output
|
| 22 |
-
feature_branches:
|
| 23 |
-
- [jet_pt, ele_pt, mu_pt, ph_pt, MET_met]
|
| 24 |
-
- [jet_eta, ele_eta, mu_eta, ph_eta, 0]
|
| 25 |
-
- [jet_phi, ele_phi, mu_phi, ph_phi, MET_phi]
|
| 26 |
-
- CALC_E
|
| 27 |
-
- [jet_btag, 0, 0, 0, 0]
|
| 28 |
-
- [0, ele_charge, mu_charge, 0, 0]
|
| 29 |
-
- NODE_TYPE
|
| 30 |
-
object_types: [vector, vector, vector, vector, single]
|
| 31 |
-
scales: [0.1, 1, 1, 0.1, 1, 1, 1]
|
| 32 |
-
# Number is the event index; Number % 10 is the fold. Pretraining trained
|
| 33 |
-
# on folds 2-9 and tested on 0-1; here fold 0 validates and fold 1 tests.
|
| 34 |
-
fold_var: Number
|
| 35 |
-
fold_modulus: 10
|
| 36 |
-
train_folds: [2, 3, 4, 5, 6, 7, 8, 9]
|
| 37 |
-
validation_folds: [0]
|
| 38 |
-
test_folds: [1]
|
| 39 |
-
weight_var: weight
|
| 40 |
-
cache: outputs/delphes_pretraining/events.pt
|
| 41 |
-
batch_size: 1024
|
| 42 |
-
prepare_workers: 8
|
| 43 |
-
loader_workers: 4
|
| 44 |
-
pin_memory: true
|
| 45 |
-
|
| 46 |
-
model:
|
| 47 |
-
name: edge_network
|
| 48 |
-
hid_size: 64
|
| 49 |
-
out_size: 12
|
| 50 |
-
n_layers: 4
|
| 51 |
-
n_proc_steps: 4
|
| 52 |
-
|
| 53 |
-
task:
|
| 54 |
-
name: multiclass
|
| 55 |
-
|
| 56 |
-
train:
|
| 57 |
-
max_epochs: 100
|
| 58 |
-
learning_rate: 1.0e-4
|
| 59 |
-
lr_decay: 0.99
|
| 60 |
-
early_stopping: {monitor: train_loss, patience: 5, min_delta: 0.0}
|
| 61 |
-
best_metric: auc
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
configs/delphes_tabicl.yaml
DELETED
|
@@ -1,89 +0,0 @@
|
|
| 1 |
-
# Meta-training of the TabICL network (src/gnn4colliders/tabular.py; BSD-3,
|
| 2 |
-
# so meta-trained weights can be shared freely) on the classification tasks
|
| 3 |
-
# of configs/delphes_pfn.yaml, on the fixed-width event rows of
|
| 4 |
-
# configs/gamgam_tabicl.yaml. By default TabICL is frozen and its in-context
|
| 5 |
-
# blocks learn LoRA updates (model.lora_rank; 0 trains all 28M weights).
|
| 6 |
-
# task.prior_classes=[1,6,7,8,9,10,11] leaves out the five processes of the
|
| 7 |
-
# GamGam task. Evaluate in context with
|
| 8 |
-
# gnn4colliders evaluate configs/gamgam_tabicl.yaml split=validation \
|
| 9 |
-
# checkpoint=outputs/delphes_tabicl/best.pt
|
| 10 |
-
# Needs `uv sync --extra tabicl`.
|
| 11 |
-
#
|
| 12 |
-
# gnn4colliders train configs/delphes_tabicl.yaml
|
| 13 |
-
name: delphes_tabicl
|
| 14 |
-
|
| 15 |
-
data:
|
| 16 |
-
hf_repo: HWresearch/Delphes
|
| 17 |
-
hf_revision: 76a6c362bfba8e766ba7255a5c08a55257f78d0e
|
| 18 |
-
files:
|
| 19 |
-
- {path: samples/higgs/top-associated/tth/ttH_NLO_inc.root, label: 0}
|
| 20 |
-
- {path: samples/higgs/top-associated/thjb/tHjb_NLO_inc.root, label: 1}
|
| 21 |
-
- {path: samples/higgs/ggf/ggF_NLO_inc.root, label: 2}
|
| 22 |
-
- {path: samples/higgs/vbf/VBF_NLO_inc.root, label: 3}
|
| 23 |
-
- {path: samples/higgs/vh/wh/WH_NLO_inc.root, label: 4}
|
| 24 |
-
- {path: samples/higgs/vh/zh/ZH_NLO_inc.root, label: 5}
|
| 25 |
-
- {path: samples/photon/ttyy/ttyy.root, label: 6}
|
| 26 |
-
- {path: samples/top/multitop/tttt.root, label: 7}
|
| 27 |
-
- {path: samples/top/single-top/SingleT_schan.root, label: 8}
|
| 28 |
-
- {path: samples/top/ttbar/ttbar.root, label: 9}
|
| 29 |
-
- {path: samples/top/ttv/ttW.root, label: 10}
|
| 30 |
-
- {path: samples/top/multitop/ttt.root, label: 11}
|
| 31 |
-
tree_name: output
|
| 32 |
-
feature_branches:
|
| 33 |
-
- [jet_pt, ele_pt, mu_pt, ph_pt, MET_met]
|
| 34 |
-
- [jet_eta, ele_eta, mu_eta, ph_eta, 0]
|
| 35 |
-
- [jet_phi, ele_phi, mu_phi, ph_phi, MET_phi]
|
| 36 |
-
- CALC_E
|
| 37 |
-
- [jet_btag, 0, 0, 0, 0]
|
| 38 |
-
- [0, ele_charge, mu_charge, 0, 0]
|
| 39 |
-
- NODE_TYPE
|
| 40 |
-
object_types: [vector, vector, vector, vector, single]
|
| 41 |
-
scales: [0.1, 1, 1, 0.1, 1, 1, 1]
|
| 42 |
-
# Number is the event index; Number % 10 is the fold. Pretraining trained
|
| 43 |
-
# on folds 2-9 and tested on 0-1; here fold 0 validates and fold 1 tests.
|
| 44 |
-
fold_var: Number
|
| 45 |
-
fold_modulus: 10
|
| 46 |
-
train_folds: [2, 3, 4, 5, 6, 7, 8, 9]
|
| 47 |
-
validation_folds: [0]
|
| 48 |
-
test_folds: [1]
|
| 49 |
-
# Tasks use the labels, not the weights; the cache is that of
|
| 50 |
-
# configs/delphes_pretraining.yaml.
|
| 51 |
-
weight_var: weight
|
| 52 |
-
cache: outputs/delphes_pretraining/events.pt
|
| 53 |
-
# Events per step (tasks of context and query events). TabICL (28M
|
| 54 |
-
# weights) recomputes activations in the backward pass.
|
| 55 |
-
batch_size: 4096
|
| 56 |
-
prepare_workers: 8
|
| 57 |
-
loader_workers: 4
|
| 58 |
-
pin_memory: true
|
| 59 |
-
|
| 60 |
-
model:
|
| 61 |
-
name: tabicl
|
| 62 |
-
tabicl_checkpoint: tabicl-classifier-v2-20260212.ckpt
|
| 63 |
-
# Leading jets, electrons, muons, photons and MET in a table row.
|
| 64 |
-
slots: [6, 2, 2, 3, 1]
|
| 65 |
-
# As in configs/gamgam_tabicl.yaml, which evaluates this model.
|
| 66 |
-
relative_phi: false
|
| 67 |
-
pair_objects: 0
|
| 68 |
-
max_classes: 10
|
| 69 |
-
lora_rank: 8
|
| 70 |
-
|
| 71 |
-
task:
|
| 72 |
-
name: pfn
|
| 73 |
-
# The prior: classes per task, context events (log-uniform) and queries.
|
| 74 |
-
prior_classes: null
|
| 75 |
-
task_classes: [2, 10]
|
| 76 |
-
context_events: [16, 2048]
|
| 77 |
-
query_events: 256
|
| 78 |
-
energy_jitter: 0.2
|
| 79 |
-
steps_per_epoch: 500
|
| 80 |
-
validation_steps: 50
|
| 81 |
-
|
| 82 |
-
train:
|
| 83 |
-
max_epochs: 20
|
| 84 |
-
optimizer: adamw
|
| 85 |
-
learning_rate: 1.0e-4
|
| 86 |
-
weight_decay: 0.01
|
| 87 |
-
lr_decay: 0.95
|
| 88 |
-
early_stopping: null
|
| 89 |
-
best_metric: loss
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
configs/delphes_tabpfn.yaml
DELETED
|
@@ -1,89 +0,0 @@
|
|
| 1 |
-
# Meta-training of the TabPFN-3.5 network (src/gnn4colliders/tabular.py) on
|
| 2 |
-
# the classification tasks of configs/delphes_pfn.yaml, on the fixed-width
|
| 3 |
-
# event rows of configs/gamgam_tabpfn.yaml. By default TabPFN is frozen and
|
| 4 |
-
# its in-context blocks learn LoRA updates (model.lora_rank; 0 trains all
|
| 5 |
-
# weights). task.prior_classes=[1,6,7,8,9,10,11] leaves out the five
|
| 6 |
-
# processes of the GamGam task. Evaluate in context with
|
| 7 |
-
# gnn4colliders evaluate configs/gamgam_tabpfn.yaml split=validation \
|
| 8 |
-
# checkpoint=outputs/delphes_tabpfn/best.pt
|
| 9 |
-
# Needs `uv sync --extra tabpfn` and the TabPFN-3.5 weights (docs/usage.md).
|
| 10 |
-
#
|
| 11 |
-
# gnn4colliders train configs/delphes_tabpfn.yaml
|
| 12 |
-
name: delphes_tabpfn
|
| 13 |
-
|
| 14 |
-
data:
|
| 15 |
-
hf_repo: HWresearch/Delphes
|
| 16 |
-
hf_revision: 76a6c362bfba8e766ba7255a5c08a55257f78d0e
|
| 17 |
-
files:
|
| 18 |
-
- {path: samples/higgs/top-associated/tth/ttH_NLO_inc.root, label: 0}
|
| 19 |
-
- {path: samples/higgs/top-associated/thjb/tHjb_NLO_inc.root, label: 1}
|
| 20 |
-
- {path: samples/higgs/ggf/ggF_NLO_inc.root, label: 2}
|
| 21 |
-
- {path: samples/higgs/vbf/VBF_NLO_inc.root, label: 3}
|
| 22 |
-
- {path: samples/higgs/vh/wh/WH_NLO_inc.root, label: 4}
|
| 23 |
-
- {path: samples/higgs/vh/zh/ZH_NLO_inc.root, label: 5}
|
| 24 |
-
- {path: samples/photon/ttyy/ttyy.root, label: 6}
|
| 25 |
-
- {path: samples/top/multitop/tttt.root, label: 7}
|
| 26 |
-
- {path: samples/top/single-top/SingleT_schan.root, label: 8}
|
| 27 |
-
- {path: samples/top/ttbar/ttbar.root, label: 9}
|
| 28 |
-
- {path: samples/top/ttv/ttW.root, label: 10}
|
| 29 |
-
- {path: samples/top/multitop/ttt.root, label: 11}
|
| 30 |
-
tree_name: output
|
| 31 |
-
feature_branches:
|
| 32 |
-
- [jet_pt, ele_pt, mu_pt, ph_pt, MET_met]
|
| 33 |
-
- [jet_eta, ele_eta, mu_eta, ph_eta, 0]
|
| 34 |
-
- [jet_phi, ele_phi, mu_phi, ph_phi, MET_phi]
|
| 35 |
-
- CALC_E
|
| 36 |
-
- [jet_btag, 0, 0, 0, 0]
|
| 37 |
-
- [0, ele_charge, mu_charge, 0, 0]
|
| 38 |
-
- NODE_TYPE
|
| 39 |
-
object_types: [vector, vector, vector, vector, single]
|
| 40 |
-
scales: [0.1, 1, 1, 0.1, 1, 1, 1]
|
| 41 |
-
# Number is the event index; Number % 10 is the fold. Pretraining trained
|
| 42 |
-
# on folds 2-9 and tested on 0-1; here fold 0 validates and fold 1 tests.
|
| 43 |
-
fold_var: Number
|
| 44 |
-
fold_modulus: 10
|
| 45 |
-
train_folds: [2, 3, 4, 5, 6, 7, 8, 9]
|
| 46 |
-
validation_folds: [0]
|
| 47 |
-
test_folds: [1]
|
| 48 |
-
# Tasks use the labels, not the weights; the cache is that of
|
| 49 |
-
# configs/delphes_pretraining.yaml.
|
| 50 |
-
weight_var: weight
|
| 51 |
-
cache: outputs/delphes_pretraining/events.pt
|
| 52 |
-
# Events per step (tasks of context and query events): one task of the
|
| 53 |
-
# largest context. TabPFN recomputes activations in the backward pass.
|
| 54 |
-
batch_size: 2304
|
| 55 |
-
prepare_workers: 8
|
| 56 |
-
loader_workers: 4
|
| 57 |
-
pin_memory: true
|
| 58 |
-
|
| 59 |
-
model:
|
| 60 |
-
name: tabpfn
|
| 61 |
-
tabpfn_version: v3.5
|
| 62 |
-
tabpfn_checkpoint: null
|
| 63 |
-
# Leading jets, electrons, muons, photons and MET in a table row.
|
| 64 |
-
slots: [6, 2, 2, 3, 1]
|
| 65 |
-
# As in configs/gamgam_tabpfn.yaml, which evaluates this model.
|
| 66 |
-
relative_phi: false
|
| 67 |
-
pair_objects: 0
|
| 68 |
-
max_classes: 10
|
| 69 |
-
lora_rank: 8
|
| 70 |
-
|
| 71 |
-
task:
|
| 72 |
-
name: pfn
|
| 73 |
-
# The prior: classes per task, context events (log-uniform) and queries.
|
| 74 |
-
prior_classes: null
|
| 75 |
-
task_classes: [2, 10]
|
| 76 |
-
context_events: [16, 2048]
|
| 77 |
-
query_events: 256
|
| 78 |
-
energy_jitter: 0.2
|
| 79 |
-
steps_per_epoch: 500
|
| 80 |
-
validation_steps: 50
|
| 81 |
-
|
| 82 |
-
train:
|
| 83 |
-
max_epochs: 20
|
| 84 |
-
optimizer: adamw
|
| 85 |
-
learning_rate: 1.0e-4
|
| 86 |
-
weight_decay: 0.01
|
| 87 |
-
lr_decay: 0.95
|
| 88 |
-
early_stopping: null
|
| 89 |
-
best_metric: loss
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
configs/gamgam.yaml
DELETED
|
@@ -1,97 +0,0 @@
|
|
| 1 |
-
# Higgs production-mode classification on ATLAS Open Data (13 TeV, 2020
|
| 2 |
-
# release) GamGam MC: the 5-class from-scratch baseline of Ho et al.,
|
| 3 |
-
# JINST 21 (2026) P08006, Tables 1 and 3. 2,473,335 events.
|
| 4 |
-
#
|
| 5 |
-
# gnn4colliders prepare configs/gamgam.yaml
|
| 6 |
-
# gnn4colliders train configs/gamgam.yaml [train.fast=true] [train.seed=2]
|
| 7 |
-
# gnn4colliders evaluate configs/gamgam.yaml
|
| 8 |
-
name: gamgam
|
| 9 |
-
|
| 10 |
-
data:
|
| 11 |
-
hf_repo: ho22joshua/atlas_opendata
|
| 12 |
-
hf_revision: d1bcc9ccaa304ea09e11f7d724342568f72a0d6e
|
| 13 |
-
files:
|
| 14 |
-
- path: GamGam/2020/MC/mc_341081.ttH125_gamgam.GamGam.root
|
| 15 |
-
label: 0
|
| 16 |
-
size_bytes: 217819076
|
| 17 |
-
sha256: c498974926f6c55143d17fc4d3d6fa69bd3718ff92cf7d5cad5c3d67a836c7b7
|
| 18 |
-
- path: GamGam/2020/MC/mc_343981.ggH125_gamgam.GamGam.root
|
| 19 |
-
label: 1
|
| 20 |
-
size_bytes: 218418347
|
| 21 |
-
sha256: 05b3e6709e8836a7b862a7fde09086b3a9d4d494d62a6984d5df39d8daad13eb
|
| 22 |
-
- path: GamGam/2020/MC/mc_345041.VBFH125_gamgam.GamGam.root
|
| 23 |
-
label: 2
|
| 24 |
-
size_bytes: 108616148
|
| 25 |
-
sha256: 92334fce3bffc9eb6e0745dd6ef354d5ce33da764858511b8f9ca49b862b44e2
|
| 26 |
-
- path: GamGam/2020/MC/mc_345318.WpH125J_Wincl_gamgam.GamGam.root
|
| 27 |
-
label: 3
|
| 28 |
-
size_bytes: 29757932
|
| 29 |
-
sha256: f255a9c3c6935f976f788b6f32d9a8f6bf576eb12ecd03a6f3fd0a5dea9d1248
|
| 30 |
-
- path: GamGam/2020/MC/mc_345319.ZH125J_Zincl_gamgam.GamGam.root
|
| 31 |
-
label: 4
|
| 32 |
-
size_bytes: 58701804
|
| 33 |
-
sha256: c85623b04ac0176c64acdb2ecf8e992a63824cfc430a421df742319518ff6748
|
| 34 |
-
class_names: [ttH, ggF, VBF, WH, ZH]
|
| 35 |
-
tree_name: mini
|
| 36 |
-
# Electrons and muons share the lep_* collection; b-tagging uses the
|
| 37 |
-
# MV2c10 70% efficiency working point of the Open Data documentation.
|
| 38 |
-
derived_branches:
|
| 39 |
-
ele_pt: {source: lep_pt, where: {lep_type: 11}}
|
| 40 |
-
ele_eta: {source: lep_eta, where: {lep_type: 11}}
|
| 41 |
-
ele_phi: {source: lep_phi, where: {lep_type: 11}}
|
| 42 |
-
ele_charge: {source: lep_charge, where: {lep_type: 11}}
|
| 43 |
-
mu_pt: {source: lep_pt, where: {lep_type: 13}}
|
| 44 |
-
mu_eta: {source: lep_eta, where: {lep_type: 13}}
|
| 45 |
-
mu_phi: {source: lep_phi, where: {lep_type: 13}}
|
| 46 |
-
mu_charge: {source: lep_charge, where: {lep_type: 13}}
|
| 47 |
-
jet_btag: {source: jet_MV2c10, above: 0.8244273}
|
| 48 |
-
# Object types (node types) as in pretraining: jet, electron, muon, photon, MET.
|
| 49 |
-
feature_branches:
|
| 50 |
-
- [jet_pt, ele_pt, mu_pt, photon_pt, met_et]
|
| 51 |
-
- [jet_eta, ele_eta, mu_eta, photon_eta, 0]
|
| 52 |
-
- [jet_phi, ele_phi, mu_phi, photon_phi, met_phi]
|
| 53 |
-
- CALC_E
|
| 54 |
-
- [jet_btag, 0, 0, 0, 0]
|
| 55 |
-
- [0, ele_charge, mu_charge, 0, 0]
|
| 56 |
-
- NODE_TYPE
|
| 57 |
-
object_types: [vector, vector, vector, vector, single]
|
| 58 |
-
# Momenta are in MeV; 1e-4 gives the pretraining unit of 10 GeV.
|
| 59 |
-
scales: [1.0e-4, 1, 1, 1.0e-4, 1, 1, 1]
|
| 60 |
-
# eventNumber % 10 gives the paper's 80:10:10 train:validation:test split.
|
| 61 |
-
fold_var: eventNumber
|
| 62 |
-
fold_modulus: 10
|
| 63 |
-
train_folds: [0, 1, 2, 3, 4, 5, 6, 7]
|
| 64 |
-
validation_folds: [8]
|
| 65 |
-
test_folds: [9]
|
| 66 |
-
# Unweighted: each event counts once and classes are balanced by the
|
| 67 |
-
# per-class mean loss (23% of ttH events have mcWeight = -1).
|
| 68 |
-
weight_var: null
|
| 69 |
-
cache: outputs/gamgam/events.pt
|
| 70 |
-
batch_size: 1024
|
| 71 |
-
prepare_workers: 8
|
| 72 |
-
loader_workers: 4
|
| 73 |
-
pin_memory: true
|
| 74 |
-
|
| 75 |
-
# Baseline GNN of Ho et al. (2026), Table 1.
|
| 76 |
-
model:
|
| 77 |
-
name: edge_network
|
| 78 |
-
hid_size: 64
|
| 79 |
-
out_size: 5
|
| 80 |
-
n_layers: 4
|
| 81 |
-
n_proc_steps: 4
|
| 82 |
-
dropout: 0.0
|
| 83 |
-
|
| 84 |
-
task:
|
| 85 |
-
name: multiclass
|
| 86 |
-
|
| 87 |
-
# Sections 3.2 and 3.5: Adam at 1e-4 decayed by 0.99 per epoch, stopped
|
| 88 |
-
# after 5 epochs without training-loss improvement; the epoch with the best
|
| 89 |
-
# validation AUC is kept (best.pt). train.fast=true adds torch.compile, CUDA
|
| 90 |
-
# graphs, bfloat16 and TF32 (about 3x faster on an A100; results agree to
|
| 91 |
-
# rounding, not bitwise).
|
| 92 |
-
train:
|
| 93 |
-
max_epochs: 200
|
| 94 |
-
learning_rate: 1.0e-4
|
| 95 |
-
lr_decay: 0.99
|
| 96 |
-
early_stopping: {monitor: train_loss, patience: 5, min_delta: 0.0}
|
| 97 |
-
best_metric: auc
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
configs/gamgam_deep_sets.yaml
DELETED
|
@@ -1,88 +0,0 @@
|
|
| 1 |
-
# The GamGam 5-class task with Deep Sets (a per-object MLP, summed): the
|
| 2 |
-
# baseline without object interactions (no paper reference). Uses the cache
|
| 3 |
-
# of configs/gamgam.yaml.
|
| 4 |
-
#
|
| 5 |
-
# gnn4colliders train configs/gamgam_deep_sets.yaml
|
| 6 |
-
name: gamgam_deep_sets
|
| 7 |
-
|
| 8 |
-
data:
|
| 9 |
-
hf_repo: ho22joshua/atlas_opendata
|
| 10 |
-
hf_revision: d1bcc9ccaa304ea09e11f7d724342568f72a0d6e
|
| 11 |
-
files:
|
| 12 |
-
- path: GamGam/2020/MC/mc_341081.ttH125_gamgam.GamGam.root
|
| 13 |
-
label: 0
|
| 14 |
-
size_bytes: 217819076
|
| 15 |
-
sha256: c498974926f6c55143d17fc4d3d6fa69bd3718ff92cf7d5cad5c3d67a836c7b7
|
| 16 |
-
- path: GamGam/2020/MC/mc_343981.ggH125_gamgam.GamGam.root
|
| 17 |
-
label: 1
|
| 18 |
-
size_bytes: 218418347
|
| 19 |
-
sha256: 05b3e6709e8836a7b862a7fde09086b3a9d4d494d62a6984d5df39d8daad13eb
|
| 20 |
-
- path: GamGam/2020/MC/mc_345041.VBFH125_gamgam.GamGam.root
|
| 21 |
-
label: 2
|
| 22 |
-
size_bytes: 108616148
|
| 23 |
-
sha256: 92334fce3bffc9eb6e0745dd6ef354d5ce33da764858511b8f9ca49b862b44e2
|
| 24 |
-
- path: GamGam/2020/MC/mc_345318.WpH125J_Wincl_gamgam.GamGam.root
|
| 25 |
-
label: 3
|
| 26 |
-
size_bytes: 29757932
|
| 27 |
-
sha256: f255a9c3c6935f976f788b6f32d9a8f6bf576eb12ecd03a6f3fd0a5dea9d1248
|
| 28 |
-
- path: GamGam/2020/MC/mc_345319.ZH125J_Zincl_gamgam.GamGam.root
|
| 29 |
-
label: 4
|
| 30 |
-
size_bytes: 58701804
|
| 31 |
-
sha256: c85623b04ac0176c64acdb2ecf8e992a63824cfc430a421df742319518ff6748
|
| 32 |
-
class_names: [ttH, ggF, VBF, WH, ZH]
|
| 33 |
-
tree_name: mini
|
| 34 |
-
# Electrons and muons share the lep_* collection; b-tagging uses the
|
| 35 |
-
# MV2c10 70% efficiency working point of the Open Data documentation.
|
| 36 |
-
derived_branches:
|
| 37 |
-
ele_pt: {source: lep_pt, where: {lep_type: 11}}
|
| 38 |
-
ele_eta: {source: lep_eta, where: {lep_type: 11}}
|
| 39 |
-
ele_phi: {source: lep_phi, where: {lep_type: 11}}
|
| 40 |
-
ele_charge: {source: lep_charge, where: {lep_type: 11}}
|
| 41 |
-
mu_pt: {source: lep_pt, where: {lep_type: 13}}
|
| 42 |
-
mu_eta: {source: lep_eta, where: {lep_type: 13}}
|
| 43 |
-
mu_phi: {source: lep_phi, where: {lep_type: 13}}
|
| 44 |
-
mu_charge: {source: lep_charge, where: {lep_type: 13}}
|
| 45 |
-
jet_btag: {source: jet_MV2c10, above: 0.8244273}
|
| 46 |
-
# Object types (node types) as in pretraining: jet, electron, muon, photon, MET.
|
| 47 |
-
feature_branches:
|
| 48 |
-
- [jet_pt, ele_pt, mu_pt, photon_pt, met_et]
|
| 49 |
-
- [jet_eta, ele_eta, mu_eta, photon_eta, 0]
|
| 50 |
-
- [jet_phi, ele_phi, mu_phi, photon_phi, met_phi]
|
| 51 |
-
- CALC_E
|
| 52 |
-
- [jet_btag, 0, 0, 0, 0]
|
| 53 |
-
- [0, ele_charge, mu_charge, 0, 0]
|
| 54 |
-
- NODE_TYPE
|
| 55 |
-
object_types: [vector, vector, vector, vector, single]
|
| 56 |
-
# Momenta are in MeV; 1e-4 gives the pretraining unit of 10 GeV.
|
| 57 |
-
scales: [1.0e-4, 1, 1, 1.0e-4, 1, 1, 1]
|
| 58 |
-
# eventNumber % 10 gives the paper's 80:10:10 train:validation:test split.
|
| 59 |
-
fold_var: eventNumber
|
| 60 |
-
fold_modulus: 10
|
| 61 |
-
train_folds: [0, 1, 2, 3, 4, 5, 6, 7]
|
| 62 |
-
validation_folds: [8]
|
| 63 |
-
test_folds: [9]
|
| 64 |
-
# Unweighted: each event counts once and classes are balanced by the
|
| 65 |
-
# per-class mean loss (23% of ttH events have mcWeight = -1).
|
| 66 |
-
weight_var: null
|
| 67 |
-
cache: outputs/gamgam/events.pt
|
| 68 |
-
batch_size: 1024
|
| 69 |
-
prepare_workers: 8
|
| 70 |
-
loader_workers: 4
|
| 71 |
-
pin_memory: true
|
| 72 |
-
|
| 73 |
-
model:
|
| 74 |
-
name: deep_sets
|
| 75 |
-
hid_size: 64
|
| 76 |
-
out_size: 5
|
| 77 |
-
n_layers: 3
|
| 78 |
-
dropout: 0.0
|
| 79 |
-
|
| 80 |
-
task:
|
| 81 |
-
name: multiclass
|
| 82 |
-
|
| 83 |
-
train:
|
| 84 |
-
max_epochs: 100
|
| 85 |
-
learning_rate: 1.0e-4
|
| 86 |
-
lr_decay: 0.99
|
| 87 |
-
early_stopping: {monitor: train_loss, patience: 5, min_delta: 0.0}
|
| 88 |
-
best_metric: auc
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
configs/gamgam_finetune.yaml
DELETED
|
@@ -1,97 +0,0 @@
|
|
| 1 |
-
# The GamGam 5-class task fine-tuned from the multiclass pretrained model of
|
| 2 |
-
# Ho et al. (2026): its edge network with a new 5-class classifier, all
|
| 3 |
-
# weights trained. Uses the cache of configs/gamgam.yaml.
|
| 4 |
-
#
|
| 5 |
-
# gnn4colliders train configs/gamgam_finetune.yaml
|
| 6 |
-
name: gamgam_finetune
|
| 7 |
-
|
| 8 |
-
data:
|
| 9 |
-
hf_repo: ho22joshua/atlas_opendata
|
| 10 |
-
hf_revision: d1bcc9ccaa304ea09e11f7d724342568f72a0d6e
|
| 11 |
-
files:
|
| 12 |
-
- path: GamGam/2020/MC/mc_341081.ttH125_gamgam.GamGam.root
|
| 13 |
-
label: 0
|
| 14 |
-
size_bytes: 217819076
|
| 15 |
-
sha256: c498974926f6c55143d17fc4d3d6fa69bd3718ff92cf7d5cad5c3d67a836c7b7
|
| 16 |
-
- path: GamGam/2020/MC/mc_343981.ggH125_gamgam.GamGam.root
|
| 17 |
-
label: 1
|
| 18 |
-
size_bytes: 218418347
|
| 19 |
-
sha256: 05b3e6709e8836a7b862a7fde09086b3a9d4d494d62a6984d5df39d8daad13eb
|
| 20 |
-
- path: GamGam/2020/MC/mc_345041.VBFH125_gamgam.GamGam.root
|
| 21 |
-
label: 2
|
| 22 |
-
size_bytes: 108616148
|
| 23 |
-
sha256: 92334fce3bffc9eb6e0745dd6ef354d5ce33da764858511b8f9ca49b862b44e2
|
| 24 |
-
- path: GamGam/2020/MC/mc_345318.WpH125J_Wincl_gamgam.GamGam.root
|
| 25 |
-
label: 3
|
| 26 |
-
size_bytes: 29757932
|
| 27 |
-
sha256: f255a9c3c6935f976f788b6f32d9a8f6bf576eb12ecd03a6f3fd0a5dea9d1248
|
| 28 |
-
- path: GamGam/2020/MC/mc_345319.ZH125J_Zincl_gamgam.GamGam.root
|
| 29 |
-
label: 4
|
| 30 |
-
size_bytes: 58701804
|
| 31 |
-
sha256: c85623b04ac0176c64acdb2ecf8e992a63824cfc430a421df742319518ff6748
|
| 32 |
-
class_names: [ttH, ggF, VBF, WH, ZH]
|
| 33 |
-
tree_name: mini
|
| 34 |
-
# Electrons and muons share the lep_* collection; b-tagging uses the
|
| 35 |
-
# MV2c10 70% efficiency working point of the Open Data documentation.
|
| 36 |
-
derived_branches:
|
| 37 |
-
ele_pt: {source: lep_pt, where: {lep_type: 11}}
|
| 38 |
-
ele_eta: {source: lep_eta, where: {lep_type: 11}}
|
| 39 |
-
ele_phi: {source: lep_phi, where: {lep_type: 11}}
|
| 40 |
-
ele_charge: {source: lep_charge, where: {lep_type: 11}}
|
| 41 |
-
mu_pt: {source: lep_pt, where: {lep_type: 13}}
|
| 42 |
-
mu_eta: {source: lep_eta, where: {lep_type: 13}}
|
| 43 |
-
mu_phi: {source: lep_phi, where: {lep_type: 13}}
|
| 44 |
-
mu_charge: {source: lep_charge, where: {lep_type: 13}}
|
| 45 |
-
jet_btag: {source: jet_MV2c10, above: 0.8244273}
|
| 46 |
-
# Object types (node types) as in pretraining: jet, electron, muon, photon, MET.
|
| 47 |
-
feature_branches:
|
| 48 |
-
- [jet_pt, ele_pt, mu_pt, photon_pt, met_et]
|
| 49 |
-
- [jet_eta, ele_eta, mu_eta, photon_eta, 0]
|
| 50 |
-
- [jet_phi, ele_phi, mu_phi, photon_phi, met_phi]
|
| 51 |
-
- CALC_E
|
| 52 |
-
- [jet_btag, 0, 0, 0, 0]
|
| 53 |
-
- [0, ele_charge, mu_charge, 0, 0]
|
| 54 |
-
- NODE_TYPE
|
| 55 |
-
object_types: [vector, vector, vector, vector, single]
|
| 56 |
-
# Momenta are in MeV; 1e-4 gives the pretraining unit of 10 GeV.
|
| 57 |
-
scales: [1.0e-4, 1, 1, 1.0e-4, 1, 1, 1]
|
| 58 |
-
# eventNumber % 10 gives the paper's 80:10:10 train:validation:test split.
|
| 59 |
-
fold_var: eventNumber
|
| 60 |
-
fold_modulus: 10
|
| 61 |
-
train_folds: [0, 1, 2, 3, 4, 5, 6, 7]
|
| 62 |
-
validation_folds: [8]
|
| 63 |
-
test_folds: [9]
|
| 64 |
-
# Unweighted: each event counts once and classes are balanced by the
|
| 65 |
-
# per-class mean loss (23% of ttH events have mcWeight = -1).
|
| 66 |
-
weight_var: null
|
| 67 |
-
cache: outputs/gamgam/events.pt
|
| 68 |
-
batch_size: 1024
|
| 69 |
-
prepare_workers: 8
|
| 70 |
-
loader_workers: 4
|
| 71 |
-
pin_memory: true
|
| 72 |
-
|
| 73 |
-
# The pretrained network's size (Pretrained_GNN/*/config.yaml).
|
| 74 |
-
model:
|
| 75 |
-
name: edge_network
|
| 76 |
-
pretrained: Pretrained_GNN/multiclass_pretrained_model_12/model_epoch_71.pt
|
| 77 |
-
freeze_backbone: false
|
| 78 |
-
hid_size: 64
|
| 79 |
-
out_size: 5
|
| 80 |
-
n_layers: 4
|
| 81 |
-
n_proc_steps: 4
|
| 82 |
-
dropout: 0.0
|
| 83 |
-
|
| 84 |
-
task:
|
| 85 |
-
name: multiclass
|
| 86 |
-
|
| 87 |
-
# Sections 3.2 and 3.5: Adam at 1e-4 decayed by 0.99 per epoch, stopped
|
| 88 |
-
# after 5 epochs without training-loss improvement; the epoch with the best
|
| 89 |
-
# validation AUC is kept (best.pt). train.fast=true adds torch.compile, CUDA
|
| 90 |
-
# graphs, bfloat16 and TF32 (about 3x faster on an A100; results agree to
|
| 91 |
-
# rounding, not bitwise).
|
| 92 |
-
train:
|
| 93 |
-
max_epochs: 200
|
| 94 |
-
learning_rate: 1.0e-4
|
| 95 |
-
lr_decay: 0.99
|
| 96 |
-
early_stopping: {monitor: train_loss, patience: 5, min_delta: 0.0}
|
| 97 |
-
best_metric: auc
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
configs/gamgam_jepa_finetune.yaml
DELETED
|
@@ -1,95 +0,0 @@
|
|
| 1 |
-
# The GamGam 5-class task with the transformer encoder pretrained by JEPA on
|
| 2 |
-
# the Delphes samples (configs/delphes_jepa.yaml). model.pretrained=null
|
| 3 |
-
# trains the same architecture from scratch. Uses the cache of
|
| 4 |
-
# configs/gamgam.yaml.
|
| 5 |
-
#
|
| 6 |
-
# gnn4colliders train configs/gamgam_jepa_finetune.yaml
|
| 7 |
-
name: gamgam_jepa_finetune
|
| 8 |
-
|
| 9 |
-
data:
|
| 10 |
-
hf_repo: ho22joshua/atlas_opendata
|
| 11 |
-
hf_revision: d1bcc9ccaa304ea09e11f7d724342568f72a0d6e
|
| 12 |
-
files:
|
| 13 |
-
- path: GamGam/2020/MC/mc_341081.ttH125_gamgam.GamGam.root
|
| 14 |
-
label: 0
|
| 15 |
-
size_bytes: 217819076
|
| 16 |
-
sha256: c498974926f6c55143d17fc4d3d6fa69bd3718ff92cf7d5cad5c3d67a836c7b7
|
| 17 |
-
- path: GamGam/2020/MC/mc_343981.ggH125_gamgam.GamGam.root
|
| 18 |
-
label: 1
|
| 19 |
-
size_bytes: 218418347
|
| 20 |
-
sha256: 05b3e6709e8836a7b862a7fde09086b3a9d4d494d62a6984d5df39d8daad13eb
|
| 21 |
-
- path: GamGam/2020/MC/mc_345041.VBFH125_gamgam.GamGam.root
|
| 22 |
-
label: 2
|
| 23 |
-
size_bytes: 108616148
|
| 24 |
-
sha256: 92334fce3bffc9eb6e0745dd6ef354d5ce33da764858511b8f9ca49b862b44e2
|
| 25 |
-
- path: GamGam/2020/MC/mc_345318.WpH125J_Wincl_gamgam.GamGam.root
|
| 26 |
-
label: 3
|
| 27 |
-
size_bytes: 29757932
|
| 28 |
-
sha256: f255a9c3c6935f976f788b6f32d9a8f6bf576eb12ecd03a6f3fd0a5dea9d1248
|
| 29 |
-
- path: GamGam/2020/MC/mc_345319.ZH125J_Zincl_gamgam.GamGam.root
|
| 30 |
-
label: 4
|
| 31 |
-
size_bytes: 58701804
|
| 32 |
-
sha256: c85623b04ac0176c64acdb2ecf8e992a63824cfc430a421df742319518ff6748
|
| 33 |
-
class_names: [ttH, ggF, VBF, WH, ZH]
|
| 34 |
-
tree_name: mini
|
| 35 |
-
# Electrons and muons share the lep_* collection; b-tagging uses the
|
| 36 |
-
# MV2c10 70% efficiency working point of the Open Data documentation.
|
| 37 |
-
derived_branches:
|
| 38 |
-
ele_pt: {source: lep_pt, where: {lep_type: 11}}
|
| 39 |
-
ele_eta: {source: lep_eta, where: {lep_type: 11}}
|
| 40 |
-
ele_phi: {source: lep_phi, where: {lep_type: 11}}
|
| 41 |
-
ele_charge: {source: lep_charge, where: {lep_type: 11}}
|
| 42 |
-
mu_pt: {source: lep_pt, where: {lep_type: 13}}
|
| 43 |
-
mu_eta: {source: lep_eta, where: {lep_type: 13}}
|
| 44 |
-
mu_phi: {source: lep_phi, where: {lep_type: 13}}
|
| 45 |
-
mu_charge: {source: lep_charge, where: {lep_type: 13}}
|
| 46 |
-
jet_btag: {source: jet_MV2c10, above: 0.8244273}
|
| 47 |
-
# Object types (node types) as in pretraining: jet, electron, muon, photon, MET.
|
| 48 |
-
feature_branches:
|
| 49 |
-
- [jet_pt, ele_pt, mu_pt, photon_pt, met_et]
|
| 50 |
-
- [jet_eta, ele_eta, mu_eta, photon_eta, 0]
|
| 51 |
-
- [jet_phi, ele_phi, mu_phi, photon_phi, met_phi]
|
| 52 |
-
- CALC_E
|
| 53 |
-
- [jet_btag, 0, 0, 0, 0]
|
| 54 |
-
- [0, ele_charge, mu_charge, 0, 0]
|
| 55 |
-
- NODE_TYPE
|
| 56 |
-
object_types: [vector, vector, vector, vector, single]
|
| 57 |
-
# Momenta are in MeV; 1e-4 gives the pretraining unit of 10 GeV.
|
| 58 |
-
scales: [1.0e-4, 1, 1, 1.0e-4, 1, 1, 1]
|
| 59 |
-
# eventNumber % 10 gives the paper's 80:10:10 train:validation:test split.
|
| 60 |
-
fold_var: eventNumber
|
| 61 |
-
fold_modulus: 10
|
| 62 |
-
train_folds: [0, 1, 2, 3, 4, 5, 6, 7]
|
| 63 |
-
validation_folds: [8]
|
| 64 |
-
test_folds: [9]
|
| 65 |
-
# Unweighted: each event counts once and classes are balanced by the
|
| 66 |
-
# per-class mean loss (23% of ttH events have mcWeight = -1).
|
| 67 |
-
weight_var: null
|
| 68 |
-
cache: outputs/gamgam/events.pt
|
| 69 |
-
batch_size: 1024
|
| 70 |
-
prepare_workers: 8
|
| 71 |
-
loader_workers: 4
|
| 72 |
-
pin_memory: true
|
| 73 |
-
|
| 74 |
-
model:
|
| 75 |
-
name: transformer
|
| 76 |
-
out_size: 5
|
| 77 |
-
hid_size: 128
|
| 78 |
-
n_layers: 4
|
| 79 |
-
n_heads: 8
|
| 80 |
-
ffn_size: 512
|
| 81 |
-
dropout: 0.0
|
| 82 |
-
pair_bias: true
|
| 83 |
-
pretrained: outputs/delphes_jepa/last.pt
|
| 84 |
-
# true trains only the classifier (linear probe).
|
| 85 |
-
freeze_backbone: false
|
| 86 |
-
|
| 87 |
-
task:
|
| 88 |
-
name: multiclass
|
| 89 |
-
|
| 90 |
-
train:
|
| 91 |
-
max_epochs: 100
|
| 92 |
-
learning_rate: 1.0e-4
|
| 93 |
-
lr_decay: 0.99
|
| 94 |
-
early_stopping: {monitor: train_loss, patience: 5, min_delta: 0.0}
|
| 95 |
-
best_metric: auc
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
configs/gamgam_pfn.yaml
DELETED
|
@@ -1,90 +0,0 @@
|
|
| 1 |
-
# The GamGam 5-class task classified in context by the PFN meta-trained on the
|
| 2 |
-
# Delphes samples (configs/delphes_pfn.yaml), with no training on GamGam:
|
| 3 |
-
# data.train_events labelled training events, an equal number per class, are
|
| 4 |
-
# the context. The model section must match the meta-training. Uses the
|
| 5 |
-
# cache of configs/gamgam.yaml.
|
| 6 |
-
#
|
| 7 |
-
# gnn4colliders evaluate configs/gamgam_pfn.yaml split=validation
|
| 8 |
-
name: gamgam_pfn
|
| 9 |
-
checkpoint: outputs/delphes_pfn/best.pt
|
| 10 |
-
|
| 11 |
-
data:
|
| 12 |
-
hf_repo: ho22joshua/atlas_opendata
|
| 13 |
-
hf_revision: d1bcc9ccaa304ea09e11f7d724342568f72a0d6e
|
| 14 |
-
files:
|
| 15 |
-
- path: GamGam/2020/MC/mc_341081.ttH125_gamgam.GamGam.root
|
| 16 |
-
label: 0
|
| 17 |
-
size_bytes: 217819076
|
| 18 |
-
sha256: c498974926f6c55143d17fc4d3d6fa69bd3718ff92cf7d5cad5c3d67a836c7b7
|
| 19 |
-
- path: GamGam/2020/MC/mc_343981.ggH125_gamgam.GamGam.root
|
| 20 |
-
label: 1
|
| 21 |
-
size_bytes: 218418347
|
| 22 |
-
sha256: 05b3e6709e8836a7b862a7fde09086b3a9d4d494d62a6984d5df39d8daad13eb
|
| 23 |
-
- path: GamGam/2020/MC/mc_345041.VBFH125_gamgam.GamGam.root
|
| 24 |
-
label: 2
|
| 25 |
-
size_bytes: 108616148
|
| 26 |
-
sha256: 92334fce3bffc9eb6e0745dd6ef354d5ce33da764858511b8f9ca49b862b44e2
|
| 27 |
-
- path: GamGam/2020/MC/mc_345318.WpH125J_Wincl_gamgam.GamGam.root
|
| 28 |
-
label: 3
|
| 29 |
-
size_bytes: 29757932
|
| 30 |
-
sha256: f255a9c3c6935f976f788b6f32d9a8f6bf576eb12ecd03a6f3fd0a5dea9d1248
|
| 31 |
-
- path: GamGam/2020/MC/mc_345319.ZH125J_Zincl_gamgam.GamGam.root
|
| 32 |
-
label: 4
|
| 33 |
-
size_bytes: 58701804
|
| 34 |
-
sha256: c85623b04ac0176c64acdb2ecf8e992a63824cfc430a421df742319518ff6748
|
| 35 |
-
class_names: [ttH, ggF, VBF, WH, ZH]
|
| 36 |
-
tree_name: mini
|
| 37 |
-
# Electrons and muons share the lep_* collection; b-tagging uses the
|
| 38 |
-
# MV2c10 70% efficiency working point of the Open Data documentation.
|
| 39 |
-
derived_branches:
|
| 40 |
-
ele_pt: {source: lep_pt, where: {lep_type: 11}}
|
| 41 |
-
ele_eta: {source: lep_eta, where: {lep_type: 11}}
|
| 42 |
-
ele_phi: {source: lep_phi, where: {lep_type: 11}}
|
| 43 |
-
ele_charge: {source: lep_charge, where: {lep_type: 11}}
|
| 44 |
-
mu_pt: {source: lep_pt, where: {lep_type: 13}}
|
| 45 |
-
mu_eta: {source: lep_eta, where: {lep_type: 13}}
|
| 46 |
-
mu_phi: {source: lep_phi, where: {lep_type: 13}}
|
| 47 |
-
mu_charge: {source: lep_charge, where: {lep_type: 13}}
|
| 48 |
-
jet_btag: {source: jet_MV2c10, above: 0.8244273}
|
| 49 |
-
# Object types (node types) as in pretraining: jet, electron, muon, photon, MET.
|
| 50 |
-
feature_branches:
|
| 51 |
-
- [jet_pt, ele_pt, mu_pt, photon_pt, met_et]
|
| 52 |
-
- [jet_eta, ele_eta, mu_eta, photon_eta, 0]
|
| 53 |
-
- [jet_phi, ele_phi, mu_phi, photon_phi, met_phi]
|
| 54 |
-
- CALC_E
|
| 55 |
-
- [jet_btag, 0, 0, 0, 0]
|
| 56 |
-
- [0, ele_charge, mu_charge, 0, 0]
|
| 57 |
-
- NODE_TYPE
|
| 58 |
-
object_types: [vector, vector, vector, vector, single]
|
| 59 |
-
# Momenta are in MeV; 1e-4 gives the pretraining unit of 10 GeV.
|
| 60 |
-
scales: [1.0e-4, 1, 1, 1.0e-4, 1, 1, 1]
|
| 61 |
-
# eventNumber % 10 gives the paper's 80:10:10 train:validation:test split.
|
| 62 |
-
fold_var: eventNumber
|
| 63 |
-
fold_modulus: 10
|
| 64 |
-
train_folds: [0, 1, 2, 3, 4, 5, 6, 7]
|
| 65 |
-
validation_folds: [8]
|
| 66 |
-
test_folds: [9]
|
| 67 |
-
# Labelled events (equal per class) that form the context.
|
| 68 |
-
train_events: 1000
|
| 69 |
-
# Unweighted: each event counts once and classes are balanced by the
|
| 70 |
-
# per-class mean loss (23% of ttH events have mcWeight = -1).
|
| 71 |
-
weight_var: null
|
| 72 |
-
cache: outputs/gamgam/events.pt
|
| 73 |
-
batch_size: 1024
|
| 74 |
-
prepare_workers: 8
|
| 75 |
-
loader_workers: 4
|
| 76 |
-
pin_memory: true
|
| 77 |
-
|
| 78 |
-
model:
|
| 79 |
-
name: pfn
|
| 80 |
-
out_size: 5
|
| 81 |
-
hid_size: 128
|
| 82 |
-
n_layers: 4
|
| 83 |
-
n_heads: 8
|
| 84 |
-
ffn_size: 512
|
| 85 |
-
pair_bias: true
|
| 86 |
-
max_classes: 10
|
| 87 |
-
pfn_layers: 6
|
| 88 |
-
|
| 89 |
-
task:
|
| 90 |
-
name: multiclass
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
configs/gamgam_tabdpt.yaml
DELETED
|
@@ -1,91 +0,0 @@
|
|
| 1 |
-
# The GamGam 5-class task classified in context by TabDPT (Layer 6;
|
| 2 |
-
# Apache-2.0 weights from Hugging Face), with no training: data.train_events
|
| 3 |
-
# labelled training events, an equal number per class, are the context of
|
| 4 |
-
# every prediction (src/gnn4colliders/tabular.py). TabDPT is trained on real
|
| 5 |
-
# tables; with model.tabdpt_context_size each event's context is its nearest
|
| 6 |
-
# context events (retrieval), which allows contexts beyond what fits at once.
|
| 7 |
-
# Needs `uv sync --extra tabdpt`. Uses the cache of configs/gamgam.yaml.
|
| 8 |
-
#
|
| 9 |
-
# gnn4colliders evaluate configs/gamgam_tabdpt.yaml split=validation
|
| 10 |
-
name: gamgam_tabdpt
|
| 11 |
-
|
| 12 |
-
data:
|
| 13 |
-
hf_repo: ho22joshua/atlas_opendata
|
| 14 |
-
hf_revision: d1bcc9ccaa304ea09e11f7d724342568f72a0d6e
|
| 15 |
-
files:
|
| 16 |
-
- path: GamGam/2020/MC/mc_341081.ttH125_gamgam.GamGam.root
|
| 17 |
-
label: 0
|
| 18 |
-
size_bytes: 217819076
|
| 19 |
-
sha256: c498974926f6c55143d17fc4d3d6fa69bd3718ff92cf7d5cad5c3d67a836c7b7
|
| 20 |
-
- path: GamGam/2020/MC/mc_343981.ggH125_gamgam.GamGam.root
|
| 21 |
-
label: 1
|
| 22 |
-
size_bytes: 218418347
|
| 23 |
-
sha256: 05b3e6709e8836a7b862a7fde09086b3a9d4d494d62a6984d5df39d8daad13eb
|
| 24 |
-
- path: GamGam/2020/MC/mc_345041.VBFH125_gamgam.GamGam.root
|
| 25 |
-
label: 2
|
| 26 |
-
size_bytes: 108616148
|
| 27 |
-
sha256: 92334fce3bffc9eb6e0745dd6ef354d5ce33da764858511b8f9ca49b862b44e2
|
| 28 |
-
- path: GamGam/2020/MC/mc_345318.WpH125J_Wincl_gamgam.GamGam.root
|
| 29 |
-
label: 3
|
| 30 |
-
size_bytes: 29757932
|
| 31 |
-
sha256: f255a9c3c6935f976f788b6f32d9a8f6bf576eb12ecd03a6f3fd0a5dea9d1248
|
| 32 |
-
- path: GamGam/2020/MC/mc_345319.ZH125J_Zincl_gamgam.GamGam.root
|
| 33 |
-
label: 4
|
| 34 |
-
size_bytes: 58701804
|
| 35 |
-
sha256: c85623b04ac0176c64acdb2ecf8e992a63824cfc430a421df742319518ff6748
|
| 36 |
-
class_names: [ttH, ggF, VBF, WH, ZH]
|
| 37 |
-
tree_name: mini
|
| 38 |
-
# Electrons and muons share the lep_* collection; b-tagging uses the
|
| 39 |
-
# MV2c10 70% efficiency working point of the Open Data documentation.
|
| 40 |
-
derived_branches:
|
| 41 |
-
ele_pt: {source: lep_pt, where: {lep_type: 11}}
|
| 42 |
-
ele_eta: {source: lep_eta, where: {lep_type: 11}}
|
| 43 |
-
ele_phi: {source: lep_phi, where: {lep_type: 11}}
|
| 44 |
-
ele_charge: {source: lep_charge, where: {lep_type: 11}}
|
| 45 |
-
mu_pt: {source: lep_pt, where: {lep_type: 13}}
|
| 46 |
-
mu_eta: {source: lep_eta, where: {lep_type: 13}}
|
| 47 |
-
mu_phi: {source: lep_phi, where: {lep_type: 13}}
|
| 48 |
-
mu_charge: {source: lep_charge, where: {lep_type: 13}}
|
| 49 |
-
jet_btag: {source: jet_MV2c10, above: 0.8244273}
|
| 50 |
-
# Object types (node types) as in pretraining: jet, electron, muon, photon, MET.
|
| 51 |
-
feature_branches:
|
| 52 |
-
- [jet_pt, ele_pt, mu_pt, photon_pt, met_et]
|
| 53 |
-
- [jet_eta, ele_eta, mu_eta, photon_eta, 0]
|
| 54 |
-
- [jet_phi, ele_phi, mu_phi, photon_phi, met_phi]
|
| 55 |
-
- CALC_E
|
| 56 |
-
- [jet_btag, 0, 0, 0, 0]
|
| 57 |
-
- [0, ele_charge, mu_charge, 0, 0]
|
| 58 |
-
- NODE_TYPE
|
| 59 |
-
object_types: [vector, vector, vector, vector, single]
|
| 60 |
-
# Momenta are in MeV; 1e-4 gives the pretraining unit of 10 GeV.
|
| 61 |
-
scales: [1.0e-4, 1, 1, 1.0e-4, 1, 1, 1]
|
| 62 |
-
# eventNumber % 10 gives the paper's 80:10:10 train:validation:test split.
|
| 63 |
-
fold_var: eventNumber
|
| 64 |
-
fold_modulus: 10
|
| 65 |
-
train_folds: [0, 1, 2, 3, 4, 5, 6, 7]
|
| 66 |
-
validation_folds: [8]
|
| 67 |
-
test_folds: [9]
|
| 68 |
-
# Labelled events (equal per class) that form the context.
|
| 69 |
-
train_events: 1000
|
| 70 |
-
# Unweighted: each event counts once and classes are balanced by the
|
| 71 |
-
# per-class mean loss (23% of ttH events have mcWeight = -1).
|
| 72 |
-
weight_var: null
|
| 73 |
-
cache: outputs/gamgam/events.pt
|
| 74 |
-
# Events classified per TabDPT call.
|
| 75 |
-
batch_size: 8192
|
| 76 |
-
prepare_workers: 8
|
| 77 |
-
loader_workers: 4
|
| 78 |
-
pin_memory: true
|
| 79 |
-
|
| 80 |
-
model:
|
| 81 |
-
name: tabdpt
|
| 82 |
-
out_size: 5
|
| 83 |
-
tabdpt_estimators: 8
|
| 84 |
-
tabdpt_context_size: null
|
| 85 |
-
# Leading jets, electrons, muons, photons and MET in a table row.
|
| 86 |
-
slots: [6, 2, 2, 3, 1]
|
| 87 |
-
relative_phi: false
|
| 88 |
-
pair_objects: 0
|
| 89 |
-
|
| 90 |
-
task:
|
| 91 |
-
name: multiclass
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
configs/gamgam_tabicl.yaml
DELETED
|
@@ -1,95 +0,0 @@
|
|
| 1 |
-
# The GamGam 5-class task classified in context by TabICLv2 (Inria; BSD-3
|
| 2 |
-
# weights from Hugging Face), with no training: data.train_events labelled
|
| 3 |
-
# training events, an equal number per class, are the context of every
|
| 4 |
-
# prediction (src/gnn4colliders/tabular.py). Needs `uv sync --extra tabicl`.
|
| 5 |
-
# Uses the cache of configs/gamgam.yaml. The rows are those of
|
| 6 |
-
# configs/gamgam_tabpfn.yaml; model.relative_phi=true and
|
| 7 |
-
# model.pair_objects=4 add the physics features.
|
| 8 |
-
#
|
| 9 |
-
# gnn4colliders evaluate configs/gamgam_tabicl.yaml split=validation
|
| 10 |
-
#
|
| 11 |
-
# With checkpoint=outputs/delphes_tabicl/best.pt, the TabICL network
|
| 12 |
-
# meta-trained by configs/delphes_tabicl.yaml (model.lora_rank and
|
| 13 |
-
# model.max_classes must match it) classifies with its own forward pass.
|
| 14 |
-
name: gamgam_tabicl
|
| 15 |
-
|
| 16 |
-
data:
|
| 17 |
-
hf_repo: ho22joshua/atlas_opendata
|
| 18 |
-
hf_revision: d1bcc9ccaa304ea09e11f7d724342568f72a0d6e
|
| 19 |
-
files:
|
| 20 |
-
- path: GamGam/2020/MC/mc_341081.ttH125_gamgam.GamGam.root
|
| 21 |
-
label: 0
|
| 22 |
-
size_bytes: 217819076
|
| 23 |
-
sha256: c498974926f6c55143d17fc4d3d6fa69bd3718ff92cf7d5cad5c3d67a836c7b7
|
| 24 |
-
- path: GamGam/2020/MC/mc_343981.ggH125_gamgam.GamGam.root
|
| 25 |
-
label: 1
|
| 26 |
-
size_bytes: 218418347
|
| 27 |
-
sha256: 05b3e6709e8836a7b862a7fde09086b3a9d4d494d62a6984d5df39d8daad13eb
|
| 28 |
-
- path: GamGam/2020/MC/mc_345041.VBFH125_gamgam.GamGam.root
|
| 29 |
-
label: 2
|
| 30 |
-
size_bytes: 108616148
|
| 31 |
-
sha256: 92334fce3bffc9eb6e0745dd6ef354d5ce33da764858511b8f9ca49b862b44e2
|
| 32 |
-
- path: GamGam/2020/MC/mc_345318.WpH125J_Wincl_gamgam.GamGam.root
|
| 33 |
-
label: 3
|
| 34 |
-
size_bytes: 29757932
|
| 35 |
-
sha256: f255a9c3c6935f976f788b6f32d9a8f6bf576eb12ecd03a6f3fd0a5dea9d1248
|
| 36 |
-
- path: GamGam/2020/MC/mc_345319.ZH125J_Zincl_gamgam.GamGam.root
|
| 37 |
-
label: 4
|
| 38 |
-
size_bytes: 58701804
|
| 39 |
-
sha256: c85623b04ac0176c64acdb2ecf8e992a63824cfc430a421df742319518ff6748
|
| 40 |
-
class_names: [ttH, ggF, VBF, WH, ZH]
|
| 41 |
-
tree_name: mini
|
| 42 |
-
# Electrons and muons share the lep_* collection; b-tagging uses the
|
| 43 |
-
# MV2c10 70% efficiency working point of the Open Data documentation.
|
| 44 |
-
derived_branches:
|
| 45 |
-
ele_pt: {source: lep_pt, where: {lep_type: 11}}
|
| 46 |
-
ele_eta: {source: lep_eta, where: {lep_type: 11}}
|
| 47 |
-
ele_phi: {source: lep_phi, where: {lep_type: 11}}
|
| 48 |
-
ele_charge: {source: lep_charge, where: {lep_type: 11}}
|
| 49 |
-
mu_pt: {source: lep_pt, where: {lep_type: 13}}
|
| 50 |
-
mu_eta: {source: lep_eta, where: {lep_type: 13}}
|
| 51 |
-
mu_phi: {source: lep_phi, where: {lep_type: 13}}
|
| 52 |
-
mu_charge: {source: lep_charge, where: {lep_type: 13}}
|
| 53 |
-
jet_btag: {source: jet_MV2c10, above: 0.8244273}
|
| 54 |
-
# Object types (node types) as in pretraining: jet, electron, muon, photon, MET.
|
| 55 |
-
feature_branches:
|
| 56 |
-
- [jet_pt, ele_pt, mu_pt, photon_pt, met_et]
|
| 57 |
-
- [jet_eta, ele_eta, mu_eta, photon_eta, 0]
|
| 58 |
-
- [jet_phi, ele_phi, mu_phi, photon_phi, met_phi]
|
| 59 |
-
- CALC_E
|
| 60 |
-
- [jet_btag, 0, 0, 0, 0]
|
| 61 |
-
- [0, ele_charge, mu_charge, 0, 0]
|
| 62 |
-
- NODE_TYPE
|
| 63 |
-
object_types: [vector, vector, vector, vector, single]
|
| 64 |
-
# Momenta are in MeV; 1e-4 gives the pretraining unit of 10 GeV.
|
| 65 |
-
scales: [1.0e-4, 1, 1, 1.0e-4, 1, 1, 1]
|
| 66 |
-
# eventNumber % 10 gives the paper's 80:10:10 train:validation:test split.
|
| 67 |
-
fold_var: eventNumber
|
| 68 |
-
fold_modulus: 10
|
| 69 |
-
train_folds: [0, 1, 2, 3, 4, 5, 6, 7]
|
| 70 |
-
validation_folds: [8]
|
| 71 |
-
test_folds: [9]
|
| 72 |
-
# Labelled events (equal per class) that form the context.
|
| 73 |
-
train_events: 1000
|
| 74 |
-
# Unweighted: each event counts once and classes are balanced by the
|
| 75 |
-
# per-class mean loss (23% of ttH events have mcWeight = -1).
|
| 76 |
-
weight_var: null
|
| 77 |
-
cache: outputs/gamgam/events.pt
|
| 78 |
-
# Events classified per TabICL call.
|
| 79 |
-
batch_size: 8192
|
| 80 |
-
prepare_workers: 8
|
| 81 |
-
loader_workers: 4
|
| 82 |
-
pin_memory: true
|
| 83 |
-
|
| 84 |
-
model:
|
| 85 |
-
name: tabicl
|
| 86 |
-
out_size: 5
|
| 87 |
-
tabicl_checkpoint: tabicl-classifier-v2-20260212.ckpt
|
| 88 |
-
tabicl_estimators: 8
|
| 89 |
-
# Leading jets, electrons, muons, photons and MET in a table row.
|
| 90 |
-
slots: [6, 2, 2, 3, 1]
|
| 91 |
-
relative_phi: false
|
| 92 |
-
pair_objects: 0
|
| 93 |
-
|
| 94 |
-
task:
|
| 95 |
-
name: multiclass
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
configs/gamgam_tabpfn.yaml
DELETED
|
@@ -1,96 +0,0 @@
|
|
| 1 |
-
# The GamGam 5-class task classified in context by TabPFN (Prior Labs), with
|
| 2 |
-
# no training: data.train_events labelled training events, an equal number
|
| 3 |
-
# per class, are the context of every prediction (src/gnn4colliders/tabular.py).
|
| 4 |
-
# Needs `uv sync --extra tabpfn` and, for TabPFN-2.5 and later, a one-time
|
| 5 |
-
# login (a token in ~/.cache/tabpfn or TABPFN_TOKEN). Uses the cache of
|
| 6 |
-
# configs/gamgam.yaml.
|
| 7 |
-
#
|
| 8 |
-
# gnn4colliders evaluate configs/gamgam_tabpfn.yaml split=validation
|
| 9 |
-
#
|
| 10 |
-
# With checkpoint=outputs/delphes_tabpfn/best.pt, the TabPFN network
|
| 11 |
-
# meta-trained by configs/delphes_tabpfn.yaml (model.lora_rank and
|
| 12 |
-
# model.max_classes must match it) classifies with its own forward pass.
|
| 13 |
-
name: gamgam_tabpfn
|
| 14 |
-
|
| 15 |
-
data:
|
| 16 |
-
hf_repo: ho22joshua/atlas_opendata
|
| 17 |
-
hf_revision: d1bcc9ccaa304ea09e11f7d724342568f72a0d6e
|
| 18 |
-
files:
|
| 19 |
-
- path: GamGam/2020/MC/mc_341081.ttH125_gamgam.GamGam.root
|
| 20 |
-
label: 0
|
| 21 |
-
size_bytes: 217819076
|
| 22 |
-
sha256: c498974926f6c55143d17fc4d3d6fa69bd3718ff92cf7d5cad5c3d67a836c7b7
|
| 23 |
-
- path: GamGam/2020/MC/mc_343981.ggH125_gamgam.GamGam.root
|
| 24 |
-
label: 1
|
| 25 |
-
size_bytes: 218418347
|
| 26 |
-
sha256: 05b3e6709e8836a7b862a7fde09086b3a9d4d494d62a6984d5df39d8daad13eb
|
| 27 |
-
- path: GamGam/2020/MC/mc_345041.VBFH125_gamgam.GamGam.root
|
| 28 |
-
label: 2
|
| 29 |
-
size_bytes: 108616148
|
| 30 |
-
sha256: 92334fce3bffc9eb6e0745dd6ef354d5ce33da764858511b8f9ca49b862b44e2
|
| 31 |
-
- path: GamGam/2020/MC/mc_345318.WpH125J_Wincl_gamgam.GamGam.root
|
| 32 |
-
label: 3
|
| 33 |
-
size_bytes: 29757932
|
| 34 |
-
sha256: f255a9c3c6935f976f788b6f32d9a8f6bf576eb12ecd03a6f3fd0a5dea9d1248
|
| 35 |
-
- path: GamGam/2020/MC/mc_345319.ZH125J_Zincl_gamgam.GamGam.root
|
| 36 |
-
label: 4
|
| 37 |
-
size_bytes: 58701804
|
| 38 |
-
sha256: c85623b04ac0176c64acdb2ecf8e992a63824cfc430a421df742319518ff6748
|
| 39 |
-
class_names: [ttH, ggF, VBF, WH, ZH]
|
| 40 |
-
tree_name: mini
|
| 41 |
-
# Electrons and muons share the lep_* collection; b-tagging uses the
|
| 42 |
-
# MV2c10 70% efficiency working point of the Open Data documentation.
|
| 43 |
-
derived_branches:
|
| 44 |
-
ele_pt: {source: lep_pt, where: {lep_type: 11}}
|
| 45 |
-
ele_eta: {source: lep_eta, where: {lep_type: 11}}
|
| 46 |
-
ele_phi: {source: lep_phi, where: {lep_type: 11}}
|
| 47 |
-
ele_charge: {source: lep_charge, where: {lep_type: 11}}
|
| 48 |
-
mu_pt: {source: lep_pt, where: {lep_type: 13}}
|
| 49 |
-
mu_eta: {source: lep_eta, where: {lep_type: 13}}
|
| 50 |
-
mu_phi: {source: lep_phi, where: {lep_type: 13}}
|
| 51 |
-
mu_charge: {source: lep_charge, where: {lep_type: 13}}
|
| 52 |
-
jet_btag: {source: jet_MV2c10, above: 0.8244273}
|
| 53 |
-
# Object types (node types) as in pretraining: jet, electron, muon, photon, MET.
|
| 54 |
-
feature_branches:
|
| 55 |
-
- [jet_pt, ele_pt, mu_pt, photon_pt, met_et]
|
| 56 |
-
- [jet_eta, ele_eta, mu_eta, photon_eta, 0]
|
| 57 |
-
- [jet_phi, ele_phi, mu_phi, photon_phi, met_phi]
|
| 58 |
-
- CALC_E
|
| 59 |
-
- [jet_btag, 0, 0, 0, 0]
|
| 60 |
-
- [0, ele_charge, mu_charge, 0, 0]
|
| 61 |
-
- NODE_TYPE
|
| 62 |
-
object_types: [vector, vector, vector, vector, single]
|
| 63 |
-
# Momenta are in MeV; 1e-4 gives the pretraining unit of 10 GeV.
|
| 64 |
-
scales: [1.0e-4, 1, 1, 1.0e-4, 1, 1, 1]
|
| 65 |
-
# eventNumber % 10 gives the paper's 80:10:10 train:validation:test split.
|
| 66 |
-
fold_var: eventNumber
|
| 67 |
-
fold_modulus: 10
|
| 68 |
-
train_folds: [0, 1, 2, 3, 4, 5, 6, 7]
|
| 69 |
-
validation_folds: [8]
|
| 70 |
-
test_folds: [9]
|
| 71 |
-
# Labelled events (equal per class) that form the context.
|
| 72 |
-
train_events: 1000
|
| 73 |
-
# Unweighted: each event counts once and classes are balanced by the
|
| 74 |
-
# per-class mean loss (23% of ttH events have mcWeight = -1).
|
| 75 |
-
weight_var: null
|
| 76 |
-
cache: outputs/gamgam/events.pt
|
| 77 |
-
# Events classified per TabPFN call.
|
| 78 |
-
batch_size: 8192
|
| 79 |
-
prepare_workers: 8
|
| 80 |
-
loader_workers: 4
|
| 81 |
-
pin_memory: true
|
| 82 |
-
|
| 83 |
-
model:
|
| 84 |
-
name: tabpfn
|
| 85 |
-
out_size: 5
|
| 86 |
-
tabpfn_version: v3.5
|
| 87 |
-
tabpfn_estimators: 4
|
| 88 |
-
# Leading jets, electrons, muons, photons and MET in a table row.
|
| 89 |
-
slots: [6, 2, 2, 3, 1]
|
| 90 |
-
# Physics features: azimuths from the leading object's, and the mass and
|
| 91 |
-
# Delta R of every pair of the leading pair_objects objects.
|
| 92 |
-
relative_phi: false
|
| 93 |
-
pair_objects: 0
|
| 94 |
-
|
| 95 |
-
task:
|
| 96 |
-
name: multiclass
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
configs/gamgam_transformer.yaml
DELETED
|
@@ -1,92 +0,0 @@
|
|
| 1 |
-
# The GamGam 5-class task with a transformer over the same objects (no
|
| 2 |
-
# paper reference). Uses the cache of configs/gamgam.yaml.
|
| 3 |
-
#
|
| 4 |
-
# gnn4colliders train configs/gamgam_transformer.yaml
|
| 5 |
-
name: gamgam_transformer
|
| 6 |
-
|
| 7 |
-
data:
|
| 8 |
-
hf_repo: ho22joshua/atlas_opendata
|
| 9 |
-
hf_revision: d1bcc9ccaa304ea09e11f7d724342568f72a0d6e
|
| 10 |
-
files:
|
| 11 |
-
- path: GamGam/2020/MC/mc_341081.ttH125_gamgam.GamGam.root
|
| 12 |
-
label: 0
|
| 13 |
-
size_bytes: 217819076
|
| 14 |
-
sha256: c498974926f6c55143d17fc4d3d6fa69bd3718ff92cf7d5cad5c3d67a836c7b7
|
| 15 |
-
- path: GamGam/2020/MC/mc_343981.ggH125_gamgam.GamGam.root
|
| 16 |
-
label: 1
|
| 17 |
-
size_bytes: 218418347
|
| 18 |
-
sha256: 05b3e6709e8836a7b862a7fde09086b3a9d4d494d62a6984d5df39d8daad13eb
|
| 19 |
-
- path: GamGam/2020/MC/mc_345041.VBFH125_gamgam.GamGam.root
|
| 20 |
-
label: 2
|
| 21 |
-
size_bytes: 108616148
|
| 22 |
-
sha256: 92334fce3bffc9eb6e0745dd6ef354d5ce33da764858511b8f9ca49b862b44e2
|
| 23 |
-
- path: GamGam/2020/MC/mc_345318.WpH125J_Wincl_gamgam.GamGam.root
|
| 24 |
-
label: 3
|
| 25 |
-
size_bytes: 29757932
|
| 26 |
-
sha256: f255a9c3c6935f976f788b6f32d9a8f6bf576eb12ecd03a6f3fd0a5dea9d1248
|
| 27 |
-
- path: GamGam/2020/MC/mc_345319.ZH125J_Zincl_gamgam.GamGam.root
|
| 28 |
-
label: 4
|
| 29 |
-
size_bytes: 58701804
|
| 30 |
-
sha256: c85623b04ac0176c64acdb2ecf8e992a63824cfc430a421df742319518ff6748
|
| 31 |
-
class_names: [ttH, ggF, VBF, WH, ZH]
|
| 32 |
-
tree_name: mini
|
| 33 |
-
# Electrons and muons share the lep_* collection; b-tagging uses the
|
| 34 |
-
# MV2c10 70% efficiency working point of the Open Data documentation.
|
| 35 |
-
derived_branches:
|
| 36 |
-
ele_pt: {source: lep_pt, where: {lep_type: 11}}
|
| 37 |
-
ele_eta: {source: lep_eta, where: {lep_type: 11}}
|
| 38 |
-
ele_phi: {source: lep_phi, where: {lep_type: 11}}
|
| 39 |
-
ele_charge: {source: lep_charge, where: {lep_type: 11}}
|
| 40 |
-
mu_pt: {source: lep_pt, where: {lep_type: 13}}
|
| 41 |
-
mu_eta: {source: lep_eta, where: {lep_type: 13}}
|
| 42 |
-
mu_phi: {source: lep_phi, where: {lep_type: 13}}
|
| 43 |
-
mu_charge: {source: lep_charge, where: {lep_type: 13}}
|
| 44 |
-
jet_btag: {source: jet_MV2c10, above: 0.8244273}
|
| 45 |
-
# Object types (node types) as in pretraining: jet, electron, muon, photon, MET.
|
| 46 |
-
feature_branches:
|
| 47 |
-
- [jet_pt, ele_pt, mu_pt, photon_pt, met_et]
|
| 48 |
-
- [jet_eta, ele_eta, mu_eta, photon_eta, 0]
|
| 49 |
-
- [jet_phi, ele_phi, mu_phi, photon_phi, met_phi]
|
| 50 |
-
- CALC_E
|
| 51 |
-
- [jet_btag, 0, 0, 0, 0]
|
| 52 |
-
- [0, ele_charge, mu_charge, 0, 0]
|
| 53 |
-
- NODE_TYPE
|
| 54 |
-
object_types: [vector, vector, vector, vector, single]
|
| 55 |
-
# Momenta are in MeV; 1e-4 gives the pretraining unit of 10 GeV.
|
| 56 |
-
scales: [1.0e-4, 1, 1, 1.0e-4, 1, 1, 1]
|
| 57 |
-
# eventNumber % 10 gives the paper's 80:10:10 train:validation:test split.
|
| 58 |
-
fold_var: eventNumber
|
| 59 |
-
fold_modulus: 10
|
| 60 |
-
train_folds: [0, 1, 2, 3, 4, 5, 6, 7]
|
| 61 |
-
validation_folds: [8]
|
| 62 |
-
test_folds: [9]
|
| 63 |
-
# Unweighted: each event counts once and classes are balanced by the
|
| 64 |
-
# per-class mean loss (23% of ttH events have mcWeight = -1).
|
| 65 |
-
weight_var: null
|
| 66 |
-
cache: outputs/gamgam/events.pt
|
| 67 |
-
batch_size: 1024
|
| 68 |
-
prepare_workers: 8
|
| 69 |
-
loader_workers: 4
|
| 70 |
-
pin_memory: true
|
| 71 |
-
|
| 72 |
-
model:
|
| 73 |
-
name: transformer
|
| 74 |
-
hid_size: 64
|
| 75 |
-
out_size: 5
|
| 76 |
-
n_layers: 2
|
| 77 |
-
n_heads: 4
|
| 78 |
-
ffn_size: 256
|
| 79 |
-
dropout: 0.1
|
| 80 |
-
# Attention bias from object-pair (deta, dphi, dR, mass) features, as in the
|
| 81 |
-
# Particle Transformer; false gives a plain transformer.
|
| 82 |
-
pair_bias: true
|
| 83 |
-
|
| 84 |
-
task:
|
| 85 |
-
name: multiclass
|
| 86 |
-
|
| 87 |
-
train:
|
| 88 |
-
max_epochs: 100
|
| 89 |
-
learning_rate: 1.0e-4
|
| 90 |
-
lr_decay: 0.99
|
| 91 |
-
early_stopping: {monitor: train_loss, patience: 5, min_delta: 0.0}
|
| 92 |
-
best_metric: auc
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
configs/tth_cp_even_odd.yaml
DELETED
|
@@ -1,49 +0,0 @@
|
|
| 1 |
-
# CP-even versus CP-odd top-Yukawa ttH (H -> gamma gamma), Delphes samples.
|
| 2 |
-
# Point data.files at local copies of the two samples.
|
| 3 |
-
name: tth_cp_even_odd
|
| 4 |
-
|
| 5 |
-
data:
|
| 6 |
-
files:
|
| 7 |
-
- {path: data/raw/ttH_NLO_download/samples/higgs/top-associated/tth/ttH_NLO.root, label: 0}
|
| 8 |
-
- {path: data/raw/ttH_cp_even_odd/samples/higgs/top-associated/tth/ttH_CPodd.root, label: 1}
|
| 9 |
-
tree_name: output
|
| 10 |
-
feature_branches:
|
| 11 |
-
- [jet_pt, ele_pt, mu_pt, ph_pt, MET_met]
|
| 12 |
-
- [jet_eta, ele_eta, mu_eta, ph_eta, 0]
|
| 13 |
-
- [jet_phi, ele_phi, mu_phi, ph_phi, MET_phi]
|
| 14 |
-
- CALC_E
|
| 15 |
-
- [jet_btag, 0, 0, 0, 0]
|
| 16 |
-
- [0, ele_charge, mu_charge, 0, 0]
|
| 17 |
-
- NODE_TYPE
|
| 18 |
-
object_types: [vector, vector, vector, vector, single]
|
| 19 |
-
# Delphes momenta are in GeV; 0.1 gives the pretraining unit of 10 GeV.
|
| 20 |
-
scales: [0.1, 1, 1, 0.1, 1, 1, 1]
|
| 21 |
-
# Number is the event index; Number % 10 is the fold.
|
| 22 |
-
fold_var: Number
|
| 23 |
-
fold_modulus: 10
|
| 24 |
-
train_folds: [0, 1, 2, 3, 4, 5, 6, 7]
|
| 25 |
-
validation_folds: [8]
|
| 26 |
-
test_folds: [9]
|
| 27 |
-
weight_var: weight
|
| 28 |
-
cache: outputs/tth_cp_even_odd/events.pt
|
| 29 |
-
batch_size: 1024
|
| 30 |
-
|
| 31 |
-
model:
|
| 32 |
-
name: edge_network
|
| 33 |
-
hid_size: 64
|
| 34 |
-
out_size: 1
|
| 35 |
-
n_layers: 4
|
| 36 |
-
n_proc_steps: 4
|
| 37 |
-
|
| 38 |
-
# NLO samples have signed weights; |weight| keeps the loss denominator
|
| 39 |
-
# stable (metrics use events with positive weight).
|
| 40 |
-
task:
|
| 41 |
-
name: binary
|
| 42 |
-
absolute_weights: true
|
| 43 |
-
|
| 44 |
-
train:
|
| 45 |
-
max_epochs: 100
|
| 46 |
-
learning_rate: 1.0e-4
|
| 47 |
-
lr_decay: 0.99
|
| 48 |
-
early_stopping: {monitor: train_loss, patience: 5, min_delta: 0.0}
|
| 49 |
-
best_metric: auc
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
docs/design.md
DELETED
|
@@ -1,392 +0,0 @@
|
|
| 1 |
-
# Design
|
| 2 |
-
|
| 3 |
-
## Modules
|
| 4 |
-
|
| 5 |
-
| Module | Contents |
|
| 6 |
-
| --- | --- |
|
| 7 |
-
| `config.py` | the experiment dataclasses, YAML loading and overrides |
|
| 8 |
-
| `data.py` | ROOT reading, Hugging Face download, derived branches, object features, `PackedEvents` and its cache |
|
| 9 |
-
| `loader.py` | `EventLoader`: deterministic shuffling, DDP sharding, collation workers |
|
| 10 |
-
| `graphs.py` | fully connected `TensorGraph` batches, edge features, CUDA-graph padding buffers |
|
| 11 |
-
| `sequences.py` | padded token batches for the transformer and Deep Sets, event augmentations |
|
| 12 |
-
| `models.py` | `EdgeNetwork`, `FineTunedEdgeNetwork`, `ObjectTransformer`, `TransformerClassifier`, `DeepSets`, checkpoint loading |
|
| 13 |
-
| `jepa.py` | JEPA pretraining of the transformer or edge network encoder (encoding or kinematic targets), event embeddings |
|
| 14 |
-
| `contrastive.py` | contrastive (SimCLR) pretraining of the same encoders |
|
| 15 |
-
| `probe.py` | k-NN and linear probes of frozen encoders, linear CKA between them |
|
| 16 |
-
| `pfn.py` | our prior-fitted network over events and the task prior of meta-training |
|
| 17 |
-
| `tabular.py` | event rows and encoder embeddings for TabPFN, TabICL and TabDPT; LoRA meta-training of TabPFN and TabICL |
|
| 18 |
-
| `tasks.py` | multiclass and binary losses and metrics, the pretraining and PFN losses |
|
| 19 |
-
| `train.py` | `Trainer`, early stopping, checkpoints |
|
| 20 |
-
| `cuda_graphs.py` | captured training steps |
|
| 21 |
-
| `distributed.py` | `torchrun` process group and collectives |
|
| 22 |
-
| `inference.py` | model outputs over a loader, prediction files |
|
| 23 |
-
| `export.py` | ONNX export |
|
| 24 |
-
| `cli.py` | the six commands |
|
| 25 |
-
|
| 26 |
-
## Data flow
|
| 27 |
-
|
| 28 |
-
`prepare` reads each ROOT file in chunks of 100,000 entries (in parallel with
|
| 29 |
-
`data.prepare_workers`) and stores every event's objects as rows of one
|
| 30 |
-
`[objects, 7]` tensor with offsets, plus per-event labels, folds, weights and
|
| 31 |
-
source file and entry. Nothing in the cache depends on the model: graphs and
|
| 32 |
-
token sequences are built per batch, in the loader workers.
|
| 33 |
-
|
| 34 |
-
A batch of the edge network is a set of fully connected graphs in flat
|
| 35 |
-
edge-index form (`edge_src`, `edge_dst`, `node_batch`, `edge_batch`). Edges
|
| 36 |
-
are directed, source-major and without self-loops except for one-node graphs,
|
| 37 |
-
with features `[deta, dphi, dR]`. These conventions, the seven node columns,
|
| 38 |
-
the MLP layout and the parameter names are those of the original ROOT-GNN, so
|
| 39 |
-
the pretrained checkpoints in `Pretrained_GNN/` load without conversion.
|
| 40 |
-
|
| 41 |
-
The transformer and Deep Sets take each event's objects as tokens
|
| 42 |
-
`[events, objects, 7]`, zero-padded to the largest event of the batch, with
|
| 43 |
-
a mask of real objects. A token is a linear map of the kinematic columns
|
| 44 |
-
(`phi` as its cosine and sine) plus a learned embedding of `node_type`. The
|
| 45 |
-
objects are stored by type (jets, electrons, muons, photons, MET), so a
|
| 46 |
-
position embedding would mostly relearn the type; without one, neither
|
| 47 |
-
model depends on object order, as with the edge network.
|
| 48 |
-
|
| 49 |
-
* The transformer is a stack of pre-norm attention blocks, a mean over real
|
| 50 |
-
objects and a linear classifier. With `model.pair_bias` (as in the
|
| 51 |
-
Particle Transformer, Qu et al. 2022), an MLP of the pair features
|
| 52 |
-
`[deta, dphi, dR, log(1 + m^2)]` (the edge features plus the invariant
|
| 53 |
-
mass of the pair, objects taken as massless) adds a bias per head to the
|
| 54 |
-
attention logits, so the transformer sees the same pairwise angles as the
|
| 55 |
-
edge network.
|
| 56 |
-
* Deep Sets (Zaheer et al. 2017; the particle flow network of Komiske et
|
| 57 |
-
al. 2019) applies an MLP to each object, sums over real objects and
|
| 58 |
-
applies an MLP to the sum: the baseline without object interactions.
|
| 59 |
-
|
| 60 |
-
### JEPA pretraining
|
| 61 |
-
|
| 62 |
-
`model.name: jepa` pretrains an object encoder without labels, as in
|
| 63 |
-
I-JEPA (Assran et al. 2023), on the 12 Delphes samples of the supervised
|
| 64 |
-
pretraining. `model.backbone` selects the encoder: the transformer's
|
| 65 |
-
(`configs/delphes_jepa.yaml`) or the edge network, of the size of the
|
| 66 |
-
supervised pretrained models (`configs/delphes_jepa_edge.yaml`), whose
|
| 67 |
-
object encodings are its node states after the last processing step and
|
| 68 |
-
whose context is the fully connected graph of the visible objects only.
|
| 69 |
-
|
| 70 |
-
* a random `model.mask_fraction` of each event's objects (rounded, at least
|
| 71 |
-
one, and at least one left visible) is hidden;
|
| 72 |
-
* the context encoder sees the visible objects; the target encoder, an
|
| 73 |
-
exponential moving average of it (momentum rising linearly from
|
| 74 |
-
`model.ema_momentum` to 1 over training) without gradients, sees all
|
| 75 |
-
objects;
|
| 76 |
-
* a predictor (`model.predictor_layers` attention blocks over the visible
|
| 77 |
-
objects' encodings and one query per hidden object) predicts the hidden
|
| 78 |
-
objects' layer-normalized target encodings, with a mean squared error.
|
| 79 |
-
A query is told only the hidden object's type and its index among the
|
| 80 |
-
objects of that type (their pt order), not its kinematics; pair features
|
| 81 |
-
are used only between visible objects. For the edge network, its decoded
|
| 82 |
-
global state (what its classifier reads) is one more predictor input, so
|
| 83 |
-
the whole network is pretrained.
|
| 84 |
-
|
| 85 |
-
The history reports `target_spread`, the standard deviation of the target
|
| 86 |
-
encodings over a batch's objects averaged over dimensions, which falls
|
| 87 |
-
towards zero if the representation collapses. The validation loss compares
|
| 88 |
-
predictions with a moving target, so it does not select epochs: fine-tuning
|
| 89 |
-
starts from `last.pt` (`configs/gamgam_jepa_finetune.yaml` for the
|
| 90 |
-
transformer, `configs/gamgam_finetune.yaml` with `model.pretrained` for the
|
| 91 |
-
edge network; encoder sizes must match). With `model.freeze_backbone=true` only the classifier is
|
| 92 |
-
trained (a linear probe); `model.pretrained=null` trains the same
|
| 93 |
-
architecture from scratch.
|
| 94 |
-
|
| 95 |
-
`model.variance_weight` adds the VICReg variance term (Bardes et al. 2022):
|
| 96 |
-
the mean shortfall below 1 of each dimension's standard deviation over the
|
| 97 |
-
batch's context encodings (and the edge network's global states).
|
| 98 |
-
|
| 99 |
-
First checks (one A100, `train.fast=true`, 2 pretraining epochs on Delphes
|
| 100 |
-
fold 2, then 2 GamGam epochs, validation AUC, seed 1; not converged):
|
| 101 |
-
|
| 102 |
-
| GamGam model | Validation AUC |
|
| 103 |
-
| --- | --- |
|
| 104 |
-
| transformer from scratch / from JEPA | 0.898 / 0.904 |
|
| 105 |
-
| edge network from scratch | 0.895 |
|
| 106 |
-
| edge network from the supervised pretrained model | 0.907 |
|
| 107 |
-
| edge network from JEPA, last node states only | 0.845 |
|
| 108 |
-
| edge network from JEPA, mean node states | 0.869 |
|
| 109 |
-
| the same with `variance_weight` 0.1 / 1 | 0.874 / 0.810 |
|
| 110 |
-
|
| 111 |
-
The edge network's JEPA encodings collapse without the variance term
|
| 112 |
-
(`target_spread` 0.09 against about 1 with it), and none of the edge
|
| 113 |
-
network variants yet beats training from scratch.
|
| 114 |
-
|
| 115 |
-
### Contrastive and masked-object pretraining, and probes
|
| 116 |
-
|
| 117 |
-
Two more label-free objectives pretrain the same encoders on the same
|
| 118 |
-
samples, and their encoders load the same way (`context_encoder`):
|
| 119 |
-
|
| 120 |
-
* `contrastive.py` (`configs/delphes_contrastive.yaml`): SimCLR, as JetCLR
|
| 121 |
-
and RS3L for jets. Two views of each event (random phi rotation, eta
|
| 122 |
-
flip, momentum scale within `model.scale_jitter`, each object but the
|
| 123 |
-
first dropped with `model.object_dropout`) are embedded and projected;
|
| 124 |
-
the NT-Xent loss at `model.temperature` contrasts them with the other
|
| 125 |
-
events of the batch. `embedding_spread` watches for collapse.
|
| 126 |
-
* `model.jepa_target: features` (`configs/delphes_masked.yaml`): masked
|
| 127 |
-
object modelling (Golling et al. 2024). JEPA's masking and predictor
|
| 128 |
-
predict the hidden objects' kinematics instead of their target
|
| 129 |
-
encodings, with no target encoder: the comparison with JEPA isolates
|
| 130 |
-
predicting in embedding space.
|
| 131 |
-
|
| 132 |
-
`gnn4colliders probe` compares encoders without fine-tuning (as jBOT):
|
| 133 |
-
k-NN (cosine, `model.probe_neighbours`) and linear (L-BFGS logistic
|
| 134 |
-
regression, `model.probe_l2`) classifiers of frozen event embeddings,
|
| 135 |
-
trained on `data.train_events` events. A randomly initialized encoder
|
| 136 |
-
(`model.pretrained=null`) is the reference; supervised checkpoints probe
|
| 137 |
-
too. Results on GamGam: "Label efficiency on GamGam" below.
|
| 138 |
-
|
| 139 |
-
`scripts/compare_encoders.py` compares encoders of one architecture by
|
| 140 |
-
linear CKA (Kornblith et al. 2019), as the paper does: of their event
|
| 141 |
-
embeddings (a matrix), and layer by layer against the first one (the mean
|
| 142 |
-
over objects after each transformer block, or the edge network's mean node
|
| 143 |
-
states after each step, then the event embedding). With a random encoder
|
| 144 |
-
first, it shows where each objective moves the representation.
|
| 145 |
-
|
| 146 |
-
### In-context models: TabPFN, TabICL, TabDPT and a collider PFN
|
| 147 |
-
|
| 148 |
-
Both classify a dataset's events given `data.train_events` labelled
|
| 149 |
-
training events (an equal number per class) as context, without training on
|
| 150 |
-
that dataset; `cli.in_context_forward` builds them for `evaluate` and
|
| 151 |
-
`predict`.
|
| 152 |
-
|
| 153 |
-
* `tabular.py`: TabPFN (Prior Labs; `model.tabpfn_version`, default 3.5)
|
| 154 |
-
on fixed-width rows: the leading `model.slots` objects of each type (6
|
| 155 |
-
jets, 2 electrons, 2 muons, 3 photons, MET) with their six kinematic
|
| 156 |
-
columns, NaN when absent, and the number of objects of each type.
|
| 157 |
-
* `pfn.py`: our own prior-fitted network. The object transformer (which
|
| 158 |
-
can start from the JEPA encoder) embeds each event; the context events get
|
| 159 |
-
a label embedding; `model.pfn_layers` attention blocks run over a task's
|
| 160 |
-
events, every event attending to the context events only, so queries are
|
| 161 |
-
independent and the context's keys and values are computed once. It is
|
| 162 |
-
meta-trained (`task.name: pfn`) on tasks drawn from the Delphes samples:
|
| 163 |
-
2-10 classes of `task.prior_classes` in random order, Dirichlet class
|
| 164 |
-
proportions, 16-2048 context events (log-uniform), 256 queries, and per
|
| 165 |
-
event a random phi rotation and eta flip, per task a momentum and energy
|
| 166 |
-
scale within `task.energy_jitter`. The GamGam processes are among the
|
| 167 |
-
Delphes samples; `task.prior_classes=[1,6,7,8,9,10,11]` leaves them out.
|
| 168 |
-
|
| 169 |
-
* `tabular.py` also runs TabICLv2 (Qu et al., ICML 2026; BSD-3, open
|
| 170 |
-
pretraining code) on the same rows, as a second tabular in-context model.
|
| 171 |
-
Rows can measure azimuths from the leading object's (`model.relative_phi`)
|
| 172 |
-
and end with the invariant mass and Delta R of every pair of the
|
| 173 |
-
`model.pair_objects` leading objects by pt (energies are `pt cosh(eta)`,
|
| 174 |
-
so objects are massless; a pair with MET gives a transverse-like mass).
|
| 175 |
-
Both are off by default, so the default rows are unchanged.
|
| 176 |
-
* `tabular.py` also runs TabDPT (Ma et al. 2024; Apache-2.0), trained on
|
| 177 |
-
real tables rather than a synthetic prior; with
|
| 178 |
-
`model.tabdpt_context_size` each event's context is its nearest context
|
| 179 |
-
events (faiss retrieval), beyond what fits in one pass. It computes in
|
| 180 |
-
float64 in places (on a Mac it runs on the CPU), and on macOS faiss and
|
| 181 |
-
torch crash together unless `OMP_NUM_THREADS=1`.
|
| 182 |
-
* Tabular models can see, instead of or beside the rows, the event
|
| 183 |
-
embeddings of a pretrained object encoder (`model.tabular_inputs:
|
| 184 |
-
embeddings` or `both`, the encoder of `model.backbone` and
|
| 185 |
-
`model.pretrained`): physics-aware embeddings under a generic tabular
|
| 186 |
-
prior. In meta-training the encoder trains with the LoRA updates unless
|
| 187 |
-
`model.freeze_backbone`.
|
| 188 |
-
* `tabular.py` also meta-trains the TabPFN-3.5 network itself on the
|
| 189 |
-
PFN's tasks (`model.name: tabpfn`, `task.name: pfn`), on the rows above
|
| 190 |
-
(built after the augmentation), starting from Prior Labs' weights. Calling
|
| 191 |
-
the network directly skips TabPFN's preprocessing and ensembling, which
|
| 192 |
-
on the GamGam fixtures cost nothing (validation AUC 0.852 against 0.843
|
| 193 |
-
with `predict_proba`, 61 events). By default the network is frozen and
|
| 194 |
-
the four attention projections and two MLP layers of each of its 24
|
| 195 |
-
in-context blocks get rank-8 LoRA updates (2.8M parameters, zero at the
|
| 196 |
-
start, so training starts from TabPFN as released); `model.lora_rank=0`
|
| 197 |
-
trains all weights. In context, the context's keys and values are cached
|
| 198 |
-
(the same logits as one pass over context and queries, to 2e-5). It
|
| 199 |
-
separates what Prior Labs' prior and what collider tasks contribute:
|
| 200 |
-
TabPFN as released, TabPFN meta-trained here, and our PFN. TabICL
|
| 201 |
-
(`configs/delphes_tabicl.yaml`; BSD-3, so meta-trained weights can be
|
| 202 |
-
shared) meta-trains the same way. Its attention reads fused projection
|
| 203 |
-
weights directly, so LoRA is a parametrization of the weights (12 blocks,
|
| 204 |
-
0.59M of 28M parameters at rank 8), for TabPFN too. TabICL's network takes
|
| 205 |
-
no NaN: rows are standardized by the context's statistics, absent values
|
| 206 |
-
at the mean, clipped at 8 sigma. On the fixtures this gives AUC 0.827
|
| 207 |
-
against 0.820 with its classifier, and the cached in-context forward
|
| 208 |
-
equals the training forward only in float32 (with mixed precision on the
|
| 209 |
-
CPU, AUC 0.59).
|
| 210 |
-
|
| 211 |
-
### Label efficiency on GamGam (first study, 2026-10-22)
|
| 212 |
-
|
| 213 |
-
GamGam validation AUC (%) against the number of labelled training events N
|
| 214 |
-
(`data.train_events`, equal per class), one seed, on one 4-GPU A100 node in
|
| 215 |
-
an interactive allocation (3.5 h). Each entry is evaluated on 20,000 random
|
| 216 |
-
validation events (`data.eval_events=20000`, about +-0.3); on all 246,922,
|
| 217 |
-
evaluated for the supervised runs and the leading TabPFN runs, each is 0.05
|
| 218 |
-
to 0.41 lower, in the same order (TabPFN-3.5: 80.28, 86.92, 89.01, 0.08 to
|
| 219 |
-
0.13 lower, matching the M2 Max's 80.26 and 86.93).
|
| 220 |
-
|
| 221 |
-
| model | N = 100 | 1000 | 10000 | 50000 |
|
| 222 |
-
|---|---|---|---|---|
|
| 223 |
-
| edge network, from scratch | 78.00 | 82.74 | 87.66 | |
|
| 224 |
-
| edge network, from `Pretrained_GNN` | 84.95 | 87.48 | 89.98 | |
|
| 225 |
-
| transformer, from scratch | 72.33 | 83.47 | 87.03 | |
|
| 226 |
-
| transformer, from JEPA | 73.25 | 85.10 | 88.60 | |
|
| 227 |
-
| transformer, from masked objects | 75.92 | 86.12 | 88.73 | |
|
| 228 |
-
| TabPFN-3.5 (rows) | 80.41 | 87.05 | 89.09 | 89.56 |
|
| 229 |
-
| TabPFN-3.5 (rows, `relative_phi`, `pair_objects: 4`) | 80.61 | 87.78 | 89.56 | |
|
| 230 |
-
| TabPFN-3.5 (rows + JEPA embeddings) | 80.97 | 87.43 | 89.44 | |
|
| 231 |
-
| TabPFN-3.5 (rows + masked-object embeddings) | 82.99 | 88.22 | 89.94 | |
|
| 232 |
-
| TabPFN-3.5 (rows + `Pretrained_GNN` embeddings) | 87.32 | 88.96 | 90.07 | |
|
| 233 |
-
| TabPFN-3.5, released network, direct forward | 80.74 | 86.64 | 89.03 | |
|
| 234 |
-
| TabPFN-3.5, meta-trained on Delphes (LoRA) | 80.52 | 84.77 | 88.34 | |
|
| 235 |
-
| TabICLv2 | 80.53 | 85.68 | 88.41 | 89.12 |
|
| 236 |
-
| TabDPT | 77.48 | 84.71 | 88.42 | |
|
| 237 |
-
| our PFN, meta-trained on Delphes | 78.13 | 76.18 | 76.51 | |
|
| 238 |
-
|
| 239 |
-
Probes (k-NN / linear) of the frozen encoders, the same N:
|
| 240 |
-
|
| 241 |
-
| encoder | N = 100 | 1000 | 10000 |
|
| 242 |
-
|---|---|---|---|
|
| 243 |
-
| random | 73.4 / 72.6 | 76.6 / 83.1 | 79.5 / 85.4 |
|
| 244 |
-
| JEPA | 73.0 / 73.4 | 78.9 / 83.4 | 81.8 / 87.9 |
|
| 245 |
-
| masked objects | 75.0 / 77.5 | 81.7 / 85.7 | 84.4 / 88.5 |
|
| 246 |
-
| contrastive | 61.6 / 67.9 | 70.0 / 80.3 | 76.4 / 85.9 |
|
| 247 |
-
|
| 248 |
-
Setup (every run and its overrides: `scripts/label_efficiency_study.sh`):
|
| 249 |
-
the pretraining runs saw the same 4M class-balanced Delphes events for 8
|
| 250 |
-
epochs (`data.train_events=4000000`, 50 to 70 min each); the PFN
|
| 251 |
-
meta-trained for 25 epochs of 1000 steps (25,000 steps, 95 min) and TabPFN
|
| 252 |
-
for 6 epochs of 500 (3,000 steps, 48 min). Supervised runs train for a
|
| 253 |
-
fixed number of steps with early stopping off (`train.early_stopping=null`;
|
| 254 |
-
batch size, epochs: 100, 1000 for N = 100; 128, 400 for N = 1000; 256, 100
|
| 255 |
-
for N = 10000; 20 to 35 min at N = 100, 2 to 4 min at N = 10000) and keep
|
| 256 |
-
the epoch of best validation AUC, chosen on the same 20,000 events that are
|
| 257 |
-
reported. That choice uses validation labels the in-context models do not
|
| 258 |
-
get, and from N = 1000 most supervised runs overfit: their last epoch is far
|
| 259 |
-
below the kept one. On all validation events (92% of them not used for the
|
| 260 |
-
choice) the kept epochs lose 0.05 to 0.41, no more than the in-context runs
|
| 261 |
-
lose, so picking the maximum over noisy evaluations inflates them little:
|
| 262 |
-
|
| 263 |
-
| supervised run (N = 100 / 1000 / 10000) | kept epoch, 20k | kept epoch, all | last epoch, 20k |
|
| 264 |
-
|---|---|---|---|
|
| 265 |
-
| edge network, from scratch | 78.00 / 82.74 / 87.66 | 77.80 / 82.69 / 87.42 | 68.88 / 78.88 / 87.65 |
|
| 266 |
-
| edge network, from `Pretrained_GNN` | 84.95 / 87.48 / 89.98 | 84.54 / 87.09 / 89.74 | 80.75 / 81.58 / 86.85 |
|
| 267 |
-
| transformer, from scratch | 72.33 / 83.47 / 87.03 | 71.99 / 83.35 / 86.95 | 72.33 / 83.44 / 87.03 |
|
| 268 |
-
| transformer, from JEPA | 73.25 / 85.10 / 88.60 | 73.07 / 84.96 / 88.45 | 72.34 / 78.82 / 81.46 |
|
| 269 |
-
| transformer, from masked objects | 75.92 / 86.12 / 88.73 | 75.73 / 85.84 / 88.60 | 75.92 / 79.73 / 85.62 |
|
| 270 |
-
|
| 271 |
-
With only N labelled events there is no large labelled set to choose the
|
| 272 |
-
epoch on; without the choice (last epoch) every supervised model is below
|
| 273 |
-
TabPFN-3.5 as released at every N except `Pretrained_GNN` at N = 100.
|
| 274 |
-
|
| 275 |
-
With the configs' settings instead (batch size 1024, at most 100 epochs,
|
| 276 |
-
early stopping after 5 epochs without training-loss improvement) N = 1000
|
| 277 |
-
is one step per epoch, at most 100 steps: the transformer then reaches
|
| 278 |
-
70.04 at N = 1000 instead of 83.47. The in-context models take 10 to 30 s
|
| 279 |
-
for the 20,000 queries at N = 1000 and 10000 (TabPFN 109 s at N = 50000;
|
| 280 |
-
the first run of each, N = 100, also loads the weights).
|
| 281 |
-
|
| 282 |
-
Findings:
|
| 283 |
-
|
| 284 |
-
* TabPFN-3.5 as released, without training, comes within 0.4 (N = 1000)
|
| 285 |
-
and 0.9 (N = 10000) of fine-tuning the supervised `Pretrained_GNN` (0.2
|
| 286 |
-
and 0.7 on all validation events), with its epoch chosen on validation
|
| 287 |
-
labels, and above it from N = 1000 without that choice. It beats every
|
| 288 |
-
model trained from scratch at every N. TabICL is close behind; TabDPT is
|
| 289 |
-
behind at small N. The physics row features add up to 0.7.
|
| 290 |
-
* Encoder embeddings help TabPFN most at small N. With the label-free
|
| 291 |
-
masked-object encoder: +2.6 at N = 100. With `Pretrained_GNN` (trained
|
| 292 |
-
with labels, on Delphes samples that include the GamGam processes): the
|
| 293 |
-
best result at every N run (100 to 10000; not run at 50000), +6.9 at
|
| 294 |
-
N = 100.
|
| 295 |
-
* Meta-training on Delphes tasks does not help. TabPFN with LoRA loses 1.9
|
| 296 |
-
at N = 1000 against the same network with zero updates (its direct
|
| 297 |
-
forward costs at most 0.4 against the classifier's preprocessing and
|
| 298 |
-
ensembling). Our PFN is below TabPFN and gets worse with more context
|
| 299 |
-
(76 at N = 1000, inside the meta-training context sizes 16 to 2048): to
|
| 300 |
-
investigate before the held-out-processes run, which was not done.
|
| 301 |
-
* Of the label-free pretraining objectives, masked-object modelling is the
|
| 302 |
-
best, in probes and fine-tuned; JEPA's prediction in embedding space adds
|
| 303 |
-
nothing over it here. Both improve fine-tuning the transformer over
|
| 304 |
-
training it from scratch (+0.9 to +3.6) but stay below fine-tuning the
|
| 305 |
-
edge network from `Pretrained_GNN`. That gap mixes the architecture (from
|
| 306 |
-
scratch, the edge network is 5.7 above the transformer at N = 100) with
|
| 307 |
-
the objective (label-free or supervised); the like-for-like comparison,
|
| 308 |
-
JEPA of the edge network (`configs/delphes_jepa_edge.yaml`), was not run.
|
| 309 |
-
* Contrastive pretraining is below a random encoder in the k-NN probe at
|
| 310 |
-
every N and in the linear probe at N = 100 and 1000 (67.9 against 72.6,
|
| 311 |
-
80.3 against 83.1); at N = 10000 its linear probe is 0.5 above (85.9
|
| 312 |
-
against 85.4). Without the momentum-scale augmentation
|
| 313 |
-
(`model.scale_jitter=0`, 4 epochs) it is no better (72.4 / 84.3 at
|
| 314 |
-
N = 10000).
|
| 315 |
-
|
| 316 |
-
Not done:
|
| 317 |
-
|
| 318 |
-
* the held-out-processes meta-training (`task.prior_classes` without the
|
| 319 |
-
five GamGam processes) of the PFN, gated on it beating TabPFN, and of
|
| 320 |
-
TabPFN and TabICL;
|
| 321 |
-
* TabICL meta-training and `model.lora_rank=0`;
|
| 322 |
-
* fine-tuning from contrastive pretraining (only probed), and JEPA of the
|
| 323 |
-
edge network;
|
| 324 |
-
* more seeds, and the test split.
|
| 325 |
-
|
| 326 |
-
The loss is a weighted mean per class present in the batch, averaged over
|
| 327 |
-
those classes, which balances the classes without explicit class weights.
|
| 328 |
-
Metrics (accuracy, one-vs-rest AUC averaged over classes, macro precision,
|
| 329 |
-
recall and F1) use events with positive weight.
|
| 330 |
-
|
| 331 |
-
## Performance
|
| 332 |
-
|
| 333 |
-
Graphs differ in size, which suits neither `torch.compile` nor CUDA graphs
|
| 334 |
-
out of the box:
|
| 335 |
-
|
| 336 |
-
* `torch.compile(dynamic=True)` treats node and edge counts as symbolic
|
| 337 |
-
sizes, so one compiled graph serves all batches without padding.
|
| 338 |
-
* CUDA graph replay needs fixed shapes. Batches are copied into buffers
|
| 339 |
-
rounded up to multiples of 512 nodes and 4096 edges; the remainder forms 64
|
| 340 |
-
padding graphs connected only to themselves, so the real graphs' outputs do
|
| 341 |
-
not change. A step is captured once per bucket, a few per epoch. The
|
| 342 |
-
optimizer runs in Adam's `capturable` form with device-tensor learning
|
| 343 |
-
rates, which the scheduler updates in place.
|
| 344 |
-
* bfloat16 autocast covers the forward pass; logits, loss, graph sums (which
|
| 345 |
-
divide by edge counts) and the optimizer stay float32.
|
| 346 |
-
|
| 347 |
-
GamGam training step, 1024-event batches (about 5,600 nodes and 30,000
|
| 348 |
-
edges), one A100-SXM4-80GB, `OMP_NUM_THREADS=8`, four loader workers (step
|
| 349 |
-
times measured before the move to flat modules, epoch times after):
|
| 350 |
-
|
| 351 |
-
| Mode | ms per batch | Epoch with validation |
|
| 352 |
-
| --- | ---: | ---: |
|
| 353 |
-
| float32 eager | 19.2 | 37 s |
|
| 354 |
-
| CUDA graphs + TF32 | 8.5 | |
|
| 355 |
-
| `torch.compile` | 13.0 | |
|
| 356 |
-
| compile + CUDA graphs + TF32 | 6.1 | |
|
| 357 |
-
| compile + CUDA graphs + bfloat16 (`train.fast`) | 5.9 | 9 s (first: 59 s, compiling) |
|
| 358 |
-
|
| 359 |
-
Eager training is bound by kernel launches (about a thousand small kernels
|
| 360 |
-
per step), not by arithmetic; bfloat16 alone is slower because of the extra
|
| 361 |
-
cast kernels, which `torch.compile` fuses. Results of the fast modes agree
|
| 362 |
-
with float32 to rounding, not bitwise (validation AUC 0.895 against 0.897
|
| 363 |
-
after three epochs). Preparing the 2.5M GamGam events with 8 workers takes
|
| 364 |
-
about 9 s on a login node (40 s was seen on a compute node, likely a cold
|
| 365 |
-
file cache).
|
| 366 |
-
|
| 367 |
-
PyTorch sizes its CPU thread pool to every visible core; on a 128-core node
|
| 368 |
-
that makes batch construction several times slower and CPU reductions
|
| 369 |
-
non-reproducible, so set `OMP_NUM_THREADS`. Single-threaded CPU training is
|
| 370 |
-
bitwise reproducible.
|
| 371 |
-
|
| 372 |
-
## ATLAS Open Data GamGam versus Ho et al. (2026)
|
| 373 |
-
|
| 374 |
-
The main benchmark reproduces the from-scratch baseline of Table 3 (5
|
| 375 |
-
classes, 2.5M events, 80:10:10 split, five seeds). Choices the paper does not
|
| 376 |
-
specify:
|
| 377 |
-
|
| 378 |
-
* electrons and muons are split from `lep_*` by `lep_type` (11, 13);
|
| 379 |
-
* b-tagging is `jet_MV2c10 > 0.8244273`, the 70% working point;
|
| 380 |
-
* momenta and energies are scaled by 1e-4 (MeV to the pretraining unit of
|
| 381 |
-
10 GeV);
|
| 382 |
-
* the fold is `eventNumber % 10`: folds 0-7 train, 8 validates, 9 tests;
|
| 383 |
-
* training is unweighted (23% of ttH events have `mcWeight = -1`).
|
| 384 |
-
|
| 385 |
-
The paper's stopping rule (5 epochs without training-loss improvement) never
|
| 386 |
-
fires within 200 epochs on this task; validation AUC peaks earlier (epoch 67
|
| 387 |
-
for seed 1) and `best.pt` keeps that epoch.
|
| 388 |
-
|
| 389 |
-
| Test split | Accuracy | AUC | F1 | Precision | Recall |
|
| 390 |
-
| --- | ---: | ---: | ---: | ---: | ---: |
|
| 391 |
-
| Paper (5 seeds) | 71.8 ± 0.2 | 91.2 | 63.0 | 62.2 | 66.3 |
|
| 392 |
-
| This package, seed 1 (CUDA graphs + TF32) | 71.1 | 91.3 | 62.6 | 62.4 | 66.7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
docs/usage.md
DELETED
|
@@ -1,255 +0,0 @@
|
|
| 1 |
-
# Using GNN4Colliders
|
| 2 |
-
|
| 3 |
-
GNN4Colliders trains event classifiers on reconstructed collider objects:
|
| 4 |
-
|
| 5 |
-
```text
|
| 6 |
-
ROOT files --prepare--> event cache (one row per object) --> graph or token batches --> model
|
| 7 |
-
```
|
| 8 |
-
|
| 9 |
-
## Install
|
| 10 |
-
|
| 11 |
-
Python 3.14 and PyTorch 2.14 (CUDA 13), managed by [uv](https://docs.astral.sh/uv/):
|
| 12 |
-
|
| 13 |
-
```bash
|
| 14 |
-
uv sync --dev # includes pytest, ruff and the ONNX packages
|
| 15 |
-
uv sync --dev --extra tabpfn # also TabPFN (configs/gamgam_tabpfn.yaml)
|
| 16 |
-
uv sync --dev --extra tabicl # also TabICL (configs/gamgam_tabicl.yaml)
|
| 17 |
-
uv sync --dev --extra tabdpt # also TabDPT (configs/gamgam_tabdpt.yaml)
|
| 18 |
-
uv sync --dev --extra plots # matplotlib, for scripts/plot_label_efficiency.py
|
| 19 |
-
uv run pytest # about 2 minutes; GPU tests run when CUDA is available
|
| 20 |
-
uv run pytest --device mps # the fixture runs on an Apple GPU
|
| 21 |
-
```
|
| 22 |
-
|
| 23 |
-
## Commands
|
| 24 |
-
|
| 25 |
-
Every command takes an experiment file and optional `dotted.key=value`
|
| 26 |
-
overrides (values are YAML):
|
| 27 |
-
|
| 28 |
-
```bash
|
| 29 |
-
uv run gnn4colliders prepare configs/gamgam.yaml # ROOT -> data.cache
|
| 30 |
-
uv run gnn4colliders train configs/gamgam.yaml # -> run_dir/{best,last}.pt
|
| 31 |
-
uv run gnn4colliders evaluate configs/gamgam.yaml # -> run_dir/test_metrics.json
|
| 32 |
-
uv run gnn4colliders predict configs/gamgam.yaml # -> run_dir/test_predictions.npz
|
| 33 |
-
uv run gnn4colliders export configs/gamgam.yaml # -> run_dir/model.onnx
|
| 34 |
-
uv run gnn4colliders probe configs/gamgam_jepa_finetune.yaml \
|
| 35 |
-
model.pretrained=outputs/delphes_jepa/last.pt data.train_events=1000 # -> run_dir/test_probe.json
|
| 36 |
-
```
|
| 37 |
-
|
| 38 |
-
`train` writes, in `run_dir` (default `outputs/<name>`):
|
| 39 |
-
|
| 40 |
-
* `config.yaml`: the resolved configuration;
|
| 41 |
-
* `history.jsonl`: one line per epoch with the loss and metrics of the
|
| 42 |
-
training and validation splits, the learning rate and the epoch time;
|
| 43 |
-
* `best.pt`: the epoch with the best validation `train.best_metric` (AUC by
|
| 44 |
-
default), `last.pt`: the latest epoch (resume with
|
| 45 |
-
`train.resume=<run_dir>/last.pt`), and `epoch_NNNN.pt` every
|
| 46 |
-
`train.save_every` epochs.
|
| 47 |
-
|
| 48 |
-
`probe` fits k-NN and linear classifiers to the frozen event embeddings of
|
| 49 |
-
the encoder of `model.pretrained` (JEPA, contrastive or supervised; random
|
| 50 |
-
without) on `data.train_events` training events and reports their metrics
|
| 51 |
-
on `split`, to compare pretraining without fine-tuning.
|
| 52 |
-
|
| 53 |
-
`data.eval_events=20000` evaluates (and validates during training,
|
| 54 |
-
predicts and probes) only that many random validation or test events,
|
| 55 |
-
seeded by `data.seed`: AUCs to about 0.003, in minutes, for quick runs.
|
| 56 |
-
|
| 57 |
-
`evaluate`, `predict` and `export` use `checkpoint` (default `best.pt`, else
|
| 58 |
-
`last.pt`) on `split` (default `test`); `output` overrides the output file.
|
| 59 |
-
Predictions hold the logits, scores, predicted class, label, weight, fold,
|
| 60 |
-
source file and entry of every event; `gnn4colliders.inference.write_root_scores`
|
| 61 |
-
adds scores to a copy of a ROOT tree.
|
| 62 |
-
|
| 63 |
-
## Experiments
|
| 64 |
-
|
| 65 |
-
| File | Task |
|
| 66 |
-
| --- | --- |
|
| 67 |
-
| `configs/gamgam.yaml` | ATLAS Open Data GamGam, 5 Higgs production modes, from scratch (the paper baseline and main benchmark) |
|
| 68 |
-
| `configs/gamgam_finetune.yaml` | the same task fine-tuned from the pretrained multiclass model |
|
| 69 |
-
| `configs/gamgam_transformer.yaml` | the same task with a transformer with pair attention bias (`model.pair_bias=false` for a plain transformer; same event cache) |
|
| 70 |
-
| `configs/gamgam_deep_sets.yaml` | the same task with Deep Sets, the baseline without object interactions (same event cache) |
|
| 71 |
-
| `configs/tth_cp_even_odd.yaml` | CP-even versus CP-odd ttH (Delphes, binary; local files) |
|
| 72 |
-
| `configs/delphes_pretraining.yaml` | 12-class pretraining on the Delphes samples |
|
| 73 |
-
| `configs/delphes_jepa.yaml` | JEPA pretraining of the transformer encoder on the same samples, without labels (same event cache) |
|
| 74 |
-
| `configs/delphes_jepa_edge.yaml` | the same for the edge network (fine-tune with `configs/gamgam_finetune.yaml model.pretrained=outputs/delphes_jepa_edge/last.pt`) |
|
| 75 |
-
| `configs/delphes_contrastive.yaml` | contrastive (SimCLR) pretraining of the transformer encoder on the same samples (`model.backbone=edge_network` for the edge network) |
|
| 76 |
-
| `configs/delphes_masked.yaml` | masked object modelling: JEPA predicting hidden objects' kinematics |
|
| 77 |
-
| `configs/gamgam_jepa_finetune.yaml` | GamGam with the JEPA-pretrained encoder (`model.pretrained=null`: from scratch); also takes contrastive and masked-object encoders, and `probe` |
|
| 78 |
-
| `configs/gamgam_tabpfn.yaml` | GamGam classified in context by TabPFN-3.5, no training (`evaluate` only) |
|
| 79 |
-
| `configs/gamgam_tabicl.yaml` | the same by TabICLv2 (BSD-3 weights, downloaded from Hugging Face on first use) |
|
| 80 |
-
| `configs/gamgam_tabdpt.yaml` | the same by TabDPT (Apache-2.0 weights; `model.tabdpt_context_size` retrieves each event's context) |
|
| 81 |
-
| `configs/delphes_pfn.yaml` | meta-training of our own PFN on tasks drawn from the Delphes samples (same event cache) |
|
| 82 |
-
| `configs/gamgam_pfn.yaml` | GamGam classified in context by that PFN, no training (`evaluate` only) |
|
| 83 |
-
| `configs/delphes_tabpfn.yaml` | meta-training of TabPFN-3.5 (LoRA by default) on the same tasks; evaluate with `configs/gamgam_tabpfn.yaml checkpoint=outputs/delphes_tabpfn/best.pt` |
|
| 84 |
-
| `configs/delphes_tabicl.yaml` | the same for TabICL; evaluate with `configs/gamgam_tabicl.yaml checkpoint=outputs/delphes_tabicl/best.pt` |
|
| 85 |
-
|
| 86 |
-
Each file documents its keys; `src/gnn4colliders/config.py` lists every key
|
| 87 |
-
with its default. Common overrides:
|
| 88 |
-
|
| 89 |
-
```bash
|
| 90 |
-
train.fast=true # torch.compile + CUDA graphs (edge network) + bfloat16 + TF32
|
| 91 |
-
train.seed=3 data.seed=3 # initialization and shuffling seeds
|
| 92 |
-
train.max_epochs=100
|
| 93 |
-
model.pretrained=Pretrained_GNN/multiclass_pretrained_model_12/model_epoch_71.pt
|
| 94 |
-
model.freeze_backbone=true # train only the new classifier
|
| 95 |
-
data.files=[{path: my.root, label: 0}] data.hf_repo=null # local inputs
|
| 96 |
-
```
|
| 97 |
-
|
| 98 |
-
### Data
|
| 99 |
-
|
| 100 |
-
Large inputs belong on scratch storage, not in the repository: set
|
| 101 |
-
`HF_HOME` (where Hugging Face downloads go) and pass `data.cache=...`, e.g.
|
| 102 |
-
on Perlmutter `HF_HOME=$SCRATCH/.cache/huggingface` and
|
| 103 |
-
`data.cache=$SCRATCH/gnn4colliders/delphes/events.pt` (the 105M Delphes
|
| 104 |
-
events take 52 GB of ROOT files and a 21 GB cache).
|
| 105 |
-
|
| 106 |
-
`data.files` lists the ROOT files and their class labels (or a label branch
|
| 107 |
-
name). With `data.hf_repo` the paths are inside that Hugging Face dataset at
|
| 108 |
-
`data.hf_revision` and are downloaded once and checked against `sha256` and
|
| 109 |
-
`size_bytes`.
|
| 110 |
-
|
| 111 |
-
Each object becomes a row of `pt, eta, phi, energy, btag, charge, node_type`
|
| 112 |
-
built from `feature_branches` (one branch or constant per object type,
|
| 113 |
-
`CALC_E` = pt cosh(eta), `NODE_TYPE` = object-type index) and multiplied by
|
| 114 |
-
`scales`. `derived_branches` select objects or threshold tagger scores before
|
| 115 |
-
that (the GamGam file splits `lep_*` into electrons and muons). The fold of an
|
| 116 |
-
event is `fold_var`, modulo `fold_modulus` when set, and
|
| 117 |
-
`train_folds`/`validation_folds`/`test_folds` select the splits. Events are
|
| 118 |
-
unweighted unless `weight_var` names a weight branch.
|
| 119 |
-
|
| 120 |
-
### In-context models and label efficiency
|
| 121 |
-
|
| 122 |
-
`data.train_events=N` keeps N training events, an equal number per class
|
| 123 |
-
(smaller N give subsets of larger ones). Supervised models train on them;
|
| 124 |
-
the in-context models (`model.name: tabpfn` or `pfn`) use them as the
|
| 125 |
-
labelled context and are only evaluated:
|
| 126 |
-
|
| 127 |
-
```bash
|
| 128 |
-
uv run gnn4colliders evaluate configs/gamgam_tabpfn.yaml split=validation data.train_events=1000
|
| 129 |
-
uv run gnn4colliders train configs/delphes_pfn.yaml # meta-training
|
| 130 |
-
uv run gnn4colliders evaluate configs/gamgam_pfn.yaml split=validation data.train_events=1000
|
| 131 |
-
uv run gnn4colliders train configs/gamgam.yaml data.train_events=1000 # supervised reference
|
| 132 |
-
```
|
| 133 |
-
|
| 134 |
-
`scripts/label_efficiency.py` runs such a sweep over several `N` and
|
| 135 |
-
configs (restartable) and prints validation AUC and seconds per run; the
|
| 136 |
-
metrics JSON records `seconds` (setup, inference) and, on CUDA,
|
| 137 |
-
`peak_memory_gib`:
|
| 138 |
-
|
| 139 |
-
```bash
|
| 140 |
-
uv run python scripts/label_efficiency.py configs/gamgam_tabpfn.yaml configs/gamgam.yaml \
|
| 141 |
-
--events 100 1000 10000 50000
|
| 142 |
-
```
|
| 143 |
-
|
| 144 |
-
TabPFN-2.5 and later weights are non-commercial (research and internal
|
| 145 |
-
benchmarking are allowed). tabpfn downloads them after a one-time login at
|
| 146 |
-
https://ux.priorlabs.ai (token in `~/.cache/tabpfn/auth_token` or
|
| 147 |
-
`TABPFN_TOKEN`), but a checkpoint already in its cache directory loads
|
| 148 |
-
without the login, so on compute nodes download it from Hugging Face:
|
| 149 |
-
|
| 150 |
-
```bash
|
| 151 |
-
export TABPFN_MODEL_CACHE_DIR=$SCRATCH/.cache/tabpfn # default ~/Library/Caches/tabpfn on macOS
|
| 152 |
-
uvx --from huggingface_hub hf download Prior-Labs/tabpfn_3_5 config.json \
|
| 153 |
-
tabpfn-v3.5-20260909.safetensors tabpfn-v3.5-20260909_multiclass.safetensors \
|
| 154 |
-
--local-dir $TABPFN_MODEL_CACHE_DIR
|
| 155 |
-
```
|
| 156 |
-
|
| 157 |
-
`model.tabpfn_checkpoint=tabpfn-v3.5-20260909_multiclass.safetensors`
|
| 158 |
-
selects the multiclass checkpoint. `model.tabpfn_version=v2` needs no login.
|
| 159 |
-
|
| 160 |
-
TabDPT retrieval (`model.tabdpt_context_size`) on macOS needs
|
| 161 |
-
`OMP_NUM_THREADS=1`: faiss and torch load separate OpenMP runtimes.
|
| 162 |
-
|
| 163 |
-
Tabular models can use a pretrained encoder's event embeddings instead of
|
| 164 |
-
or beside the rows: `model.tabular_inputs=embeddings` (or `both`) with
|
| 165 |
-
`model.pretrained=outputs/delphes_jepa/last.pt` and the encoder's sizes
|
| 166 |
-
(those of `configs/delphes_jepa.yaml`: `model.hid_size=128 model.n_layers=4
|
| 167 |
-
model.n_heads=8 model.ffn_size=512 model.pair_bias=true`).
|
| 168 |
-
|
| 169 |
-
TabPFN and TabICL classify the same table rows (`model.slots` objects of
|
| 170 |
-
each type). Two options add physics they cannot learn from a few events:
|
| 171 |
-
`model.relative_phi=true` measures every azimuth from the leading object's,
|
| 172 |
-
and `model.pair_objects=4` appends the invariant mass and Delta R of every
|
| 173 |
-
pair of the four leading objects (12 columns). Compare with and without,
|
| 174 |
-
one run name per variant:
|
| 175 |
-
|
| 176 |
-
```bash
|
| 177 |
-
uv run python scripts/label_efficiency.py configs/gamgam_tabicl.yaml --events 100 1000 \
|
| 178 |
-
--override name=gamgam_tabicl_physics model.relative_phi=true model.pair_objects=4
|
| 179 |
-
```
|
| 180 |
-
|
| 181 |
-
TabPFN-3.5 can also be meta-trained on the Delphes tasks, like our PFN.
|
| 182 |
-
By default only LoRA updates of its in-context blocks train
|
| 183 |
-
(`model.lora_rank`, 8; `model.lora_rank=0` trains all 219M weights), and
|
| 184 |
-
checkpoints hold only those (33 MB with the optimizer state, against
|
| 185 |
-
2.6 GB for all weights). With a `checkpoint`, TabPFN is
|
| 186 |
-
evaluated with its own forward pass, not the classifier:
|
| 187 |
-
|
| 188 |
-
```bash
|
| 189 |
-
uv run gnn4colliders train configs/delphes_tabpfn.yaml
|
| 190 |
-
uv run gnn4colliders evaluate configs/gamgam_tabpfn.yaml split=validation \
|
| 191 |
-
data.train_events=1000 checkpoint=outputs/delphes_tabpfn/best.pt
|
| 192 |
-
```
|
| 193 |
-
|
| 194 |
-
Activations are recomputed in the backward pass. On a 32 GB Apple M2 Max
|
| 195 |
-
one task of 2048 context events and 256 queries takes about 4.5 s and
|
| 196 |
-
16 GiB per step with all weights trained, so the Mac is for development;
|
| 197 |
-
meta-train on a GPU node.
|
| 198 |
-
|
| 199 |
-
### Fine-tuning
|
| 200 |
-
|
| 201 |
-
`Pretrained_GNN/` holds the pretrained models of the paper, the final
|
| 202 |
-
epoch of each: `multiclass_pretrained_model_12/model_epoch_71.pt` and
|
| 203 |
-
`multilabel_pretrained_model_41/model_epoch_44.pt` (with their training
|
| 204 |
-
configuration and log). With `model.pretrained` the edge network is loaded from
|
| 205 |
-
that checkpoint and gets a new `model.out_size` classifier; `model.hid_size`,
|
| 206 |
-
`n_layers` and `n_proc_steps` must match it (64, 4, 4). A JEPA checkpoint
|
| 207 |
-
(`configs/delphes_jepa*.yaml`) loads the same way: its context encoder
|
| 208 |
-
initializes the edge network or the transformer encoder.
|
| 209 |
-
|
| 210 |
-
## GPUs, Perlmutter and DDP
|
| 211 |
-
|
| 212 |
-
`train.device: auto` uses CUDA, else an Apple GPU (MPS), else the CPU. MPS
|
| 213 |
-
is for development on fixtures and small runs (no float64: metrics are
|
| 214 |
-
computed on the CPU; no DDP, CUDA graphs or TF32).
|
| 215 |
-
|
| 216 |
-
On a single GPU, `train.fast=true` is about 3x faster than float32 for the
|
| 217 |
-
GamGam model (see [design.md](design.md)). Set `OMP_NUM_THREADS` to the CPU
|
| 218 |
-
allocation and, on Perlmutter compute nodes, `UV_CACHE_DIR=$SCRATCH/.cache/uv`
|
| 219 |
-
(uv cannot lock its home-directory cache there).
|
| 220 |
-
|
| 221 |
-
```bash
|
| 222 |
-
# One training per seed, each followed by test-split evaluation:
|
| 223 |
-
for seed in 1 2 3 4 5; do
|
| 224 |
-
sbatch -A <account> --export=ALL,SEED=$seed scripts/train.sh train.fast=true
|
| 225 |
-
done
|
| 226 |
-
uv run python scripts/summarize_ensemble.py outputs/gamgam/seed* # mean +- std
|
| 227 |
-
```
|
| 228 |
-
|
| 229 |
-
The study of in-context models and pretraining has one wrapper per kind of
|
| 230 |
-
job, each on one GPU (the header of each script lists its variables):
|
| 231 |
-
|
| 232 |
-
```bash
|
| 233 |
-
# Label-efficiency sweep of released in-context models and supervised references:
|
| 234 |
-
sbatch -A <account> --export=ALL,CONFIGS="configs/gamgam_tabpfn.yaml configs/gamgam_tabicl.yaml configs/gamgam.yaml" \
|
| 235 |
-
scripts/label_efficiency.sh
|
| 236 |
-
# Meta-training, then GamGam in context with the meta-trained model:
|
| 237 |
-
sbatch -A <account> --export=ALL,CONFIG=configs/delphes_tabicl.yaml,EVAL_CONFIG=configs/gamgam_tabicl.yaml \
|
| 238 |
-
scripts/meta_train.sh task.prior_classes=[1,6,7,8,9,10,11]
|
| 239 |
-
# Label-free pretraining, then k-NN and linear probes on GamGam:
|
| 240 |
-
sbatch -A <account> --export=ALL,CONFIG=configs/delphes_contrastive.yaml scripts/pretrain.sh
|
| 241 |
-
# Linear CKA between the pretrained encoders, layer by layer (a login node is enough):
|
| 242 |
-
uv run python scripts/compare_encoders.py configs/gamgam_jepa_finetune.yaml --events 5000 \
|
| 243 |
-
--encoders random=random jepa=outputs/delphes_jepa/last.pt \
|
| 244 |
-
contrastive=outputs/delphes_contrastive/last.pt masked=outputs/delphes_masked/last.pt
|
| 245 |
-
# Curves and tables of every finished run:
|
| 246 |
-
uv run --extra plots python scripts/plot_label_efficiency.py --sweeps outputs/label_efficiency \
|
| 247 |
-
--probes outputs/delphes_jepa outputs/delphes_contrastive outputs/delphes_masked
|
| 248 |
-
```
|
| 249 |
-
|
| 250 |
-
Under `torchrun` with more than one process, training is data parallel:
|
| 251 |
-
`data.batch_size` is per process, training events are sharded over ranks
|
| 252 |
-
(padded to equal length) and metrics are computed over all ranks' events.
|
| 253 |
-
CUDA graphs need a single process (so `train.fast=true` does too; DDP is
|
| 254 |
-
tested in float32 eager). `scripts/train_ddp.sh` launches all GPUs of
|
| 255 |
-
one or more nodes.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
plots/cka_layerwise.svg
DELETED
plots/hyperparameter_optimization.svg
DELETED
plots/trainingtime.svg
DELETED
pyproject.toml
DELETED
|
@@ -1,80 +0,0 @@
|
|
| 1 |
-
[build-system]
|
| 2 |
-
requires = ["setuptools>=68"]
|
| 3 |
-
build-backend = "setuptools.build_meta"
|
| 4 |
-
|
| 5 |
-
[project]
|
| 6 |
-
name = "gnn4colliders"
|
| 7 |
-
dynamic = ["version"]
|
| 8 |
-
description = "Machine-learning tools for collider event analysis."
|
| 9 |
-
readme = "README.md"
|
| 10 |
-
requires-python = ">=3.14,<3.15"
|
| 11 |
-
dependencies = [
|
| 12 |
-
"awkward>=2.0",
|
| 13 |
-
"huggingface-hub>=0.36,<1",
|
| 14 |
-
"numpy>=2.1",
|
| 15 |
-
"pyyaml>=6",
|
| 16 |
-
"torch==2.14.1",
|
| 17 |
-
"uproot>=5.0",
|
| 18 |
-
]
|
| 19 |
-
|
| 20 |
-
[project.optional-dependencies]
|
| 21 |
-
onnx = [
|
| 22 |
-
"onnx>=1.16,<2",
|
| 23 |
-
"onnxruntime>=1.18,<2",
|
| 24 |
-
]
|
| 25 |
-
tabpfn = [
|
| 26 |
-
"tabpfn>=9.2,<10",
|
| 27 |
-
]
|
| 28 |
-
tabicl = [
|
| 29 |
-
"tabicl>=2.2,<3",
|
| 30 |
-
]
|
| 31 |
-
tabdpt = [
|
| 32 |
-
"tabdpt>=1.3.1,<2",
|
| 33 |
-
]
|
| 34 |
-
plots = [
|
| 35 |
-
"matplotlib>=3.9,<4",
|
| 36 |
-
]
|
| 37 |
-
|
| 38 |
-
[project.scripts]
|
| 39 |
-
gnn4colliders = "gnn4colliders.cli:main"
|
| 40 |
-
|
| 41 |
-
[dependency-groups]
|
| 42 |
-
dev = [
|
| 43 |
-
"pytest>=8",
|
| 44 |
-
"ruff>=0.6",
|
| 45 |
-
"onnx>=1.16,<2",
|
| 46 |
-
"onnxruntime>=1.18,<2",
|
| 47 |
-
]
|
| 48 |
-
|
| 49 |
-
[tool.setuptools.packages.find]
|
| 50 |
-
where = ["src"]
|
| 51 |
-
|
| 52 |
-
[tool.setuptools.dynamic]
|
| 53 |
-
version = { attr = "gnn4colliders.__version__" }
|
| 54 |
-
|
| 55 |
-
[tool.uv.sources]
|
| 56 |
-
torch = [
|
| 57 |
-
{ index = "pytorch-cu130", marker = "sys_platform == 'linux' and platform_machine == 'x86_64'" },
|
| 58 |
-
]
|
| 59 |
-
|
| 60 |
-
[[tool.uv.index]]
|
| 61 |
-
name = "pytorch-cu130"
|
| 62 |
-
url = "https://download.pytorch.org/whl/cu130"
|
| 63 |
-
explicit = true
|
| 64 |
-
|
| 65 |
-
[tool.pytest.ini_options]
|
| 66 |
-
testpaths = ["tests"]
|
| 67 |
-
addopts = "-ra"
|
| 68 |
-
markers = [
|
| 69 |
-
"gpu: tests requiring CUDA",
|
| 70 |
-
]
|
| 71 |
-
|
| 72 |
-
[tool.ruff]
|
| 73 |
-
line-length = 88
|
| 74 |
-
target-version = "py314"
|
| 75 |
-
src = ["src"]
|
| 76 |
-
|
| 77 |
-
[tool.ruff.lint]
|
| 78 |
-
select = ["E", "F", "I"]
|
| 79 |
-
|
| 80 |
-
[tool.ruff.format]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
root_gnn_dgl/README.md
ADDED
|
@@ -0,0 +1,137 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# root_gnn_dgl
|
| 2 |
+
|
| 3 |
+
## Data Directory (for Hackathon)
|
| 4 |
+
`/global/cfs/projectdirs/trn007/lbl_atlas/data/`
|
| 5 |
+
|
| 6 |
+
* `stats_all`: full statistics sample, ~10M events per process
|
| 7 |
+
* `stats_100K`: reduced statistics sample, 100K events per process
|
| 8 |
+
* `processed_graphs`: graphs that have already been processed
|
| 9 |
+
* `scores`: a copy of the samples along with the GNN scores for each event
|
| 10 |
+
|
| 11 |
+
## Environment Setup
|
| 12 |
+
|
| 13 |
+
The environment dependencies for this project are listed in `setup/environment.yml`. Follow the steps below to set up the environment:
|
| 14 |
+
|
| 15 |
+
### Step 1: Install Conda
|
| 16 |
+
If you don’t already have Conda installed, install either Miniconda (lightweight) or Anaconda (full version):
|
| 17 |
+
|
| 18 |
+
- **Miniconda**: Download and install from [https://docs.conda.io/en/latest/miniconda.html](https://docs.conda.io/en/latest/miniconda.html).
|
| 19 |
+
- **Anaconda**: Download and install from [https://www.anaconda.com/products/distribution](https://www.anaconda.com/products/distribution).
|
| 20 |
+
|
| 21 |
+
### Step 2: Clone the Repository
|
| 22 |
+
Clone this repository to your local machine:
|
| 23 |
+
```bash
|
| 24 |
+
git init
|
| 25 |
+
git lfs install
|
| 26 |
+
git clone https://huggingface.co/HWresearch/GNN4Colliders
|
| 27 |
+
```
|
| 28 |
+
If you want to clone without large files - just their pointers
|
| 29 |
+
```bash
|
| 30 |
+
GIT_LFS_SKIP_SMUDGE=1 git clone https://huggingface.co/HWresearch/GNN4Colliders
|
| 31 |
+
```
|
| 32 |
+
|
| 33 |
+
### Step 3: Create the Conda Environment
|
| 34 |
+
Use the `environment.yml` file to create the Conda environment:
|
| 35 |
+
```bash
|
| 36 |
+
conda env create -f setup/environment.yml -n <environment_name>
|
| 37 |
+
```
|
| 38 |
+
|
| 39 |
+
### Step 4: Activate the Environment
|
| 40 |
+
Activate the newly created environment:
|
| 41 |
+
```bash
|
| 42 |
+
conda activate <environment_name>
|
| 43 |
+
```
|
| 44 |
+
Replace <environment_name> with the name of the environment specified in Step 4.
|
| 45 |
+
|
| 46 |
+
### Step 5: Test the Environment
|
| 47 |
+
Run the `setup/test_setup.py` script to confirm that all packages needed for training are properly set up.
|
| 48 |
+
```bash
|
| 49 |
+
python setup/test_setup.py
|
| 50 |
+
```
|
| 51 |
+
## Running the Demo
|
| 52 |
+
The demo training is an example of our ML workflow, consisting of training a pretrained model, then finetuning it for an analysis task, while also training a model for the analysis task from scratch. The config files for the demo are located in the directory `configs/stats_100K/`. The demo can be run on a login node on Perlmutter (if enough GPU memory is availble).
|
| 53 |
+
|
| 54 |
+
To check login node GPU memory availability, use the command `nvidia-smi`. If there is not enough memory available, you can switch to another login node with the command `ssh login**`, where `**` is a number between 0 and 39.
|
| 55 |
+
|
| 56 |
+
For better performance, it is recommended to run the training and inference of the demo on a shared interactive node, where you have access to one exclusive GPU. An interactive node can be requested using the shell script in `jobs/interactive.sh`.
|
| 57 |
+
|
| 58 |
+
The pretraining for the demo is a multiclass classification training on 12 datasets corresponding to 12 distinct physics processes, containing 100,000 simulated collision events each. The pretraining is then fintuned on a binary classification task between two datasets containing 100,000 simulated collision events each for two different processes, called ttH CP Even and ttH CP Odd.
|
| 59 |
+
|
| 60 |
+
The entire demo can be ran with the command
|
| 61 |
+
```bash
|
| 62 |
+
source run_demo.sh
|
| 63 |
+
```
|
| 64 |
+
|
| 65 |
+
This shell script can also be used as an example to run the entire workflow.
|
| 66 |
+
|
| 67 |
+
## Data Preparation
|
| 68 |
+
The first step in the process is to convert the events stored in ROOT files into DGL graph objects. This conversion is handled automatically by the Dataset objects during their creation, provided the graph data has not already been saved to disk. To accomplish this, a simple script is used to initialize the relevant Dataset object and then exit. This script needs to be executed for each data chunk in each dataset being used for training.
|
| 69 |
+
|
| 70 |
+
Below is an example of how to use the `scripts/prep_data.py` script:
|
| 71 |
+
|
| 72 |
+
```bash
|
| 73 |
+
datasets=("ttH" "tHjb" "ggF" "VBF" "WH" "ZH" "ttyy" "tttt" "SingleT_schan" "ttbar" "ttW" "ttt")
|
| 74 |
+
chunks=3
|
| 75 |
+
|
| 76 |
+
for data in "${datasets[@]}"; do
|
| 77 |
+
python scripts/prep_data.py --config configs/demo/pretraining_multiclass.yaml --dataset "$data" --shuffle_mode --chunk 0
|
| 78 |
+
for ((i=0; i<chunks; i++)); do
|
| 79 |
+
python scripts/prep_data.py --config configs/demo/pretraining_multiclass.yaml --dataset "$data" --shuffle_mode --chunk "$i"
|
| 80 |
+
done
|
| 81 |
+
done
|
| 82 |
+
```
|
| 83 |
+
|
| 84 |
+
The `--shuffle_mode` flag performs shuffling and pre-batches the graphs in each chunk, since holding the entire dataset in memory and shuffling it together can be prohibitive for large datasets.
|
| 85 |
+
|
| 86 |
+
You will probably see a `list index out of range error`. This is expected, and the program will still save your graphs to disk before throwing this error. Fixing this error is a WIP, but for now can be ignored
|
| 87 |
+
```python
|
| 88 |
+
dgl.save_graphs(str(graph_path).replace('.bin', f'_{self.process_chunks[i]}.bin'), self.graph_chunks[i], {'labels': self.label_chunks[i], 'tracking': self.tracking_chunks[i], 'global': self.global_chunks[i]})
|
| 89 |
+
IndexError: list index out of range
|
| 90 |
+
```
|
| 91 |
+
|
| 92 |
+
## Training
|
| 93 |
+
Training is run by `scripts/training_script`. `--preshuffle` tells it to use the preshuffled and batched graphs rather than shuffling and batching on the fly, and `--restart` can be used to force the training to start from the beginning rather than from the last available checkpoint.
|
| 94 |
+
|
| 95 |
+
Using the `--nocompile` arguement is also recommended, as using `torch.compile()` requires padding the graphs beforehand during data processing.
|
| 96 |
+
|
| 97 |
+
```bash
|
| 98 |
+
python scripts/training_script.py --config configs/stats_100K/pretraining_multiclass.yaml --preshuffle --nocompile --lazy
|
| 99 |
+
```
|
| 100 |
+
|
| 101 |
+
This step should produce the training directory `trainings/stats_100K/pretraining_multiclass/` containing a copy of the config file, checkpoints (`model_epoch_*.pt`) with the model weights after each epoch of training, npz files with the GNN outputs for each event after each epoch of training, and two files `training.log` and `training.png` which summarize the model performance and convergence.
|
| 102 |
+
|
| 103 |
+
## Inference
|
| 104 |
+
Inference is done by `scripts/inference.py`. This script applies the model defined by `--config` onto the samples located at `--target`. A new set of samples with the GNN scores saved as the `--branch` in the ntuples will be created at `--destination`. The `--chunks` arguement will handel the inference in specified chunks.
|
| 105 |
+
|
| 106 |
+
```bash
|
| 107 |
+
python scripts/inference.py \
|
| 108 |
+
--target "/global/cfs/projectdirs/trn007/lbl_atlas/data/stats_100K/ttH_NLO.root" \
|
| 109 |
+
--destination "/global/cfs/projectdirs/trn007/lbl_atlas/data/scores/stats_100K/ttH_NLO.root" \
|
| 110 |
+
--config "configs/stats_100K/finetuning_ttH_CP_even_vs_odd.yaml" \
|
| 111 |
+
--chunks 1 \
|
| 112 |
+
--chunkno 0 \
|
| 113 |
+
--write \
|
| 114 |
+
--branch 'GNN_Score'
|
| 115 |
+
```
|
| 116 |
+
|
| 117 |
+
You can also input a list as the `--config` and the `--branch` to simultaneously apply multiple models onto the same set of samples. An example on how to do this in shell script is in the `run_demo.sh` file.
|
| 118 |
+
|
| 119 |
+
## Running Jobs + Parallelization
|
| 120 |
+
|
| 121 |
+
Perlmutter job scripts are located in `jobs/`. Job scripts are separated into 3 categories: `prep_data`, `training`, and `inference`.
|
| 122 |
+
|
| 123 |
+
The different shell scripts show how to request GPU or CPU nodes from Perlmutter, which are reqired for running jobs.
|
| 124 |
+
|
| 125 |
+
### Data Prep Parallelization
|
| 126 |
+
|
| 127 |
+
The preparation of data can be parallelized across several threads on a CPU. The parallelization is handled by python's `concurrent.futures.ThreadPoolExecutor`.
|
| 128 |
+
|
| 129 |
+
### Training Parallelization
|
| 130 |
+
|
| 131 |
+
Parallelization of GNN training is implemented with `torch.DistributedDataParallel`. The job submission script is in `jobs/training/multinode/submit.sh`.
|
| 132 |
+
|
| 133 |
+
When running a multinode training, remember to use the `--multinode` run-time arguement for the training script.
|
| 134 |
+
|
| 135 |
+
### Inference Parallelization
|
| 136 |
+
|
| 137 |
+
Model inference parallelization is done with `mpi4py` (currently not listed in the conda environment requirements). You can run the parallel inference script with `mpirun -np <num_nodes> python jobs/inference/run_inference.py`.
|
root_gnn_dgl/configs/attention/ttH_CP_even_vs_odd.yaml
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Training_Name: ttH_CP_even_vs_odd
|
| 2 |
+
Training_Directory: trainings/attention/ttH_CP_even_vs_odd
|
| 3 |
+
Model:
|
| 4 |
+
module: models.GCN
|
| 5 |
+
class: Attention_Edge_Network
|
| 6 |
+
args:
|
| 7 |
+
hid_size: 64
|
| 8 |
+
in_size: 7
|
| 9 |
+
out_size: 1
|
| 10 |
+
n_layers: 4
|
| 11 |
+
n_proc_steps: 4
|
| 12 |
+
dropout: 0
|
| 13 |
+
num_heads: 2
|
| 14 |
+
Training:
|
| 15 |
+
epochs: 500
|
| 16 |
+
batch_size: 1024
|
| 17 |
+
learning_rate: 0.0001
|
| 18 |
+
gamma: 0.99
|
| 19 |
+
Datasets:
|
| 20 |
+
ttH_CP_even: &dataset_defn
|
| 21 |
+
module: root_gnn_base.dataset
|
| 22 |
+
class: LazyDataset
|
| 23 |
+
shuffle_chunks: 3
|
| 24 |
+
batch_size: 1024
|
| 25 |
+
padding_mode: NODE
|
| 26 |
+
args: &dataset_args
|
| 27 |
+
name: ttH_CP_even
|
| 28 |
+
label: 0
|
| 29 |
+
# weight_var: weight
|
| 30 |
+
chunks: 3
|
| 31 |
+
buffer_size: 2
|
| 32 |
+
file_names: ttH_NLO.root
|
| 33 |
+
tree_name: output
|
| 34 |
+
fold_var: Number
|
| 35 |
+
raw_dir: /global/cfs/projectdirs/trn007/lbl_atlas/data/stats_100K/
|
| 36 |
+
save_dir: /global/cfs/projectdirs/trn007/lbl_atlas/data/processed_graphs/attention/ttH_CP_even_vs_odd/
|
| 37 |
+
node_branch_names:
|
| 38 |
+
- [jet_pt, ele_pt, mu_pt, ph_pt, MET_met]
|
| 39 |
+
- [jet_eta, ele_eta, mu_eta, ph_eta, 0]
|
| 40 |
+
- [jet_phi, ele_phi, mu_phi, ph_phi, MET_phi]
|
| 41 |
+
- CALC_E
|
| 42 |
+
- [jet_btag, 0, 0, 0, 0]
|
| 43 |
+
- [0, ele_charge, mu_charge, 0, 0]
|
| 44 |
+
- NODE_TYPE
|
| 45 |
+
node_branch_types: [vector, vector, vector, vector, single]
|
| 46 |
+
node_feature_scales: [1e-1, 1, 1, 1e-1, 1, 1, 1]
|
| 47 |
+
folding:
|
| 48 |
+
n_folds: 4
|
| 49 |
+
test: [0]
|
| 50 |
+
# validation: 1
|
| 51 |
+
train: [1, 2, 3]
|
| 52 |
+
ttH_CP_odd:
|
| 53 |
+
<<: *dataset_defn
|
| 54 |
+
args:
|
| 55 |
+
<<: *dataset_args
|
| 56 |
+
name: ttH_CP_odd
|
| 57 |
+
label: 1
|
| 58 |
+
file_names: ttH_CPodd.root
|
root_gnn_dgl/configs/stats_100K/finetuning_ttH_CP_even_vs_odd.yaml
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Training_Name: finetuning_ttH_CP_even_vs_odd
|
| 2 |
+
Training_Directory: trainings/stats_100K/finetuning_ttH_CP_even_vs_odd
|
| 3 |
+
Model:
|
| 4 |
+
module: models.GCN
|
| 5 |
+
class: Transferred_Learning_Finetuning
|
| 6 |
+
args:
|
| 7 |
+
pretraining_path: trainings/stats_100K/pretraining_multiclass/model_epoch_100.pt # update to the last epoch of the pretraining
|
| 8 |
+
pretraining_model:
|
| 9 |
+
module: models.GCN
|
| 10 |
+
class: Edge_Network
|
| 11 |
+
args:
|
| 12 |
+
hid_size: 64
|
| 13 |
+
in_size: 7
|
| 14 |
+
out_size: 12
|
| 15 |
+
n_layers: 4
|
| 16 |
+
n_proc_steps: 4
|
| 17 |
+
hid_size: 64
|
| 18 |
+
in_size: 7
|
| 19 |
+
out_size: 1
|
| 20 |
+
n_layers: 4
|
| 21 |
+
n_proc_steps: 4
|
| 22 |
+
dropout: 0
|
| 23 |
+
Training:
|
| 24 |
+
epochs: 500
|
| 25 |
+
batch_size: 1024
|
| 26 |
+
learning_rate: 0.0001
|
| 27 |
+
gamma: 0.99
|
| 28 |
+
Datasets:
|
| 29 |
+
ttH_CP_even: &dataset_defn
|
| 30 |
+
module: root_gnn_base.dataset
|
| 31 |
+
class: LazyDataset
|
| 32 |
+
shuffle_chunks: 3
|
| 33 |
+
batch_size: 1024
|
| 34 |
+
padding_mode: NONE #one of STEPS, FIXED, or NONE
|
| 35 |
+
args: &dataset_args
|
| 36 |
+
name: ttH_CP_even
|
| 37 |
+
label: 0
|
| 38 |
+
# weight_var: weight
|
| 39 |
+
chunks: 3
|
| 40 |
+
buffer_size: 2
|
| 41 |
+
file_names: ttH_NLO.root
|
| 42 |
+
tree_name: output
|
| 43 |
+
fold_var: Number
|
| 44 |
+
raw_dir: /global/cfs/projectdirs/trn007/lbl_atlas/data/stats_100K/
|
| 45 |
+
save_dir: /global/cfs/projectdirs/trn007/lbl_atlas/data/processed_graphs/stats_100K/ttH_CP_even_vs_odd/
|
| 46 |
+
node_branch_names:
|
| 47 |
+
- [jet_pt, ele_pt, mu_pt, ph_pt, MET_met]
|
| 48 |
+
- [jet_eta, ele_eta, mu_eta, ph_eta, 0]
|
| 49 |
+
- [jet_phi, ele_phi, mu_phi, ph_phi, MET_phi]
|
| 50 |
+
- CALC_E
|
| 51 |
+
- [jet_btag, 0, 0, 0, 0]
|
| 52 |
+
- [0, ele_charge, mu_charge, 0, 0]
|
| 53 |
+
- NODE_TYPE
|
| 54 |
+
node_branch_types: [vector, vector, vector, vector, single]
|
| 55 |
+
node_feature_scales: [1e-1, 1, 1, 1e-1, 1, 1, 1]
|
| 56 |
+
folding:
|
| 57 |
+
n_folds: 4
|
| 58 |
+
test: [0]
|
| 59 |
+
# validation: 1
|
| 60 |
+
train: [1, 2, 3]
|
| 61 |
+
ttH_CP_odd:
|
| 62 |
+
<<: *dataset_defn
|
| 63 |
+
args:
|
| 64 |
+
<<: *dataset_args
|
| 65 |
+
name: ttH_CP_odd
|
| 66 |
+
label: 1
|
| 67 |
+
file_names: ttH_CPodd.root
|
root_gnn_dgl/configs/stats_100K/pretraining_multiclass.yaml
ADDED
|
@@ -0,0 +1,134 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Training_Name: pretraining_multiclass
|
| 2 |
+
Training_Directory: trainings/stats_100K/pretraining_multiclass/
|
| 3 |
+
Model:
|
| 4 |
+
module: models.GCN
|
| 5 |
+
class: Edge_Network
|
| 6 |
+
args:
|
| 7 |
+
hid_size: 64
|
| 8 |
+
in_size: 7
|
| 9 |
+
out_size: 12
|
| 10 |
+
n_layers: 4
|
| 11 |
+
n_proc_steps: 4
|
| 12 |
+
dropout: 0
|
| 13 |
+
Loss:
|
| 14 |
+
module: torch.nn
|
| 15 |
+
class: CrossEntropyLoss
|
| 16 |
+
args: {}
|
| 17 |
+
finish:
|
| 18 |
+
module: torch.nn
|
| 19 |
+
class: Softmax
|
| 20 |
+
args: {dim: 1}
|
| 21 |
+
Training:
|
| 22 |
+
epochs: 500
|
| 23 |
+
batch_size: 1024
|
| 24 |
+
learning_rate: 0.0001
|
| 25 |
+
gamma: 0.99
|
| 26 |
+
Datasets:
|
| 27 |
+
ttH: &dataset_defn
|
| 28 |
+
module: root_gnn_base.dataset
|
| 29 |
+
class: LazyDataset
|
| 30 |
+
shuffle_chunks: 3
|
| 31 |
+
padding_mode: NONE #one of STEPS, FIXED, or NONE
|
| 32 |
+
args: &dataset_args
|
| 33 |
+
name: ttH
|
| 34 |
+
label: 0
|
| 35 |
+
# weight_var: weight
|
| 36 |
+
chunks: 3
|
| 37 |
+
buffer_size: 2
|
| 38 |
+
file_names: ttH_NLO_inc.root
|
| 39 |
+
tree_name: output
|
| 40 |
+
fold_var: Number
|
| 41 |
+
raw_dir: /global/cfs/projectdirs/trn007/lbl_atlas/data/stats_100K/
|
| 42 |
+
save_dir: /global/cfs/projectdirs/trn007/lbl_atlas/data/processed_graphs/stats_100K/pretraining_multiclass/
|
| 43 |
+
node_branch_names:
|
| 44 |
+
- [jet_pt, ele_pt, mu_pt, ph_pt, MET_met]
|
| 45 |
+
- [jet_eta, ele_eta, mu_eta, ph_eta, 0]
|
| 46 |
+
- [jet_phi, ele_phi, mu_phi, ph_phi, MET_phi]
|
| 47 |
+
- CALC_E
|
| 48 |
+
- [jet_btag, 0, 0, 0, 0]
|
| 49 |
+
- [0, ele_charge, mu_charge, 0, 0]
|
| 50 |
+
- NODE_TYPE
|
| 51 |
+
node_branch_types: [vector, vector, vector, vector, single]
|
| 52 |
+
node_feature_scales: [1e-1, 1, 1, 1e-1, 1, 1, 1]
|
| 53 |
+
folding:
|
| 54 |
+
n_folds: 4
|
| 55 |
+
test: [0]
|
| 56 |
+
# validation: [1]
|
| 57 |
+
train: [1, 2, 3]
|
| 58 |
+
tHjb:
|
| 59 |
+
<<: *dataset_defn
|
| 60 |
+
args:
|
| 61 |
+
<<: *dataset_args
|
| 62 |
+
name: tHjb
|
| 63 |
+
label: 1
|
| 64 |
+
file_names: tHjb_NLO_inc.root
|
| 65 |
+
ggF:
|
| 66 |
+
<<: *dataset_defn
|
| 67 |
+
args:
|
| 68 |
+
<<: *dataset_args
|
| 69 |
+
name: ggF
|
| 70 |
+
label: 2
|
| 71 |
+
file_names: ggF_NLO_inc.root
|
| 72 |
+
VBF:
|
| 73 |
+
<<: *dataset_defn
|
| 74 |
+
args:
|
| 75 |
+
<<: *dataset_args
|
| 76 |
+
name: VBF
|
| 77 |
+
label: 3
|
| 78 |
+
file_names: VBF_NLO_inc.root
|
| 79 |
+
WH:
|
| 80 |
+
<<: *dataset_defn
|
| 81 |
+
args:
|
| 82 |
+
<<: *dataset_args
|
| 83 |
+
name: WH
|
| 84 |
+
label: 4
|
| 85 |
+
file_names: WH_NLO_inc.root
|
| 86 |
+
ZH:
|
| 87 |
+
<<: *dataset_defn
|
| 88 |
+
args:
|
| 89 |
+
<<: *dataset_args
|
| 90 |
+
name: ZH
|
| 91 |
+
label: 5
|
| 92 |
+
file_names: ZH_NLO_inc.root
|
| 93 |
+
ttyy:
|
| 94 |
+
<<: *dataset_defn
|
| 95 |
+
args:
|
| 96 |
+
<<: *dataset_args
|
| 97 |
+
name: ttyy_ch
|
| 98 |
+
label: 6
|
| 99 |
+
file_names: 'ttyy.root'
|
| 100 |
+
tttt:
|
| 101 |
+
<<: *dataset_defn
|
| 102 |
+
args:
|
| 103 |
+
<<: *dataset_args
|
| 104 |
+
name: tttt
|
| 105 |
+
label: 7
|
| 106 |
+
file_names: 'tttt.root'
|
| 107 |
+
SingleT_schan:
|
| 108 |
+
<<: *dataset_defn
|
| 109 |
+
args:
|
| 110 |
+
<<: *dataset_args
|
| 111 |
+
name: SingleT_schan
|
| 112 |
+
label: 8
|
| 113 |
+
file_names: 'SingleT_schan.root'
|
| 114 |
+
ttbar:
|
| 115 |
+
<<: *dataset_defn
|
| 116 |
+
args:
|
| 117 |
+
<<: *dataset_args
|
| 118 |
+
name: ttbar
|
| 119 |
+
label: 9
|
| 120 |
+
file_names: 'ttbar.root'
|
| 121 |
+
ttW:
|
| 122 |
+
<<: *dataset_defn
|
| 123 |
+
args:
|
| 124 |
+
<<: *dataset_args
|
| 125 |
+
name: ttW
|
| 126 |
+
label: 10
|
| 127 |
+
file_names: 'ttW.root'
|
| 128 |
+
ttt:
|
| 129 |
+
<<: *dataset_defn
|
| 130 |
+
args:
|
| 131 |
+
<<: *dataset_args
|
| 132 |
+
name: ttt
|
| 133 |
+
label: 11
|
| 134 |
+
file_names: 'ttt.root'
|
root_gnn_dgl/configs/stats_100K/ttH_CP_even_vs_odd.yaml
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Training_Name: ttH_CP_even_vs_odd
|
| 2 |
+
Training_Directory: trainings/stats_100K/ttH_CP_even_vs_odd
|
| 3 |
+
Model:
|
| 4 |
+
module: models.GCN
|
| 5 |
+
class: Edge_Network
|
| 6 |
+
args:
|
| 7 |
+
hid_size: 64
|
| 8 |
+
in_size: 7
|
| 9 |
+
out_size: 1
|
| 10 |
+
n_layers: 4
|
| 11 |
+
n_proc_steps: 4
|
| 12 |
+
dropout: 0
|
| 13 |
+
Training:
|
| 14 |
+
epochs: 500
|
| 15 |
+
batch_size: 1024
|
| 16 |
+
learning_rate: 0.0001
|
| 17 |
+
gamma: 0.99
|
| 18 |
+
Datasets:
|
| 19 |
+
ttH_CP_even: &dataset_defn
|
| 20 |
+
module: root_gnn_base.dataset
|
| 21 |
+
class: LazyDataset
|
| 22 |
+
shuffle_chunks: 3
|
| 23 |
+
batch_size: 1024
|
| 24 |
+
padding_mode: NONE #one of STEPS, FIXED, or NONE
|
| 25 |
+
args: &dataset_args
|
| 26 |
+
name: ttH_CP_even
|
| 27 |
+
label: 0
|
| 28 |
+
# weight_var: weight
|
| 29 |
+
chunks: 3
|
| 30 |
+
buffer_size: 2
|
| 31 |
+
file_names: ttH_NLO.root
|
| 32 |
+
tree_name: output
|
| 33 |
+
fold_var: Number
|
| 34 |
+
raw_dir: /global/cfs/projectdirs/trn007/lbl_atlas/data/stats_100K/
|
| 35 |
+
save_dir: /global/cfs/projectdirs/trn007/lbl_atlas/data/processed_graphs/stats_100K/ttH_CP_even_vs_odd/
|
| 36 |
+
node_branch_names:
|
| 37 |
+
- [jet_pt, ele_pt, mu_pt, ph_pt, MET_met]
|
| 38 |
+
- [jet_eta, ele_eta, mu_eta, ph_eta, 0]
|
| 39 |
+
- [jet_phi, ele_phi, mu_phi, ph_phi, MET_phi]
|
| 40 |
+
- CALC_E
|
| 41 |
+
- [jet_btag, 0, 0, 0, 0]
|
| 42 |
+
- [0, ele_charge, mu_charge, 0, 0]
|
| 43 |
+
- NODE_TYPE
|
| 44 |
+
node_branch_types: [vector, vector, vector, vector, single]
|
| 45 |
+
node_feature_scales: [1e-1, 1, 1, 1e-1, 1, 1, 1]
|
| 46 |
+
folding:
|
| 47 |
+
n_folds: 4
|
| 48 |
+
test: [0]
|
| 49 |
+
# validation: 1
|
| 50 |
+
train: [1, 2, 3]
|
| 51 |
+
ttH_CP_odd:
|
| 52 |
+
<<: *dataset_defn
|
| 53 |
+
args:
|
| 54 |
+
<<: *dataset_args
|
| 55 |
+
name: ttH_CP_odd
|
| 56 |
+
label: 1
|
| 57 |
+
file_names: ttH_CPodd.root
|
root_gnn_dgl/configs/stats_all/finetuning_ttH_CP_even_vs_odd.yaml
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Training_Name: finetuning_ttH_CP_even_vs_odd
|
| 2 |
+
Training_Directory: trainings/stats_all/finetuning_ttH_CP_even_vs_odd
|
| 3 |
+
Model:
|
| 4 |
+
module: models.GCN
|
| 5 |
+
class: Transferred_Learning_Finetuning
|
| 6 |
+
args:
|
| 7 |
+
pretraining_path: trainings/stats_100K/pretraining_multiclass/model_epoch_100.pt # update to the last epoch of the pretraining
|
| 8 |
+
pretraining_model:
|
| 9 |
+
module: models.GCN
|
| 10 |
+
class: Edge_Network
|
| 11 |
+
args:
|
| 12 |
+
hid_size: 64
|
| 13 |
+
in_size: 7
|
| 14 |
+
out_size: 12
|
| 15 |
+
n_layers: 4
|
| 16 |
+
n_proc_steps: 4
|
| 17 |
+
hid_size: 64
|
| 18 |
+
in_size: 7
|
| 19 |
+
out_size: 1
|
| 20 |
+
n_layers: 4
|
| 21 |
+
n_proc_steps: 4
|
| 22 |
+
dropout: 0
|
| 23 |
+
Datasets:
|
| 24 |
+
ttH_CP_even: &dataset_defn
|
| 25 |
+
module: root_gnn_base.dataset
|
| 26 |
+
class: LazyDataset
|
| 27 |
+
shuffle_chunks: 10
|
| 28 |
+
batch_size: 1024
|
| 29 |
+
padding_mode: NONE #one of STEPS, FIXED, or NONE
|
| 30 |
+
args: &dataset_args
|
| 31 |
+
name: ttH_CP_even
|
| 32 |
+
label: 0
|
| 33 |
+
# weight_var: weight
|
| 34 |
+
chunks: 10
|
| 35 |
+
buffer_size: 3
|
| 36 |
+
file_names: ttH_NLO.root
|
| 37 |
+
tree_name: output
|
| 38 |
+
fold_var: Number
|
| 39 |
+
raw_dir: /global/cfs/projectdirs/trn007/lbl_atlas/data/stats_all/
|
| 40 |
+
save_dir: /global/cfs/projectdirs/trn007/lbl_atlas/data/processed_graphs/stats_all/ttH_CP_even_vs_odd/
|
| 41 |
+
node_branch_names:
|
| 42 |
+
- [jet_pt, ele_pt, mu_pt, ph_pt, MET_met]
|
| 43 |
+
- [jet_eta, ele_eta, mu_eta, ph_eta, 0]
|
| 44 |
+
- [jet_phi, ele_phi, mu_phi, ph_phi, MET_phi]
|
| 45 |
+
- CALC_E
|
| 46 |
+
- [jet_btag, 0, 0, 0, 0]
|
| 47 |
+
- [0, ele_charge, mu_charge, 0, 0]
|
| 48 |
+
- NODE_TYPE
|
| 49 |
+
node_branch_types: [vector, vector, vector, vector, single]
|
| 50 |
+
node_feature_scales: [1e-1, 1, 1, 1e-1, 1, 1, 1]
|
| 51 |
+
folding:
|
| 52 |
+
n_folds: 4
|
| 53 |
+
test: [0]
|
| 54 |
+
# validation: 1
|
| 55 |
+
train: [1, 2, 3]
|
| 56 |
+
ttH_CP_odd:
|
| 57 |
+
<<: *dataset_defn
|
| 58 |
+
args:
|
| 59 |
+
<<: *dataset_args
|
| 60 |
+
name: ttH_CP_odd
|
| 61 |
+
label: 1
|
| 62 |
+
file_names: ttH_CPodd.root
|
root_gnn_dgl/configs/stats_all/pretraining_multiclass.yaml
ADDED
|
@@ -0,0 +1,134 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Training_Name: pretraining_multiclass
|
| 2 |
+
Training_Directory: trainings/stats_all/pretraining_multiclass/
|
| 3 |
+
Model:
|
| 4 |
+
module: models.GCN
|
| 5 |
+
class: Edge_Network
|
| 6 |
+
args:
|
| 7 |
+
hid_size: 64
|
| 8 |
+
in_size: 7
|
| 9 |
+
out_size: 12
|
| 10 |
+
n_layers: 4
|
| 11 |
+
n_proc_steps: 4
|
| 12 |
+
dropout: 0
|
| 13 |
+
Loss:
|
| 14 |
+
module: torch.nn
|
| 15 |
+
class: CrossEntropyLoss
|
| 16 |
+
args: {}
|
| 17 |
+
finish:
|
| 18 |
+
module: torch.nn
|
| 19 |
+
class: Softmax
|
| 20 |
+
args: {dim: 1}
|
| 21 |
+
Training:
|
| 22 |
+
epochs: 500
|
| 23 |
+
batch_size: 1024
|
| 24 |
+
learning_rate: 0.0001
|
| 25 |
+
gamma: 0.99
|
| 26 |
+
Datasets:
|
| 27 |
+
ttH: &dataset_defn
|
| 28 |
+
module: root_gnn_base.dataset
|
| 29 |
+
class: LazyDataset
|
| 30 |
+
shuffle_chunks: 10
|
| 31 |
+
padding_mode: NONE #one of STEPS, FIXED, or NONE
|
| 32 |
+
args: &dataset_args
|
| 33 |
+
name: ttH
|
| 34 |
+
label: 0
|
| 35 |
+
# weight_var: weight
|
| 36 |
+
chunks: 10
|
| 37 |
+
buffer_size: 3
|
| 38 |
+
file_names: ttH_NLO_inc.root
|
| 39 |
+
tree_name: output
|
| 40 |
+
fold_var: Number
|
| 41 |
+
raw_dir: /global/cfs/projectdirs/trn007/lbl_atlas/data/stats_all/
|
| 42 |
+
save_dir: /global/cfs/projectdirs/trn007/lbl_atlas/data/processed_graphs/stats_all/pretraining_multiclass/
|
| 43 |
+
node_branch_names:
|
| 44 |
+
- [jet_pt, ele_pt, mu_pt, ph_pt, MET_met]
|
| 45 |
+
- [jet_eta, ele_eta, mu_eta, ph_eta, 0]
|
| 46 |
+
- [jet_phi, ele_phi, mu_phi, ph_phi, MET_phi]
|
| 47 |
+
- CALC_E
|
| 48 |
+
- [jet_btag, 0, 0, 0, 0]
|
| 49 |
+
- [0, ele_charge, mu_charge, 0, 0]
|
| 50 |
+
- NODE_TYPE
|
| 51 |
+
node_branch_types: [vector, vector, vector, vector, single]
|
| 52 |
+
node_feature_scales: [1e-1, 1, 1, 1e-1, 1, 1, 1]
|
| 53 |
+
folding:
|
| 54 |
+
n_folds: 4
|
| 55 |
+
test: [0]
|
| 56 |
+
# validation: [1]
|
| 57 |
+
train: [1, 2, 3]
|
| 58 |
+
tHjb:
|
| 59 |
+
<<: *dataset_defn
|
| 60 |
+
args:
|
| 61 |
+
<<: *dataset_args
|
| 62 |
+
name: tHjb
|
| 63 |
+
label: 1
|
| 64 |
+
file_names: tHjb_NLO_inc.root
|
| 65 |
+
ggF:
|
| 66 |
+
<<: *dataset_defn
|
| 67 |
+
args:
|
| 68 |
+
<<: *dataset_args
|
| 69 |
+
name: ggF
|
| 70 |
+
label: 2
|
| 71 |
+
file_names: ggF_NLO_inc.root
|
| 72 |
+
VBF:
|
| 73 |
+
<<: *dataset_defn
|
| 74 |
+
args:
|
| 75 |
+
<<: *dataset_args
|
| 76 |
+
name: VBF
|
| 77 |
+
label: 3
|
| 78 |
+
file_names: VBF_NLO_inc.root
|
| 79 |
+
WH:
|
| 80 |
+
<<: *dataset_defn
|
| 81 |
+
args:
|
| 82 |
+
<<: *dataset_args
|
| 83 |
+
name: WH
|
| 84 |
+
label: 4
|
| 85 |
+
file_names: WH_NLO_inc.root
|
| 86 |
+
ZH:
|
| 87 |
+
<<: *dataset_defn
|
| 88 |
+
args:
|
| 89 |
+
<<: *dataset_args
|
| 90 |
+
name: ZH
|
| 91 |
+
label: 5
|
| 92 |
+
file_names: ZH_NLO_inc.root
|
| 93 |
+
ttyy:
|
| 94 |
+
<<: *dataset_defn
|
| 95 |
+
args:
|
| 96 |
+
<<: *dataset_args
|
| 97 |
+
name: ttyy_ch
|
| 98 |
+
label: 6
|
| 99 |
+
file_names: 'ttyy.root'
|
| 100 |
+
tttt:
|
| 101 |
+
<<: *dataset_defn
|
| 102 |
+
args:
|
| 103 |
+
<<: *dataset_args
|
| 104 |
+
name: tttt
|
| 105 |
+
label: 7
|
| 106 |
+
file_names: 'tttt.root'
|
| 107 |
+
SingleT_schan:
|
| 108 |
+
<<: *dataset_defn
|
| 109 |
+
args:
|
| 110 |
+
<<: *dataset_args
|
| 111 |
+
name: SingleT_schan
|
| 112 |
+
label: 8
|
| 113 |
+
file_names: 'SingleT_schan.root'
|
| 114 |
+
ttbar:
|
| 115 |
+
<<: *dataset_defn
|
| 116 |
+
args:
|
| 117 |
+
<<: *dataset_args
|
| 118 |
+
name: ttbar
|
| 119 |
+
label: 9
|
| 120 |
+
file_names: 'ttbar.root'
|
| 121 |
+
ttW:
|
| 122 |
+
<<: *dataset_defn
|
| 123 |
+
args:
|
| 124 |
+
<<: *dataset_args
|
| 125 |
+
name: ttW
|
| 126 |
+
label: 10
|
| 127 |
+
file_names: 'ttW.root'
|
| 128 |
+
ttt:
|
| 129 |
+
<<: *dataset_defn
|
| 130 |
+
args:
|
| 131 |
+
<<: *dataset_args
|
| 132 |
+
name: ttt
|
| 133 |
+
label: 11
|
| 134 |
+
file_names: 'ttt.root'
|
root_gnn_dgl/configs/stats_all/ttH_CP_even_vs_odd.yaml
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Training_Name: ttH_CP_even_vs_odd
|
| 2 |
+
Training_Directory: trainings/stats_all/ttH_CP_even_vs_odd
|
| 3 |
+
Model:
|
| 4 |
+
module: models.GCN
|
| 5 |
+
class: Edge_Network
|
| 6 |
+
args:
|
| 7 |
+
hid_size: 64
|
| 8 |
+
in_size: 7
|
| 9 |
+
out_size: 1
|
| 10 |
+
n_layers: 4
|
| 11 |
+
n_proc_steps: 4
|
| 12 |
+
dropout: 0
|
| 13 |
+
Training:
|
| 14 |
+
epochs: 500
|
| 15 |
+
batch_size: 1024
|
| 16 |
+
learning_rate: 0.0001
|
| 17 |
+
gamma: 0.99
|
| 18 |
+
Datasets:
|
| 19 |
+
ttH_CP_even: &dataset_defn
|
| 20 |
+
module: root_gnn_base.dataset
|
| 21 |
+
class: LazyDataset
|
| 22 |
+
shuffle_chunks: 10
|
| 23 |
+
batch_size: 1024
|
| 24 |
+
padding_mode: NONE #one of STEPS, FIXED, or NONE
|
| 25 |
+
args: &dataset_args
|
| 26 |
+
name: ttH_CP_even
|
| 27 |
+
label: 0
|
| 28 |
+
# weight_var: weight
|
| 29 |
+
chunks: 10
|
| 30 |
+
buffer_size: 3
|
| 31 |
+
file_names: ttH_NLO.root
|
| 32 |
+
tree_name: output
|
| 33 |
+
fold_var: Number
|
| 34 |
+
raw_dir: /global/cfs/projectdirs/trn007/lbl_atlas/data/stats_all/
|
| 35 |
+
save_dir: /global/cfs/projectdirs/trn007/lbl_atlas/data/processed_graphs/stats_all/ttH_CP_even_vs_odd/
|
| 36 |
+
node_branch_names:
|
| 37 |
+
- [jet_pt, ele_pt, mu_pt, ph_pt, MET_met]
|
| 38 |
+
- [jet_eta, ele_eta, mu_eta, ph_eta, 0]
|
| 39 |
+
- [jet_phi, ele_phi, mu_phi, ph_phi, MET_phi]
|
| 40 |
+
- CALC_E
|
| 41 |
+
- [jet_btag, 0, 0, 0, 0]
|
| 42 |
+
- [0, ele_charge, mu_charge, 0, 0]
|
| 43 |
+
- NODE_TYPE
|
| 44 |
+
node_branch_types: [vector, vector, vector, vector, single]
|
| 45 |
+
node_feature_scales: [1e-1, 1, 1, 1e-1, 1, 1, 1]
|
| 46 |
+
folding:
|
| 47 |
+
n_folds: 4
|
| 48 |
+
test: [0]
|
| 49 |
+
# validation: 1
|
| 50 |
+
train: [1, 2, 3]
|
| 51 |
+
ttH_CP_odd:
|
| 52 |
+
<<: *dataset_defn
|
| 53 |
+
args:
|
| 54 |
+
<<: *dataset_args
|
| 55 |
+
name: ttH_CP_odd
|
| 56 |
+
label: 1
|
| 57 |
+
file_names: ttH_CPodd.root
|
root_gnn_dgl/jobs/cpu.sh
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
salloc --nodes=1 --ntasks=64 --cpus-per-task=1 --qos=interactive --time=04:00:00 --constraint=cpu --account=trn007
|
root_gnn_dgl/jobs/inference/run_inference.py
ADDED
|
@@ -0,0 +1,214 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import os
|
| 2 |
+
import subprocess
|
| 3 |
+
from mpi4py import MPI
|
| 4 |
+
|
| 5 |
+
# Define the number of GPUs per node
|
| 6 |
+
GPUS_PER_NODE = 4
|
| 7 |
+
|
| 8 |
+
# Define your files, configs, and branch namesfiles = [
|
| 9 |
+
files = [
|
| 10 |
+
"merged_aMCPy8_tHjb125_CP_0_AF3_had_scaled.root",
|
| 11 |
+
"merged_aMCPy8_tHjb125_CP_0_AF3_lep_scaled.root",
|
| 12 |
+
"merged_aMCPy8_tHjb125_CP_0_FullSim_had_scaled.root",
|
| 13 |
+
"merged_aMCPy8_tHjb125_CP_0_FullSim_lep_scaled.root",
|
| 14 |
+
"merged_aMCPy8_tHjb125_CP_15_AF3_had_scaled.root",
|
| 15 |
+
"merged_aMCPy8_tHjb125_CP_15_AF3_lep_scaled.root",
|
| 16 |
+
"merged_aMCPy8_tHjb125_CP_30_AF3_had_scaled.root",
|
| 17 |
+
"merged_aMCPy8_tHjb125_CP_30_AF3_lep_scaled.root",
|
| 18 |
+
"merged_aMCPy8_tHjb125_CP_45_AF3_had_scaled.root",
|
| 19 |
+
"merged_aMCPy8_tHjb125_CP_45_AF3_lep_scaled.root",
|
| 20 |
+
"merged_aMCPy8_tHjb125_CP_45_FullSim_had_scaled.root",
|
| 21 |
+
"merged_aMCPy8_tHjb125_CP_45_FullSim_lep_scaled.root",
|
| 22 |
+
"merged_aMCPy8_tHjb125_CP_60_AF3_had_scaled.root",
|
| 23 |
+
"merged_aMCPy8_tHjb125_CP_60_AF3_lep_scaled.root",
|
| 24 |
+
"merged_aMCPy8_tHjb125_CP_75_AF3_had_scaled.root",
|
| 25 |
+
"merged_aMCPy8_tHjb125_CP_75_AF3_lep_scaled.root",
|
| 26 |
+
"merged_aMCPy8_tHjb125_CP_90_AF3_had_scaled.root",
|
| 27 |
+
"merged_aMCPy8_tHjb125_CP_90_AF3_lep_scaled.root",
|
| 28 |
+
"merged_aMCPy8_ttH125_CP_0_AF3_had_scaled.root",
|
| 29 |
+
"merged_aMCPy8_ttH125_CP_0_AF3_lep_scaled.root",
|
| 30 |
+
"merged_aMCPy8_ttH125_CP_0_FullSim_had_scaled.root",
|
| 31 |
+
"merged_aMCPy8_ttH125_CP_0_FullSim_lep_scaled.root",
|
| 32 |
+
"merged_aMCPy8_ttH125_CP_15_AF3_had_scaled.root",
|
| 33 |
+
"merged_aMCPy8_ttH125_CP_15_AF3_lep_scaled.root",
|
| 34 |
+
"merged_aMCPy8_ttH125_CP_30_AF3_had_scaled.root",
|
| 35 |
+
"merged_aMCPy8_ttH125_CP_30_AF3_lep_scaled.root",
|
| 36 |
+
"merged_aMCPy8_ttH125_CP_45_AF3_had_scaled.root",
|
| 37 |
+
"merged_aMCPy8_ttH125_CP_45_AF3_lep_scaled.root",
|
| 38 |
+
"merged_aMCPy8_ttH125_CP_45_FullSim_had_scaled.root",
|
| 39 |
+
"merged_aMCPy8_ttH125_CP_45_FullSim_lep_scaled.root",
|
| 40 |
+
"merged_aMCPy8_ttH125_CP_60_AF3_had_scaled.root",
|
| 41 |
+
"merged_aMCPy8_ttH125_CP_60_AF3_lep_scaled.root",
|
| 42 |
+
"merged_aMCPy8_ttH125_CP_75_AF3_had_scaled.root",
|
| 43 |
+
"merged_aMCPy8_ttH125_CP_75_AF3_lep_scaled.root",
|
| 44 |
+
"merged_aMCPy8_ttH125_CP_90_AF3_had_scaled.root",
|
| 45 |
+
"merged_aMCPy8_ttH125_CP_90_AF3_lep_scaled.root",
|
| 46 |
+
"merged_aMCPy8_tWH125_CP_0_AF3_had_scaled.root",
|
| 47 |
+
"merged_aMCPy8_tWH125_CP_0_AF3_lep_scaled.root",
|
| 48 |
+
"merged_aMCPy8_tWH125_CP_0_FullSim_had_scaled.root",
|
| 49 |
+
"merged_aMCPy8_tWH125_CP_0_FullSim_lep_scaled.root",
|
| 50 |
+
"merged_aMCPy8_tWH125_CP_15_AF3_had_scaled.root",
|
| 51 |
+
"merged_aMCPy8_tWH125_CP_15_AF3_lep_scaled.root",
|
| 52 |
+
"merged_aMCPy8_tWH125_CP_30_AF3_had_scaled.root",
|
| 53 |
+
"merged_aMCPy8_tWH125_CP_30_AF3_lep_scaled.root",
|
| 54 |
+
"merged_aMCPy8_tWH125_CP_45_AF3_had_scaled.root",
|
| 55 |
+
"merged_aMCPy8_tWH125_CP_45_AF3_lep_scaled.root",
|
| 56 |
+
"merged_aMCPy8_tWH125_CP_45_FullSim_had_scaled.root",
|
| 57 |
+
"merged_aMCPy8_tWH125_CP_45_FullSim_lep_scaled.root",
|
| 58 |
+
"merged_aMCPy8_tWH125_CP_60_AF3_had_scaled.root",
|
| 59 |
+
"merged_aMCPy8_tWH125_CP_60_AF3_lep_scaled.root",
|
| 60 |
+
"merged_aMCPy8_tWH125_CP_75_AF3_had_scaled.root",
|
| 61 |
+
"merged_aMCPy8_tWH125_CP_75_AF3_lep_scaled.root",
|
| 62 |
+
"merged_aMCPy8_tWH125_CP_90_AF3_had_scaled.root",
|
| 63 |
+
"merged_aMCPy8_tWH125_CP_90_AF3_lep_scaled.root",
|
| 64 |
+
"merged_hadnti_data.root",
|
| 65 |
+
"merged_hadti_data.root",
|
| 66 |
+
"merged_lepnti_data.root",
|
| 67 |
+
"merged_lepti_data.root",
|
| 68 |
+
"merged_MGPy8_ttyy_combined_FullSim_had_scaled.root",
|
| 69 |
+
"merged_MGPy8_ttyy_combined_FullSim_lep_scaled.root",
|
| 70 |
+
"merged_PhPy8_4FS_A14NNPDF_bbH125_FullSim_had_scaled.root",
|
| 71 |
+
"merged_PhPy8_4FS_A14NNPDF_bbH125_FullSim_lep_scaled.root",
|
| 72 |
+
"merged_PhPy8_ggH125_NNLOPS_FullSim_had_scaled.root",
|
| 73 |
+
"merged_PhPy8_ggH125_NNLOPS_FullSim_lep_scaled.root",
|
| 74 |
+
"merged_PhPy8_ggZH125_FullSim_had_scaled.root",
|
| 75 |
+
"merged_PhPy8_ggZH125_FullSim_lep_scaled.root",
|
| 76 |
+
"merged_PhPy8_VBFH125_FullSim_had_scaled.root",
|
| 77 |
+
"merged_PhPy8_VBFH125_FullSim_lep_scaled.root",
|
| 78 |
+
"merged_PhPy8_WmH125J_MINLO_FullSim_had_scaled.root",
|
| 79 |
+
"merged_PhPy8_WmH125J_MINLO_FullSim_lep_scaled.root",
|
| 80 |
+
"merged_PhPy8_WpH125J_MINLO_FullSim_had_scaled.root",
|
| 81 |
+
"merged_PhPy8_WpH125J_MINLO_FullSim_lep_scaled.root",
|
| 82 |
+
"merged_PhPy8_ZH125J_MINLO_FullSim_had_scaled.root",
|
| 83 |
+
"merged_PhPy8_ZH125J_MINLO_FullSim_lep_scaled.root",
|
| 84 |
+
]
|
| 85 |
+
# Configurations for each type of file
|
| 86 |
+
config = [
|
| 87 |
+
"configs/model_configs/run_3_ttH/v06/sb_yukawa_no_weights.yaml",
|
| 88 |
+
"configs/model_configs/run_3_ttH/v06/sb_yukawa_weights.yaml",
|
| 89 |
+
"configs/model_configs/run_3_ttH/v06/tHjb_CP_no_weights.yaml",
|
| 90 |
+
"configs/model_configs/run_3_ttH/v06/tHjb_CP_weights.yaml",
|
| 91 |
+
"configs/model_configs/run_3_ttH/v06/ttH_CP_no_weights.yaml",
|
| 92 |
+
"configs/model_configs/run_3_ttH/v06/ttH_CP_weights.yaml",
|
| 93 |
+
"configs/model_configs/run_3_ttH/v06/ttH_tHjb_tWH_CP_no_weights.yaml",
|
| 94 |
+
"configs/model_configs/run_3_ttH/v06/ttH_tHjb_tWH_CP_weights.yaml",
|
| 95 |
+
"configs/model_configs/run_3_ttH/v06/tWH_CP_no_weights.yaml",
|
| 96 |
+
"configs/model_configs/run_3_ttH/v06/tWH_CP_weights.yaml",
|
| 97 |
+
|
| 98 |
+
]
|
| 99 |
+
|
| 100 |
+
# Branch names for each type of file
|
| 101 |
+
branch_name = [
|
| 102 |
+
"sb_yukawa_no_weights_score",
|
| 103 |
+
"sb_yukawa_weights_score",
|
| 104 |
+
"tHjb_CP_no_weights_score",
|
| 105 |
+
"tHjb_CP_weights_score",
|
| 106 |
+
"ttH_CP_no_weights_score",
|
| 107 |
+
"ttH_CP_weights_score",
|
| 108 |
+
"ttH_tHjb_tWH_CP_no_weights_score",
|
| 109 |
+
"ttH_tHjb_tWH_CP_weights_score",
|
| 110 |
+
"tWH_CP_no_weights_score",
|
| 111 |
+
"tWH_CP_weights_score",
|
| 112 |
+
]
|
| 113 |
+
|
| 114 |
+
# MPI Initialization
|
| 115 |
+
comm = MPI.COMM_WORLD
|
| 116 |
+
rank = comm.Get_rank() # Process rank (unique ID for each process)
|
| 117 |
+
size = comm.Get_size() # Total number of processes across all nodes
|
| 118 |
+
|
| 119 |
+
# Master process manages the task queue
|
| 120 |
+
def master():
|
| 121 |
+
num_workers = size - 1 # Exclude the master process
|
| 122 |
+
task_queue = files[:] # Copy the list of files
|
| 123 |
+
workers_busy = [False] * num_workers # Track if workers are busy
|
| 124 |
+
|
| 125 |
+
print(f"Master process starting with {num_workers} workers.")
|
| 126 |
+
|
| 127 |
+
# Distribute initial tasks to workers
|
| 128 |
+
for worker_rank in range(1, size):
|
| 129 |
+
if task_queue:
|
| 130 |
+
# Send a file to the worker
|
| 131 |
+
file = task_queue.pop(0)
|
| 132 |
+
comm.send(file, dest=worker_rank, tag=0)
|
| 133 |
+
workers_busy[worker_rank - 1] = True
|
| 134 |
+
else:
|
| 135 |
+
# No tasks left, send termination signal
|
| 136 |
+
comm.send(None, dest=worker_rank, tag=1)
|
| 137 |
+
|
| 138 |
+
# Process results and assign new tasks dynamically
|
| 139 |
+
while any(workers_busy):
|
| 140 |
+
# Receive results from workers
|
| 141 |
+
status = MPI.Status()
|
| 142 |
+
result = comm.recv(source=MPI.ANY_SOURCE, tag=MPI.ANY_TAG, status=status)
|
| 143 |
+
worker_rank = status.Get_source()
|
| 144 |
+
workers_busy[worker_rank - 1] = False # Worker is now free
|
| 145 |
+
|
| 146 |
+
# Assign a new task if available
|
| 147 |
+
if task_queue:
|
| 148 |
+
file = task_queue.pop(0)
|
| 149 |
+
comm.send(file, dest=worker_rank, tag=0)
|
| 150 |
+
workers_busy[worker_rank - 1] = True
|
| 151 |
+
else:
|
| 152 |
+
# No tasks left, send termination signal
|
| 153 |
+
comm.send(None, dest=worker_rank, tag=1)
|
| 154 |
+
|
| 155 |
+
print("Master process: All tasks completed.")
|
| 156 |
+
|
| 157 |
+
# Worker processes handle tasks dynamically
|
| 158 |
+
def worker():
|
| 159 |
+
gpu_id = (rank - 1) % GPUS_PER_NODE # Assign GPU ID based on rank
|
| 160 |
+
print(f"Worker {rank} starting, GPU ID: {gpu_id}", flush=True)
|
| 161 |
+
|
| 162 |
+
while True:
|
| 163 |
+
# Receive a task from the master
|
| 164 |
+
file = comm.recv(source=0, tag=MPI.ANY_TAG)
|
| 165 |
+
if file is None:
|
| 166 |
+
# Termination signal received
|
| 167 |
+
print(f"Worker {rank}: Termination signal received.")
|
| 168 |
+
break
|
| 169 |
+
|
| 170 |
+
# Initialize config and branch_name for each file
|
| 171 |
+
local_config = config[:] # Create a copy of the global config
|
| 172 |
+
local_branch_name = branch_name[:] # Create a copy of the global branch_name
|
| 173 |
+
|
| 174 |
+
# Determine file type and append appropriate configurations
|
| 175 |
+
if "had" in file:
|
| 176 |
+
local_config += had_config # Append had-specific configurations
|
| 177 |
+
local_branch_name += had_branch_name # Append had-specific branch names
|
| 178 |
+
elif "lep" in file:
|
| 179 |
+
local_config += lep_config # Append lep-specific configurations
|
| 180 |
+
local_branch_name += lep_branch_name # Append lep-specific branch names
|
| 181 |
+
|
| 182 |
+
# Process the file
|
| 183 |
+
print(f"Worker {rank}: Processing file {file} on GPU {gpu_id}", flush=True)
|
| 184 |
+
print(f"branches = {local_branch_name}")
|
| 185 |
+
target = f"/global/cfs/projectdirs/atlas/joshua/ttHCP/ntuples/v02/preselection/merged/{file}"
|
| 186 |
+
destination = f"/global/cfs/projectdirs/atlas/joshua/ttHCP/ntuples/scores/gnn_v06/{file}"
|
| 187 |
+
|
| 188 |
+
# Set the GPU for this process
|
| 189 |
+
os.environ["CUDA_VISIBLE_DEVICES"] = str(gpu_id)
|
| 190 |
+
|
| 191 |
+
# Build the command
|
| 192 |
+
command = [
|
| 193 |
+
"python", "scripts/inference.py",
|
| 194 |
+
"--target", target,
|
| 195 |
+
"--destination", destination,
|
| 196 |
+
"--config", *local_config,
|
| 197 |
+
"--branch_name", *local_branch_name,
|
| 198 |
+
"--chunks", "1",
|
| 199 |
+
"--chunkno", "0",
|
| 200 |
+
"--write"
|
| 201 |
+
]
|
| 202 |
+
|
| 203 |
+
# Execute the command
|
| 204 |
+
subprocess.run(command)
|
| 205 |
+
|
| 206 |
+
# Notify the master that the task is complete
|
| 207 |
+
comm.send(f"Worker {rank}: Finished {file}", dest=0, tag=0)
|
| 208 |
+
|
| 209 |
+
# Main function
|
| 210 |
+
if __name__ == "__main__":
|
| 211 |
+
if rank == 0:
|
| 212 |
+
master()
|
| 213 |
+
else:
|
| 214 |
+
worker()
|
root_gnn_dgl/jobs/interactive.sh
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
salloc --nodes 1 --qos shared_interactive --time 04:00:00 --constraint gpu --account=trn007 --gres=gpu:1
|
root_gnn_dgl/jobs/prep_data/prep_data.sh
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/bin/bash
|
| 2 |
+
|
| 3 |
+
# Arguments
|
| 4 |
+
config=$1 # YAML configuration file
|
| 5 |
+
dataset=$2 # Dataset name
|
| 6 |
+
CHUNKS=$3 # Number of chunks
|
| 7 |
+
|
| 8 |
+
args=$4 # Additional arguments to pass to prep_data.py
|
| 9 |
+
|
| 10 |
+
# Prepare the initial command for chunk 0
|
| 11 |
+
command="scripts/prep_data.py --dataset $dataset --shuffle_mode --chunk 0 --config $config $args"
|
| 12 |
+
echo "$command"
|
| 13 |
+
python $command
|
| 14 |
+
|
| 15 |
+
# Loop through all chunks
|
| 16 |
+
for ((i=0; i<$CHUNKS; i++)); do
|
| 17 |
+
command="scripts/prep_data.py --dataset $dataset --shuffle_mode --chunk $i --config $config $args"
|
| 18 |
+
echo "$command"
|
| 19 |
+
python $command
|
| 20 |
+
done
|
root_gnn_dgl/jobs/prep_data/run_processing.py
ADDED
|
@@ -0,0 +1,103 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from concurrent.futures import ThreadPoolExecutor, as_completed
|
| 2 |
+
import yaml
|
| 3 |
+
import os
|
| 4 |
+
import subprocess
|
| 5 |
+
|
| 6 |
+
def extract_dataset_keys_and_chunks(yaml_file):
|
| 7 |
+
"""
|
| 8 |
+
Extract keys and shuffle_chunks under the 'Datasets' section from a YAML file.
|
| 9 |
+
"""
|
| 10 |
+
try:
|
| 11 |
+
# Open and parse the YAML file
|
| 12 |
+
with open(yaml_file, 'r') as file:
|
| 13 |
+
config = yaml.safe_load(file)
|
| 14 |
+
|
| 15 |
+
# Check if 'Datasets' exists in the YAML file
|
| 16 |
+
if 'Datasets' in config:
|
| 17 |
+
datasets = config['Datasets']
|
| 18 |
+
results = []
|
| 19 |
+
for key, value in datasets.items():
|
| 20 |
+
# Extract shuffle_chunks if available
|
| 21 |
+
shuffle_chunks = value.get('shuffle_chunks', None)
|
| 22 |
+
results.append((key, shuffle_chunks))
|
| 23 |
+
return results
|
| 24 |
+
else:
|
| 25 |
+
print(f"No 'Datasets' section found in {yaml_file}.")
|
| 26 |
+
return []
|
| 27 |
+
except Exception as e:
|
| 28 |
+
print(f"Error reading {yaml_file}: {e}")
|
| 29 |
+
return []
|
| 30 |
+
|
| 31 |
+
def call_bash_script(config, dataset_key, shuffle_chunks, bash_script):
|
| 32 |
+
"""
|
| 33 |
+
Call a bash script with dataset_key and shuffle_chunks as arguments.
|
| 34 |
+
"""
|
| 35 |
+
try:
|
| 36 |
+
# Construct the command to call the bash script
|
| 37 |
+
command = f"{bash_script} {config} {dataset_key} {shuffle_chunks}"
|
| 38 |
+
|
| 39 |
+
print(f"Executing command: {command}") # Debugging: Print the command being executed
|
| 40 |
+
|
| 41 |
+
# Run the command
|
| 42 |
+
result = subprocess.run(command, shell=True, check=True)
|
| 43 |
+
return f"Success: {dataset_key}"
|
| 44 |
+
except subprocess.CalledProcessError as e:
|
| 45 |
+
return f"Error executing bash script for dataset {dataset_key}: {e.stderr.decode()}"
|
| 46 |
+
|
| 47 |
+
def process_yaml_file(config, base_directory, bash_script):
|
| 48 |
+
"""
|
| 49 |
+
Process a single YAML file by extracting datasets and calling the bash script in parallel.
|
| 50 |
+
"""
|
| 51 |
+
yaml_file = os.path.join(base_directory, config) # Construct full path
|
| 52 |
+
if os.path.exists(yaml_file):
|
| 53 |
+
print(f"Processing file: {config}")
|
| 54 |
+
datasets = extract_dataset_keys_and_chunks(yaml_file)
|
| 55 |
+
|
| 56 |
+
# Use ThreadPoolExecutor to parallelize bash script calls for datasets
|
| 57 |
+
max_workers = min(len(datasets), os.cpu_count()) # Limit workers to number of datasets or CPU cores
|
| 58 |
+
with ThreadPoolExecutor(max_workers=max_workers) as executor:
|
| 59 |
+
futures = [
|
| 60 |
+
executor.submit(call_bash_script, config, key, shuffle_chunks, bash_script)
|
| 61 |
+
for key, shuffle_chunks in datasets
|
| 62 |
+
]
|
| 63 |
+
|
| 64 |
+
# Collect and print results as they complete
|
| 65 |
+
results = []
|
| 66 |
+
for future in as_completed(futures):
|
| 67 |
+
results.append(future.result())
|
| 68 |
+
return results
|
| 69 |
+
else:
|
| 70 |
+
return [f"File not found: {yaml_file}"]
|
| 71 |
+
|
| 72 |
+
def main():
|
| 73 |
+
# Base directory containing the YAML files
|
| 74 |
+
base_directory = os.getcwd() + "/"
|
| 75 |
+
|
| 76 |
+
# List of YAML configuration files (relative to the base directory)
|
| 77 |
+
configs = [
|
| 78 |
+
# "configs/stats_100K/pretraining_multiclass.yaml",
|
| 79 |
+
# "configs/stats_100K/ttH_CP_even_vs_odd.yaml",
|
| 80 |
+
# "configs/stats_all/pretraining_multiclass.yaml",
|
| 81 |
+
# "configs/stats_all/ttH_CP_even_vs_odd.yaml",
|
| 82 |
+
"configs/attention/ttH_CP_even_vs_odd.yaml",
|
| 83 |
+
]
|
| 84 |
+
|
| 85 |
+
# Path to the bash script to be called
|
| 86 |
+
bash_script = base_directory + "jobs/prep_data/prep_data.sh"
|
| 87 |
+
|
| 88 |
+
# Use ThreadPoolExecutor to process YAML files concurrently
|
| 89 |
+
max_workers = os.cpu_count() # Use all available CPU cores
|
| 90 |
+
with ThreadPoolExecutor(max_workers=max_workers) as executor:
|
| 91 |
+
futures = [
|
| 92 |
+
executor.submit(process_yaml_file, config, base_directory, bash_script)
|
| 93 |
+
for config in configs
|
| 94 |
+
]
|
| 95 |
+
|
| 96 |
+
# Collect and print results as they complete
|
| 97 |
+
for future in as_completed(futures):
|
| 98 |
+
results = future.result()
|
| 99 |
+
for result in results:
|
| 100 |
+
print(result)
|
| 101 |
+
|
| 102 |
+
if __name__ == "__main__":
|
| 103 |
+
main()
|
root_gnn_dgl/jobs/salloc.sh
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
salloc --nodes 4 --qos interactive --time 04:00:00 --constraint gpu --account=trn007 --gres=gpu:4
|