{"id":19071738,"url":"https://github.com/blackhc/pbt","last_synced_at":"2026-03-09T19:13:14.954Z","repository":{"id":147711563,"uuid":"119696430","full_name":"BlackHC/pbt","owner":"BlackHC","description":"Jupyter notebooks to play around with population based training, as described in https://arxiv.org/abs/1711.09846","archived":false,"fork":false,"pushed_at":"2018-01-31T15:23:18.000Z","size":44,"stargazers_count":7,"open_issues_count":0,"forks_count":3,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-28T15:50:16.160Z","etag":null,"topics":["jupyter-notebook","population-based-training","visulization"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BlackHC.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-01-31T14:16:03.000Z","updated_at":"2021-04-16T21:19:10.000Z","dependencies_parsed_at":"2023-05-27T05:15:29.118Z","dependency_job_id":null,"html_url":"https://github.com/BlackHC/pbt","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/BlackHC/pbt","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BlackHC%2Fpbt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BlackHC%2Fpbt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BlackHC%2Fpbt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BlackHC%2Fpbt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BlackHC","download_url":"https://codeload.github.com/BlackHC/pbt/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BlackHC%2Fpbt/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30308897,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-09T17:35:44.120Z","status":"ssl_error","status_checked_at":"2026-03-09T17:35:43.707Z","response_time":61,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["jupyter-notebook","population-based-training","visulization"],"created_at":"2024-11-09T01:30:19.790Z","updated_at":"2026-03-09T19:13:14.927Z","avatar_url":"https://github.com/BlackHC.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Population-based training\n\nBased on the DeepMind paper: https://arxiv.org/abs/1711.09846\n\nBlog post: https://deepmind.com/blog/population-based-training-neural-networks/\n\n# Contribution\n\nLook at two different ways to implement PBT as a reusable algorithm.\n\nThe second version that implements it as a pure advisor function seems to be\nthe more flexible one.\n\nThe first iteration contains code to recreate Figure 2 from the paper.\nI had to change the initial hyperparameters a bit to break symmetries and I had\nto modify the proxy function to not allow negative hyperparameters (otherwise,\nit runs off into infinity if it perturbs the hyperparameters to be negative by \naccident).\n\n# Critique of the paper\n\nGeneral feel after playing around with the idea is that it describes a nice\nheuristic. However, you are also replacing a set of more tangible hyperparameters\nby meta-hyperparameters that control this heuristic: \n\n* how to determine whether a worker is ready;\n* how to perturb hyperparameters during exploration; and,\n* how to determine whether a worker is underperforming or not.\n\nMoreover, one could use different strategies during exploitation, like selecting\none of the top5 workers instead of the top1 worker during exploration, all the \nway to simulated annealing.\n\nThe main contribution of PBT (as mentioned on reddit) seems to be that \nexploration means copying of the weights and continuing training from then on.\nThis saves time but this also means that it will be even harder to ensure\nreproducibility. Now, one also almost has to save a history of the exploration \nsteps to be able to explain how to get to a certain result.\n ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblackhc%2Fpbt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fblackhc%2Fpbt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblackhc%2Fpbt/lists"}