New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Hyperparameter Optimization Module #151
Conversation
…ve unnecessary config in cartpole_stab.yaml 2. add hpo module in test_build.py
…ckpoint in ppo.py. 4. Boolean var in ppo_sampler.
Run precommit hooks etc. to ensure formatting is good. |
|
Move any files used for |
rename |
…ts to tests. 3. write comments in batch GP in GPMPC controller. 4. move experiments in examples.
… and pass this version of pre-commit hooks.
…dd an example of hpo for gpmpc.
… avg return in base_experiment.py. 3. use BaseExperiment class in hpo example 3. add hp study bash script and jupyter notebook for gpmpc.
… config. 3. add done_on_max_steps in base_experiment.py. 4. remove _run() and use BaseExperiment in hpo.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I pulled your branch and reran the pre-commit hooks and there are some minor fixes you should add.
examples/hpo/rl/ppo/config_overrides/cartpole/ppo_cartpole_.yaml
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
@@ -815,6 +832,128 @@ def learn(self, | |||
except UnboundLocalError: | |||
training_results['info'] = None | |||
return training_results | |||
|
|||
def _learn(self): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Change def learn
to something like def gp_hyperparam_opt
and then change def learn
and def _learn
to more closely match _learn
from the other learning classes
.
|
||
return train_runs, test_runs | ||
|
||
def _run(self): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ideally, we standardize this across all the controllers, if possible, and use the experiment class instead of _run
.
pyproject.toml
Outdated
optuna-dashboard = "^0.9" | ||
mysql-connector-python = "8.0.33" | ||
pymysql = "1.0.3" | ||
seaborn = "0.12.2" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we need this? Delete if matplotlib is sufficient
@@ -395,6 +508,293 @@ def kernel_inv(self, | |||
non_lazy_tensors = [k.inv_matmul(torch.eye(num_of_points).double()) for k in k_list] | |||
return torch.stack(non_lazy_tensors) | |||
|
|||
class GaussianProcesses: | |||
'''Gaussian Processes decorator for batch GP in gpytorch. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Rename or Add a comment that this is for parallel training of GPs and that only 1 learning rate can be specified for all GPs
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Still ToDo.
The pull request contains