Favicon of SMAC3

SMAC3

A Python hyperparameter optimization tool that runs locally or on clusters, with support for conditional search spaces and multiple objectives.

Screenshot of SMAC3 website

SMAC3 is a Python tool for researchers and developers tuning machine learning models or other algorithms on their own hardware. It combines Bayesian optimization with a racing mechanism that decides which configurations deserve further evaluation. It runs locally on Linux, Windows and macOS, and supports parallel evaluation on clusters through Dask.

Its search spaces can mix numeric values, ordered choices and categories, with conditions that make some parameters relevant only when others take particular values. You can supply prior knowledge to guide the search and optimize an algorithm across multiple tasks. This suits experiments where a simple sweep would spend time evaluating unpromising combinations.

SMAC3 supports multi-fidelity optimization, so evaluations can use different levels of resolution or effort. It also handles competing objectives through ParEGO. Runs can resume after interruption, and warm starts let you reuse earlier optimization work. An ask-and-tell interface gives developers control over how they evaluate candidate configurations, while callbacks allow custom behavior.

Install SMAC3 with pip install smac. It uses the BSD 3-Clause license. Model training remains the responsibility of the objective function supplied by the user.

Similar to SMAC3