-
Notifications
You must be signed in to change notification settings - Fork 178
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
feat: Machine learning based Ambiguity Solver #1877
feat: Machine learning based Ambiguity Solver #1877
Conversation
This is on top of the batch input for ONNX #1868 ? |
Yes, the batch input caused a factor 7 speed up so I thought it should go in first. But I guess it is close to be merged |
Alright, I have seen that you had addressed @benjaminhuth s comments, so I merged #1868 |
📊 Physics performance monitoring for 05f12d8Full report VertexingSeedingCKFAmbiguity resolutionTruth tracking (Kalman Filter)Truth tracking (GSF) |
Codecov Report
@@ Coverage Diff @@
## main #1877 +/- ##
=======================================
Coverage 49.48% 49.48%
=======================================
Files 408 408
Lines 22704 22704
Branches 10363 10363
=======================================
Hits 11236 11236
Misses 4257 4257
Partials 7211 7211 📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more |
The jobs that don't pass the CI are related to the fact I have change the default solver to only consider track with at least 7 hits. I can put the threshold to 0 but honestly I would be concern by the quality of a track with < 7 hits. |
In that case, the PR should include the updated reference, what do you think? @paulgessinger |
Is it obvious why the non-ambi outputs also change @Corentin-Allaire? |
I the odd-full-chain the vertexing uses the output of the Solver as an input. If you remove some tracks (the one with < 7 measurements) then it will affect the vertexing. What was a bit surprising is that it appear to improve the vertexing performance. |
...s/Algorithms/TrackFinding/include/ActsExamples/TrackFinding/AmbiguityResolutionAlgorithm.hpp
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
in general the python scripts could share some common code
left a few other comments. nothing critical - as always feel free to ignore
Examples/Algorithms/TrackFinding/src/AmbiguityResolutionMLAlgorithm.cpp
Outdated
Show resolved
Hide resolved
Examples/Algorithms/TrackFinding/src/AmbiguityResolutionMLAlgorithm.cpp
Outdated
Show resolved
Hide resolved
Examples/Algorithms/TrackFinding/src/AmbiguityResolutionMLAlgorithm.cpp
Outdated
Show resolved
Hide resolved
Examples/Scripts/Python/MLAmbiguityResolution/ambiguity_solver_full_chain.py
Outdated
Show resolved
Hide resolved
Examples/Scripts/Python/MLAmbiguityResolution/train_ambiguity_solver.py
Outdated
Show resolved
Hide resolved
Examples/Scripts/Python/MLAmbiguityResolution/train_ambiguity_solver.py
Outdated
Show resolved
Hide resolved
Examples/Scripts/Python/MLAmbiguityResolution/train_ambiguity_solver.py
Outdated
Show resolved
Hide resolved
Examples/Scripts/Python/MLAmbiguityResolution/train_ambiguity_solver.py
Outdated
Show resolved
Hide resolved
Co-authored-by: Andreas Stefl <stefl.andreas@gmail.com>
All of the comment should have been addressed now ! I made one tiny change to the file name for the Csv multitrajectory writing, it use to always be |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
great! thank you!
This MR depends on #1868.
Implement a machine learning based ambiguity solver. If Acts is compiled with the
ACTS_PLUGIN_ONNX
option, it can be used in the odd full chain by simply adding the--MLSolver
argument.In addition to the implementation of the solver, this PR adds an option for the regular solver to only work on track with a certain amount of hits (to obtain fairer comparison).
This also add some small change to the Csv multitrajectory writing, it now also write the list of measurements associated with each track.
Finally, the python script to train the network, test the network and compute its performances are made available with the onnx file of the model.
I haven't written the documentation for this solver, yet it will be part of a future MR after this gets merged in.