{"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":null,"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-07-11T23:35:10.788769+00:00","categories":[{"slug":"evaluation-observability","name":"Evaluation & Observability","url":"https://www.graphcanon.com/categories/evaluation-observability","markdown_url":"https://www.graphcanon.com/categories/evaluation-observability.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/evaluation-observability"}],"tags":[{"slug":"tensorboard","name":"tensorboard"},{"slug":"python","name":"python"},{"slug":"slurm","name":"slurm"},{"slug":"gpyopt","name":"gpyopt"},{"slug":"bayesian-optimization","name":"bayesian-optimization"},{"slug":"hyperparameter-optimization","name":"hyperparameter-optimization"}],"trust":{"provenance":{"is_fork":false,"github_id":189841506,"owner_type":"User","methodology":"github_public_v1","parent_repo":null,"near_duplicate_slugs":[]},"computed_at":"2026-07-11T23:35:01.985Z","maintenance":{"label":"Dormant","score":18,"methodology":"github_public_v1","releases_90d":0,"days_since_push":2358,"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-07-11T23:35:01.694Z"},"languages":{"value":["python"],"source":"github.language","observed_at":"2026-07-11T23:35:01.694Z"},"license_spdx":{"value":"Apache-2.0","source":"github.license","observed_at":"2026-07-11T23:35:01.694Z"}}}}