{"data":{"slug":"gdikov-hypertunity","name":"hypertunity","tagline":"A toolset for black-box hyperparameter optimisation","github_url":"https://github.com/gdikov/hypertunity","owner":"gdikov","repo":"hypertunity","owner_avatar_url":"https://avatars.githubusercontent.com/u/6411733?v=4","primary_language":"Python","stars":137,"forks":10,"topics":["bayesian-optimization","gpyopt","hyperparameter-optimization","slurm","tensorboard"],"archived":false,"github_pushed_at":"2020-01-26T23:14:49+00:00","maintenance_label":"Dormant","url":"https://www.graphcanon.com/tools/gdikov-hypertunity","markdown_url":"https://www.graphcanon.com/tools/gdikov-hypertunity.md","api_url":"https://www.graphcanon.com/api/graphcanon/tools/gdikov-hypertunity","graph_url":"https://www.graphcanon.com/api/graphcanon/graph?tool=gdikov-hypertunity","description":"A toolset for black-box hyperparameter optimisation.","homepage_url":"https://hypertunity.readthedocs.io","license":"Apache-2.0","open_issues":0,"watchers":8,"ai_summary":"hypertunity is a Python library focused on automating the optimization of hyperparameters using techniques like Bayesian Optimization.","readme_excerpt":"## Quick start\n\nDefine the objective function to optimise. For example, it can take the hyperparameters `params` as input and \nreturn a raw value `score` as output:\n\n```python\nimport hypertunity as ht\n\ndef foo(**params) -> float:\n    # do some very costly computations\n    ...\n    return score\n```\n\nTo define the valid ranges for the values of `params` we create a `Domain` object:\n\n```python\ndomain = ht.Domain({\n    \"x\": [-10., 10.],         # continuous variable within the interval [-10., 10.]\n    \"y\": {\"opt1\", \"opt2\"},    # categorical variable from the set {\"opt1\", \"opt2\"}\n    \"z\": set(range(4))        # discrete variable from the set {0, 1, 2, 3}\n})\n```\n\nThen we set up the optimiser:\n\n```python\nbo = ht.BayesianOptimisation(domain=domain)\n```\n\nAnd we run the optimisation for 10 steps. Each result is used to update the optimiser so that informed domain \nsamples are drawn:\n\n```python\nn_steps = 10\nfor i in range(n_steps):\n    samples = bo.run_step(batch_size=2, minimise=True)      # suggest next samples\n    evaluations = [foo(**s.as_dict()) for s in samples]     # evaluate foo\n    bo.update(samples, evaluations)                         # update the optimiser\n```\n\nFinally, we visualise the results in Tensorboard: \n\n```python\nimport hypertunity.reports.tensorboard as tb\n\nresults = tb.Tensorboard(domain=domain, metrics=[\"score\"], logdir=\"path/to/logdir\")\nresults.from_history(bo.history)\n```","github_created_at":"2019-06-02T12:04:55+00:00","created_at":"2026-07-11T23:34:59.104961+00:00","updated_at":"2026-08-04T06:01:09.706277+00:00","categories":[{"slug":"model-training","name":"Model Training","url":"https://www.graphcanon.com/categories/model-training","markdown_url":"https://www.graphcanon.com/categories/model-training.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/model-training"}],"tags":[{"slug":"bayesian-optimization","name":"bayesian-optimization"},{"slug":"gpyopt","name":"gpyopt"},{"slug":"hyperparameter-optimization","name":"hyperparameter-optimization"},{"slug":"slurm","name":"slurm"},{"slug":"tensorboard","name":"tensorboard"}],"trust":{"provenance":{"is_fork":false,"github_id":189841506,"owner_type":"User","methodology":"github_public_v1","parent_repo":null,"near_duplicate_slugs":[]},"computed_at":"2026-08-04T06:01:08.926Z","maintenance":{"label":"Dormant","score":18,"methodology":"github_public_v1","releases_90d":0,"days_since_push":2381,"last_release_at":"2020-01-26T23:01:09Z"},"security_summary":{"status":"no_lockfile","scanner":null,"low_count":0,"high_count":0,"last_scan_at":"2026-07-11T23:35:02.571Z","medium_count":0,"scan_profile":"none","critical_count":0}},"capability_facts":{"scan":{"source":"repo_scan","observed_at":"2026-08-04T06:01:09.421Z"},"languages":{"value":["python"],"source":"github.language","observed_at":"2026-08-04T06:01:09.421Z"},"license_spdx":{"value":"Apache-2.0","source":"github.license","observed_at":"2026-08-04T06:01:09.421Z"}},"decision_facts":{"hosting":null,"pricing":null,"requirements":{"notes":["Support for SLURM is indicated in the topics, useful for HPC cluster management but not a hard requirement."],"min_ram_gb":2,"requires_docker":false},"constraints":{"min_ram_gb":2,"requires_docker":false},"when_to_use":["When you are working with complex objective functions that are expensive to evaluate, and you need an automated way to optimize your model parameters.","If you prefer tools that integrate well with Python's ecosystem and you are looking for visual feedback on optimization progress through Tensorboard."],"when_not_to_use":["When the objective function evaluation is inexpensive or fast because hypertunity shines in scenarios where evaluations are costly, offering less benefit if evaluations can be easily repeated.","If your project does not require advanced techniques such as Bayesian Optimization and you seek a simpler method with fewer dependencies."],"source":"enrich:decision_facts","observed_at":"2026-07-17T06:14:07.325Z"},"constraint_facets":{"min_ram_gb":2,"requires_docker":false},"decision_summary":[{"label":"Requirements","value":"Min 2 GB RAM; Support for SLURM is indicated in the topics, useful for HPC cluster management but not a hard requirement."},{"label":"Adopt for","value":"hypertunity is a Python library that facilitates black-box hyperparameter optimisation using techniques such as Bayesian Optimization."}]}}