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
- yolo
- mmdetection
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 experiments=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
- activate env via poetry
poetry shell
- create lock file
poetry lock --no-update
- install dependencies
poetry install
- train model
python3 train.py experiments=demo_prom/example_image_detection_yolo.yaml
- test model
python3 test.py experiments=demo_prom/example_image_detection_yolo.yaml
- infer model
python3 infer.py experiments=demo_prom/example_image_detection_yolo.yaml
For full guide on installation follow this quick start page
- activate env via poetry
poetry shell
- create lock file
poetry lock --no-update
- install dependencies
poetry install
- move to dui directory
cd dui
- run web app
python3 app.py
- open in browser 127.0.0.1:8050
- semantic segmentation
- image classification
- object detection
- object detection 3d
- tabular data regression
- tabular data classification
- tabular data clustering
- one-shot learning
- anomaly detection in time series
- anomaly detection in images
- yolov5(+seg)
- segmentation-models.pytorch models
- sklearn
- torchvision's resnet18
- lstm
- one-shot learning
- biobert
- mmdetection3d