Skip to content

Latest commit

 

History

History
224 lines (170 loc) · 8.37 KB

README.fr.md

File metadata and controls

224 lines (170 loc) · 8.37 KB

Contributors Stargazers Issues PyPi version Python 2 Python 3


Logo

AutoHparams

Créez automatiquement une configuration d'hyper-paramètres à partir de variables globales!

· Signaler un bug

À propos

Avez-vous déjà effectué une expérience de machine learning pendant des heures, juste pour vous rendre compte quelques jours plus tard que vous avez oublié de sauvegarder certains hyper-paramètres? Alors vous devez prier pour que votre mémoire soit bonne, ou tout recommencer?

AutoHparams est un outil qui sauvegarde chaque variable de la portée globale de votre code dans un dictionnaire, que vous pouvez ensuite enregistrer à l'aide de votre outil préféré. Cela permet d'éviter 80% des situations d'hyper-paramètres oubliés.

Getting Started

AutoHparams s'utilise en une ligne.

Installez AutoHparams avec pip :

pip install autohparams

Importez-le dans votre code, en ajoutant cette ligne :

from autohparams import get_auto_hparams

Pour obtenir le dictionnaire de hparamsuration, faites simplement :

hparams = get_auto_hparams(globals())

Advanced tip
Par défaut, get_auto_hparams ignore les variables dont le nom commence par un trait de soulignement _. Pratique pour filtrer les variables que vous souhaitez inclure dans la hparamsuration. Par exemple:

lr = 0.001  # nous voulons inclure le taux d'apprentissage
bs = 64     # nous voulons inclure la taille de lot
_gpu = 0    # nous ne voulons pas inclure le GPU choisi
hparams = get_auto_hparams(globals())

Usage

Vous pouvez maintenant l'utiliser dans n'importe quel cadre de votre choix, par exemple :

Tensorboard

import tensorflow as tf
from tensorboard.plugins.hparams import api as hp

with tf.summary.create_file_writer('logs/hparam_tuning').as_default():
  hp.hparams(hparams)

MLflow

import mlflow

with mlflow.start_run():
  mlflow.log_params(hparams)

Weights & Biases (wandb)

import wandb

wandb.init(hparams=hparams)

Comet.ml

from comet_ml import Experiment

experiment = Experiment()
experiment.log_parameters(hparams)

Neptune.ai

import neptune.new as neptune

run = neptune.init()

run['parameters'] = hparams

Pytorch Lightning

import pytorch_lightning as pl

trainer = pl.Trainer(logger=...)
trainer.logger.log_hyperparams(hparams)

Guild AI

import guild

guild.run(hparams=hparams)

Polyaxon

import polyaxon_sdk

api_client = polyaxon_sdk.ApiClient()
api_client.create_hyper_params(run_uuid='uuid-of-your-run', body=hparams)

ClearML

from clearml import Task

task = Task.init()
task.set_parameters(hparams)

Kubeflow

from kubeflow.metadata import metadata

store = metadata.Store()
store.log_metadata(hparams)

Encore plus concis

Si vous êtes amateur de la sorcellerie de python, vous pouvez même import autohparams et l'utiliser comme une fonction:

import autohparams
config = autohparams(globals())

On ne peut pas faire plus simple !

(back to top)

Contributing

Contributions are welcome!

Roadmap/todo

Non-Code contribution :

Task Importance Difficulty Contributor on it Description
Adding documentation 4/5 1/5 NOBODY Write basic tutorials with real-life scenarios, write a wiki for other contributors to better understand the functioning of the library.

For every todo, just click on the link to find the discussion where I describe how I would do it.
See the discussions for a full list of proposed features (and known issues).

(back to top)

How to contribute

Contributing is an awesome way to learn, inspire, and help others. Any contributions you make are greatly appreciated, even if it's just about styling and best practices.

If you have a suggestion that would make this project better, please fork the repo and create a pull request.
Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/YourAmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Authors

This library was created by Nicolas MICAUX.