End of GSoC!
TLDR: It feels unbelievable to have contributed to CERN as a GSoC student. My contributions can be found at #5757 and #6273.
Journey
Summer of 2020 has been nothing short of a roller-coaster ride filled with challenges and obstacles. I feel a sense of achievement looking back at the work I managed to complete while hitting my goals and targets in these trying times. Ever since my first pull request got merged, I have been longing to create an impact with open-source contributions. Thanks to CERN-HSF and Google Summer Of Code for providing me an opportunity to work on the ROOT TMVA framework which provides a machine learning environment for the modelling, processing, and evaluation of high-energy physics data.
Let me take you through the work I’ve carried out this summer.
During these three months, I developed a PyTorch Interface for TMVA. Hopefully, users and developers will utilize the newest addition to the TMVA family.
Pull Requests
[Major]
[Minor]
Deliverables Achieved
Source
Header MethodPyTorch
-
Implementation of
MethodPyTorch.h
header.
Class MethodPyTorch
-
Implementation of
MethodPyTorch.cxx
class.-
Implement the
DeclareOptions
method -
Implement
ProcessOptions
methods -
Implement
SetupTorchModel
method -
Implement train methods
- Implement simple basic structure for training
- Add ability to load code from users
- Convert numpy based dataloaders in TMVA to PyTorch dataloaders
- Use default (optional optimizer SGD)
- Add callbacks: savebest model, scheduler etc
-
Implement
GetNumValidationSamples
-
Implement Validation in
train_func
- Add model prediction function loading ability
-
Implementation of the
GetMVA*
-
GetMvaValues
method for Classification -
GetRegressionValues
method for Regression -
GetMulticlassValues
method for MultiClass Classification.
-
- Implement helper function
-
Implement the
Tests
-
Add testPyTorchClassification.C
- Add generatePyTorchModelClassification.py
- Load, Train model and test all the parameter arguments
- Verify response after model prediction function is added.
-
Add testPyTorchMulticlass.C
- Add generatePyTorchModelMulticlass.py
- Load, Train model and test all the parameter arguments
- Verify response after model prediction function is added.
-
Add testPyTorchRegression.C
- Add generatePyTorchModelRegression.py
- Load, Train model and test all the parameter arguments
- Verify response after model prediction function is added.
Tutorials
Made a blog post here
Also the tutorials are implemented in #6273
- Add TMVA ClassificationPyTorch
- Add TMVA RegressionPyTorch
- Add TMVA MulticlassPyTorch
- Add TMVA ApplicationRegressionPyTorch
- Add TMVA ApplicationClassificationPyTorch
Acknowledgements
I am grateful to my mentors for their invaluable guidance and support throughout my GSoC journey. ❤️
-
Lorenzo Moneta (Senior Physicist at CERN)
-
Omar Andres Zapata Mesa (Research Fellow at CERN)
Thank you for believing in me. I honestly never thought I would have the chance to get in, or even be accepted, at one of the finest research organizations in the world. Hoping that my contributions may help in the next Major Physics discovery at CERN! 💥
Signing Off,
Anirudh Dagar