Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Experiments with end-to-end training #12

Merged
merged 52 commits into from
Jan 30, 2020
Merged

Experiments with end-to-end training #12

merged 52 commits into from
Jan 30, 2020

Conversation

jpata
Copy link
Owner

@jpata jpata commented Jan 18, 2020

  • merge GNN code from @jmduarte Benchmarking GNN #10
  • retrain all baseline models with Run3 TTbar dataset
  • Improved graph_data.py to prepare a more coherent set of input elements x ordered by block id, with the output candidates y_candidates padded within each block to have the same length.
  • add additional tunable elements to distance matrix based on locality to improve graph connectivity for message passing approaches
  • implemented an efficient block-by-block loss function inspired by awkward-array, such that we can compare the average pt,eta,phi of the true and predicted candidates within each true block
  • tested various end-to-end training approaches to regress PFCandidates directly from the elements via an intermediate clustering step
    • Message Passing GNN with EdgePooling clustering+declustering (cannot overtrain, max pt correlation ~0.6....0.7)
    • GCN (as above)
    • GraphUNet (as above)
    • all to all dense baseline (can overtrain by memorizing dataset)

@jpata
Copy link
Owner Author

jpata commented Jan 27, 2020

This is now ready to be merged, we have a baseline end-to-end training for elements to PFCandidates that seems to work reasonably well.

The following plots are done on 1k testing events not seen during training.

Confusion matrix of true vs predicted candidate pdgid (0 - no candidate):
confusion.pdf

Number of true vs predicted candidates per event:
num_corr.pdf

True vs predicted pt of 1000 candidates in one testing event:
pt_corr_0.pdf

@jpata jpata mentioned this pull request Jan 29, 2020
4 tasks
@jpata jpata merged commit 779431e into master Jan 30, 2020
@jpata jpata mentioned this pull request Jan 30, 2020
@jpata jpata deleted the endtoend_gnn branch February 19, 2020 23:08
jpata added a commit that referenced this pull request Sep 15, 2023
* start adding gnn

* add gnn to benchmarks

* Update run_training.sh

* update graph_data and EdgeNet to include edge_attr and benchmarking

* add notebook for plotting

* added first end-to-end training example

* up

* up

* up

* added end2end training examples

* up

* up

* up

* up

* up

* up

* cmdline args

* added sequential conv

* added cls accuracy monitoring

* up

* remove additional edges

* add act

* dataset location

* elem id encoding, fix norm

* fix nans

* add ntest

* added num pred and true plotting:

* added npy file saving

* switch to relu

* pfnet7 same setup as others

* up

* loss coefs configurable

* added model to predict only id

* fix bugs with relabeling

* fix plot title

* cosmetic

* up

* up

* added sinkhorn loss

* fixes

* added reordering code

* fix printout, reweighting

* added class weighting

* update readme

* dropout configurable, simplify cross-check model

* fix weight application

* update weights

Co-authored-by: Javier Duarte <jduarte@ucsd.edu>

Former-commit-id: 779431e
erwulff added a commit that referenced this pull request Feb 9, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants