Skip to main content

A framework for training machine learning models for researchers.

Project description

Minerva

Continuous Test

Minerva is a Pytorch-Lightning-based framework for training machine learning models for researchers.

Description

This project aims to provide a robust and flexible framework for researchers working on machine learning projects. It includes various utilities and modules for data transformation, model creation, analysis metrics, and reproducibility. Minerva is designed to be modular and extensible, allowing researchers to easily add new features and functionalities.

Features

Minerva offers a wide range of features to help you with your machine learning projects:

  • Model Creation: Minerva offers a variety of models and architectures to choose from.
  • Training and Evaluation: Minerva provides tools to train and evaluate your models, including loss functions, optimizers, and evaluation metrics.
  • Data Transformation: Minerva provides tools to preprocess and transform your data, including data loaders, data augmentation, and data normalization.
  • Modular Design: Minerva is designed to be modular and extensible, allowing you to easily add new features and functionalities.
  • Reproducibility: Minerva ensures reproducibility by providing tools for versioning, configuration, and logging of experiments.
  • Self-Supervised Learning (SSL) Support: Minerva supports Self-Supervised Learning (SSL) for training models with limited labeled data.
  • Development Environment: Minerva provides a development environment with all dependencies pre-installed and configured for you.

Near Future Features

  • Hyperparameter Optimization: Minerva will offer tools for hyperparameter optimization powered by Ray Tune.
  • PyPI Package: Minerva will be available as a PyPI package for easy installation.
  • Pre-trained Models: Minerva will offer pre-trained models for common tasks and datasets.
  • Experiment Management: Minerva will offer tools for managing and tracking experiments using well-known tools like MLflow.

Installation

Minerva is currently under development and not yet available as a PyPI package. You can install it:

  • Locally, as any other Python package.
  • Using a Docker container, if you want to use the development environment.

Install Locally

  1. Clone the repository:
git clone https://github.com/discovery-unicamp/Minerva.git
  1. And then navigate to the project directory and install the dependencies:
cd Minerva-Dev
pip install .

VSCode Development Environment using DevContainer

Check the Using Minerva DevContainer for developing with Minerva guide for instructions on how to set up a development environment using Visual Studio Code and Docker.

Modules

Once installed, Minerva is just like any other Python package. You can import its modules and classes in your Python code using:

import minerva

The main modules available in Minerva are:

  • minerva.analysis: Tools for analyzing and visualizing model performance.
  • minerva.callback: Callbacks for monitoring and logging training progress (Pytorch-Lightning based).
  • minerva.data: Readers, Datasets and Data Modules.
  • minerva.losses: Loss functions.
  • minerva.models: Models and Architectures for supervised and self-supervised learning. Check out the available models and SSL techniques at minerva.models README.md file.
  • minerva.pipeline: Tools for training and evaluating models in a reproducible way.
  • minerva.samplers: Data samplers to allow for more complex sampling strategies during data loading.
  • minerva.transforms: Data transformations and augmentations.
  • minerva.utils: Utility functions and classes.

Usage

For more information on how to use Minerva, check the documentation for example notebooks.

Testing

To run the tests, you must install the development dependencies:

pip install -e .[dev]

Unit Tests

Then, you can run the tests using the following command:

pytest tests/

Coverage

To generate a coverage report (in HTML), you can use the following command:

pytest --cov=minerva --cov=tests --cov-report=term --cov-report=html

License

This project is licensed under the MIT License. See the LICENSE file for details.

Contact

For any questions or concerns, please open an issue on our GitHub issue tracker.

Contribute

If you want to contribute to this project make sure to read our Code of Conduct and Contributing guide pages.

Acknowledgements

This project is maintained by Gabriel Gutierrez, Otávio Napoli, Fernando Gubitoso Marques, and Edson Borin.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

minerva_ml-0.3.5b0.tar.gz (129.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

minerva_ml-0.3.5b0-py3-none-any.whl (160.6 kB view details)

Uploaded Python 3

File details

Details for the file minerva_ml-0.3.5b0.tar.gz.

File metadata

  • Download URL: minerva_ml-0.3.5b0.tar.gz
  • Upload date:
  • Size: 129.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.16

File hashes

Hashes for minerva_ml-0.3.5b0.tar.gz
Algorithm Hash digest
SHA256 687f6af0b7d4146a1ab5bacc4b4f37d0bc511c6b912ad0975dc3dc834b535a9b
MD5 2bd9a0b00f2edc70f0bed84cb1588508
BLAKE2b-256 43664f8fbda3813019ec9b58ccd40aaf509e692fa687a0fc510eed171c0ed4e1

See more details on using hashes here.

File details

Details for the file minerva_ml-0.3.5b0-py3-none-any.whl.

File metadata

  • Download URL: minerva_ml-0.3.5b0-py3-none-any.whl
  • Upload date:
  • Size: 160.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.16

File hashes

Hashes for minerva_ml-0.3.5b0-py3-none-any.whl
Algorithm Hash digest
SHA256 80c70daf958c9670e0d013af859d907203cebae2cbceba0150ef52f68a52a963
MD5 dc51298b91eb15156f2e69871dafac8e
BLAKE2b-256 a96e60c95f162ba99e8fe10b09e8235a52c0902a79b709c7edc0d46640d0f8fb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page