InnoFW is a configuration-based machine learning framework that helps people to get started with development of machine learning solutions. InnoFW is easy to pickup and play. And easy to master.
- define configuration files for models, datasets, optimizers, losses, metrics etc. and interchange them with one another
- have unified and intuitive code structure
- powerful CLI for argument passing
- train models on multiple gpu by passing a flag
- select loggers: Tensorboard, ClearML, Wandb and ...(upcoming)
- Easy work with S3-like storages
This framework serves as a template for different projects members to start working on a problem. Machine learning engineers can enjoy ease of integration of a new model and software developers can value unified and documented API for model training and inference.
Please note that the project is under early development stage.
- pytorch lightning
- hydra
- pydantic
- sklearn
- torch
InnoFW uses hydra to provide configuration structure that is suitable for the most machine learning projects.
- Create an experiment config file in the folder
config/experiments/
based onconfig/experiments/template.yaml
. - Once you define your configuration file you can start training your model.
python train.py experiment=yolov5_cars
- InnoFW checks the configuration file for consistency of individual modules(model, dataset, loss, optimizer etc.) and if everything is fine then selects and adapter. Adapter is responsible for starting the training, testing, validation and inference pipeline.
- Model is being trained and checkpoints saved.
- install python 3.8-3.9 to your system
- clone project
git clone https://github.com/InnopolisUni/innofw.git
- create virtual env
python -m venv venv
- install packages
pip install -r requirements.txt
For full guide on installation using poetry or docker follow this quick start page
- semantic segmentation
- image classification
- object detection
- tabular data regression
- tabular data classification
- tabular data clustering
- one-shot learning
- anomaly detection in time series
- yolov5(+seg)
- segmentation-models.pytorch models
- sklearn
- torchvision's resnet18
- lstm
- one-shot learning
- biobert