Phase 2 Evaluation
Evaluation
Progress
In continuation to the Phase 1 updates, this is a short update on my progress till the Phase 2 Evaluation in GSoC 2020. A major concern regarding the TMVA PyTorch Interface in the last 2 months has been the train
method. I’ve finally been able to solve the issues and bugs and have incorporated a simplified version of train
method successfully. Below are the goals set before the 2nd evaluation according to my proposal, of which I was able to complete the following:
Header MethodPyTorch
- Add Initial Structure for
MethodPyTorch.h
header file.
Class MethodPyTorch
Implement the basic outline of MethodPyTorch.cxx
Class.
- Implement the
DeclareOptions
method - Implement
ProcessOptions
methods - Implement
SetupTorchModel
method - Implement train methods. (Partially Completed)
- Implement simple basic structure for training
- Add ability to load code from users
- Convert numpy based dataloaders in TMVA to PyTorch dataloaders
- Use default optimizer (optional optimizer SGD)
- Add savebest model
- Add scheduler
- Implement
GetNumValidationSamples
- Implement Validation in
train_func
- Implement
helper
method - Implement the Tests
- Implement
testPyTorchClassification.C
(WIP (Training works))
- Implement
The train
method in the MethodPyTorch
is almost complete. I need to add features for Keras like callbacks, which after discussing with my mentors, we’ve decided to implement in the next month. I’d like to thank Lorenzo for helping me out when I was stuck with issues related to user code loading
in the TMVA Interface.
In the final month, I’ll be working on the prediction side of the interface, involving implementation of the GetMvaValues
method for Classification, GetRegressionValues
method for Regression and GetMulticlassValues
method for MultiClass multi-variate analysis.
This will also involve the utilization of user-defined predict
function in PyTorch.
Later, I’ll be implementing all the remaining tests and tutorials.
I’m feeling confident about my progress and I shall be able to wrap up the complete interface in the next couple of weeks!💪