Paraphrasing Wikipedia – in traditional programming, the custom code that expresses the purpose of the program calls into reusable libraries to take care of generic tasks. In IoC, custom-written portions of a computer program receive the flow of control from a generic framework.
In the context of Deep Learning (DL) the IoC approach can be illustrated by libraries such as mmdetection or Detectron2.
The goal of deep-piping is to provide an IoC/DI framework for DL independent of a particular machine learning task or algorithm. To this end, deep-piping focuses on providing:
- the best possible syntax
- useful primitives such as:
- flexible models and trainers
- dataset transformers
- data access objects
- ability to use any existing Python class without the need to register it within the framework
- automatic command line interface for all experiments
- a well-defined and sensible multiple inheritance mechanism able to merge repeated keys
To learn more, visit the project GitHub repository: https://github.com/sadaszewski/deep-piping/.