Title: Experiments, Benchmark and Hyperoptimizer · Issue #54 · SMART-Lab/smartlearner · GitHub
Open Graph Title: Experiments, Benchmark and Hyperoptimizer · Issue #54 · SMART-Lab/smartlearner
X Title: Experiments, Benchmark and Hyperoptimizer · Issue #54 · SMART-Lab/smartlearner
Description: I've come to a point where I'm doing something that I though should be fairly simple, but which is a lot more complicated than expected with our current code. I need your thoughts on the matter. I have several models I want to benchmark ...
Open Graph Description: I've come to a point where I'm doing something that I though should be fairly simple, but which is a lot more complicated than expected with our current code. I need your thoughts on the matter. I ...
X Description: I've come to a point where I'm doing something that I though should be fairly simple, but which is a lot more complicated than expected with our current code. I need your thoughts on the ma...
Opengraph URL: https://github.com/SMART-Lab/smartlearner/issues/54
X: @github
Domain: patch-diff.githubusercontent.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Experiments, Benchmark and Hyperoptimizer","articleBody":"I've come to a point where I'm doing something that I though should be fairly simple, but which is a lot more complicated than expected with our current code. I need your thoughts on the matter.\n\nI have several models I want to benchmark against one another. To do so, I have several benchmarks I want a few models to compete on. To do so, I need to: \n- Iterate through the benchmarks;\n- Iterate through the models;\n- Find the best hyper-parameters;\n- Test from a few seeds and see the results;\n- Keep track of how each model performed; \n- Output appropriate plots.\n\nAs it is, the library is set up to facilitate the training of a single model on a single dataset with a single batch of hyperparameters. I want something higher-level. We could even think about integrating the long awaited spearmint.\n\nSome ideas, all mixed together: \n- Create three more levels of training: Experiment, Benchmark and Hyperoptimizer (I'm certainly open to other names).\n- The `Experiment` is a collection of Benchmark. It runs them, then aggregate data about them.\n- The `Benchmark` is used to pit models against each other and find the best-performing one. To do so, it trains and then collects appropriate data about each of them.\n- The `Hyperoptimizer` is used to find the best hyperparameters for a model to perform a specific task.\n- Some way to add test hyperparameters. You know, just to make sure the code can run through the whole script without crashing.\n- Deal with the issue of the RNG. As of now, nothing is really reproducible. I suggest a hard reset of numpy/theano/blocks RNGs at some level (and it's not clear which one... all of them?)\n\nFor now, a grid/random search of the `Hyperoptimizer` would be great. The `Benchmark` and `Experiment` would need more definite roles and type of data to collect. This brings me to the _how_ part.\n\nWe will need a way to configure an experiment. The more I work on problems, the more I'm tempted to make a more general class to set and access those parameters. However, this would be such a pain to generalize enough.\n\nWe also need a standard way to collect data. I can easily see an `Experiment` telling a `Benchmark` what data to collect, which would then cascade all the way to the `Trainer` and its `Tasks`. I _don't_ want to have to hardcode everything every time, even though for now it's the easiest solution.\n\nI think those classes have the potential, if done right, to make SL a much greater help in scientific reproducibility and it would accelerate a lot the process of getting experiments done faster.\n","author":{"url":"https://github.com/ASalvail","@type":"Person","name":"ASalvail"},"datePublished":"2015-09-30T05:28:21.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":1},"url":"https://github.com/54/smartlearner/issues/54"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:ced55a4f-124a-341b-37a2-de1a80c042b1 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | B5D2:119490:187827:22339E:698DFD86 |
| html-safe-nonce | 687779b4b67a1378e8e682e1e90476f94762926bcabd18a6dcfea78d66f417da |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJCNUQyOjExOTQ5MDoxODc4Mjc6MjIzMzlFOjY5OERGRDg2IiwidmlzaXRvcl9pZCI6Ijg1MzA3NzI5ODY5MzE1NzYxOTgiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ== |
| visitor-hmac | 8de33dcf51c371126878984bad5adba847f004119cf767c715bce75da9efe49a |
| hovercard-subject-tag | issue:109016817 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/SMART-Lab/smartlearner/54/issue_layout |
| twitter:image | https://opengraph.githubassets.com/69b80813aef5aef7c306f014833003e9c4965f5dc0ec28d9ebc37c04592b8e6a/SMART-Lab/smartlearner/issues/54 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/69b80813aef5aef7c306f014833003e9c4965f5dc0ec28d9ebc37c04592b8e6a/SMART-Lab/smartlearner/issues/54 |
| og:image:alt | I've come to a point where I'm doing something that I though should be fairly simple, but which is a lot more complicated than expected with our current code. I need your thoughts on the matter. I ... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | ASalvail |
| hostname | github.com |
| expected-hostname | github.com |
| None | 4d76af840d3174ae6e2538f47f7ea4876a854b6ac4e6fe849e30bdd90242399f |
| turbo-cache-control | no-preview |
| go-import | github.com/SMART-Lab/smartlearner git https://github.com/SMART-Lab/smartlearner.git |
| octolytics-dimension-user_id | 5042629 |
| octolytics-dimension-user_login | SMART-Lab |
| octolytics-dimension-repository_id | 11514304 |
| octolytics-dimension-repository_nwo | SMART-Lab/smartlearner |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 11514304 |
| octolytics-dimension-repository_network_root_nwo | SMART-Lab/smartlearner |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | c9daf44b4f7506beb4bbdaf20e9c0b4ba9a94e56 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width