Algorithm#

Introduction#

This section contains algorithmic implementations. OpenVINO™ Training Extensions provides number of different algorithms such as classification, detection, segmentation and anomaly with various learning types such as supervised, semi and self-supervised learning.

Organizational Structure#

Algorithms have the following organizational structure:

<algorithm>
├── adapters
│   └── <library>
│       ├── config
│       ├── data
│       └── ...
├── configs
│   └── <model_name>
│       ├── template.yaml
│       ├── configuration.py
│       ├── configuration.yaml
│       ├── compression_config.json
│       └── hpo_config.yaml
├── tasks
│   ├── train.py
│   ├── inference.py
│   ├── nncf.py
│   └── openvino.py
└── tools
   ├── README.md
   └── sample.py

where each algorithm has adapters, configs, tasks and tools.

Adapters#

adapters contain modules to wrap the original library used to perform the task. For instance, detection task uses mmdetection library, meaning that adapters comprises adapters to wrap mmdetection to use with OpenVINO™ Training Extensions.

Configs#

configs contain configuration related files including training, inference, NNCF and HPO.

Tasks#

Tasks contain implementations that correspond to each phase in the workflow from training to OpenVINO inference. Each algorithm expects train, inference, nncf and openvino python modules that implement the task interfaces.

Tools#

Tools contain python implementations that performs tasks in end-to-end workflow. For example, current anomaly implementation has sample.py file that reads an input dataset, trains a model and exports the model to OpenVINO IR via either POT or NNCF.