Skip to content

klieret/ray-tune-stoppers-contrib

Repository files navigation

Additional stoppers for ray tune

logo

Documentation Status pre-commit.ci status Python package Check Markdown links codecov gitmoji Black PR welcome

📝 Description

Ray tune is a tool for scalable hyperparameter tuning for machine learning applications. For intelligent hyperperameter optimization, trials that are performing inadequately should be stopped early. Part of this can be done by schedulers such as ASHA, but additional explicit stopping criteria are useful as well.

For example, a trial that has converged and is no longer producing better results, but is still outperforming all other running trials, will not be stopped by ASHA. Ray tune currently only provides three different stoppers: a plateau stopper, a maximum iterations stopper, and a timeout stopper.

This module aims to foster a greater variety of community maintained contributed stopping mechanisms.

📦 Installation

pip3 install rt_stoppers_contrib

🔥 Using it

For a full list of the stoppers offered, see the the documentation.

Using any of the stoppers is as easy as

from rt_stoppers_contrib import NoImprovementTrialStopper

tuner = tune.Tuner(
    tune.Trainable,
    tune_config=...,
    run_config=air.RunConfig(stop=NoImprovementTrialStopper("my_metric"))
)

For more information, refer to the documentation.

🧰 Development setup

pip3 install pre-commit
cd <this repository>
pre-commit install
gitmoji -i

💖 Contributing

Your help is greatly appreciated! Suggestions, bug reports and feature requests are best opened as github issues. You are also very welcome to submit a pull request!

Bug reports and pull requests are credited with the help of the allcontributors bot.

⚖️ License

See LICENSE for more information. The logo is built from the official ray-tune logo together with this stop sign (CC 4.0).