GSoC: Phase 2 Evaluation


Can't See? Something went wrong!


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))

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!💪