Skip to content

GSoC 2021 project

vfdev edited this page Feb 14, 2021 · 14 revisions

Getting started

There few basic requirements for new contributors. They have to accomplish the following steps:

To be considered as a GSoC student, it is necessary to have at least 3 accepted PRs to the project. They can be something small like a doc fix or a simple bug fix. Please, see help wanted issues.

Projects

Improve Metrics module

Metrics module in PyTorch-Ignite proposes very unique features to evaluate a trained PyTorch model in an online manner and for any type of computation settings (single process or distributed configuration). Namely, the module provides essential metrics for classification/segmentation tasks and various regression metrics.

The plan for the improvements contains the following topics:

  • All metrics should work in distributed configuration (#1284)
  • Metrics for object detection task: implement mean Average Precision metric
  • Metrics for NLP: essential metrics for common tasks: ROUGE, BLEU, etc
  • Metrics for GANs: FID, PPL, others (see #998)
  • Add minor improvements:
    • better support of sklearn metrics
    • classification metrics with micro/macro options

Expected outcome

  • Implemented new metrics for various tasks: mAP, ROUGE, FID
  • All library's metrics work in distributed configuration
  • Solved major metrics related issues: #1284, #1283, #520, #513

Preferred skills and mindset

  • Fluent with Python
  • Already trained neural networks with PyTorch
  • Willing to maintain AI-related open-source project
  • Curiosity and motivation to learn new technical things

Complexity rating

4 / 5

Potential mentors:

Development of a Higher-level API

Library provides a very flexible way to construct a model's trainer, however this API can be optionally simplified further for a number of common tasks (#912).

  • Implement a Higher-level API
    • We can explore a solution with Model.fit API as here and others from #912.
      • Nice to have: a short document presenting all studied approaches with pros/cons.
    • Prototype few solutions and analyze pros/cons of these approaches.
      • We should keep in mind that adopted approach have to be "generic" (single/multiple models/optimizers, data sources etc).
  • Work on providing a factory to create different training_step functions featured with
    • Automatic Mixed Precision (#1235): Nvidia/Apex or native AMP, TPU support
    • Distributed and other options, like automatic batch size via toma etc
  • Create examples using new API

Expected outcome

  • Implemented new Higher-level API based on decided
  • Implemented helper methods to create new trainers
  • Implemented 2-3 examples with new Higher-level API

Preferred skills and mindset

  • Fluent with Python
  • Already trained neural networks with PyTorch
  • Do not afraid of try/fail/succeed work

Complexity rating

3 / 5

Potential mentors: