Skip to main content

A framework for conducting machine learning experiments in python

Project description

Introduction

MLXP (Machine Learning eXperiments Python) package is an open-source Python framework for managing multiple experiments with a flexible option structure from launching, and logging to querying results. A full documentation is available in the MLXP’s official documentation website.

Key functionalities

  1. Launching several jobs automatically using hydra and hierarchical configs by adding a single decorator to the main task function.

  2. Logging outputs (metrics, artifacts, checkpoints) of a job in a uniquely assigned directory along with all metadata and configuration options to reproduce the experiment.

  3. Code version management by automatically generating a deployment version of the code based on the latest git commit.

  4. Submitting jobs to a cluster using a job scheduler.

  5. Exploiting the results of several experiments by easily reading, querying, grouping, and aggregating the output of several jobs.

License

MLXP is distributed under MIT license.

Citing MLXP

Even though this is non-legally binding, the author kindly ask users to cite MLXP in their publications if they use it in their research as follows:

@Misc{Arbel2023MLXP,
  author = {Michae Arbel},
  title = {MLXP: },
  howpublished = {Github},
  year = {2023},
  url = {https://github.com/MichaelArbel/mlxp}
}

Installing MLXP

You can install MLXP either from PyPI or by cloning the GitHub.

From PyPI

You can simply run the following command:

$ pip install MLXP

From GitHub

You can install this package by cloning it from the GitHub repository and then installing it with pip.

  1. Clone the repository:

$ git clone git@github.com:MichaelArbel/mlxp.git
  1. Change to the package directory:

$ cd mlxp
  1. Install the requirements using pip:

$ pip install -r requirements.txt
  1. Install the package:

$ pip install .

Note: You may need to use pip3 instead of pip depending on your setup.

Before installing MLXP, make sure you the requirements are installed.

Requirements

Requirements

hydra-core

omegaconf

tinydb

setuptools

PyYAML

pandas

ply

dill

GitPython

Acknowledgments

I would like to acknowledge the following contributors for their contributions to the development of this package:

  • Alexandre Zouaoui kindly shared his python implementation for creating job scripts and submiting them to a cluster. His code served as the basis for the implementation of the Scheduler class. While I have significantly modified the process of job submission, by integrating it with MLXpy’s launching functionality, I am grateful for Alexandre’s contribution which were invaluable to the development of this project.

  • Juliette Marrie tested a premature version of MLXP. I am grateful for her feedback which was extremetly helpful for shaping and improving MLXP’s functionalities.

  • Romain Ménégaux provided valuable feedback and suggestions to improve MLXP. He also found and reported several bugs in the software which helped improve its quality and stability.

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

MLXP-0.1.0.tar.gz (32.1 kB view hashes)

Uploaded Source

Built Distributions

MLXP-0.1.0-py3-none-any.whl (40.6 kB view hashes)

Uploaded Python 3

MLXP-0.1.0-py2.py3-none-any.whl (73.7 kB view hashes)

Uploaded Python 2 Python 3

Supported by

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