我在代码中使用以下规范来生成实验:
experiment_spec = {
"test_experiment": {
"run": "PPO",
"env": "MultiTradingEnv-v1",
"stop": {
"timesteps_total": 1e6
},
"checkpoint_freq": 100,
"checkpoint_at_end": True,
"local_dir": '~/Documents/experiment/',
"config": {
"lr_schedule": grid_search(LEARNING_RATE_SCHEDULE),
"num_workers": 3,
'observation_filter': 'MeanStdFilter',
'vf_share_layers': True,
"env_config": {
},
}
}
}
ray.init()
run_experiments(experiments=experiment_spec)请注意,我使用grid_search来尝试不同的学习率。问题是"lr_schedule"被定义为:
LEARNING_RATE_SCHEDULE = [
[
[0, 7e-5], # [timestep, lr]
[1e6, 7e-6],
],
[
[0, 6e-5],
[1e6, 6e-6],
]
]因此,当生成实验检查点时,它的路径名中有很多[,使得解释器无法读取该路径。如下所示:
~/Documents/experiment/PPO_MultiTradingEnv-v1_0_lr_schedule=[[0, 7e-05], [3500000.0, 7e-06]]_2019-08-14_20-10-100qrtxrjm/checkpoint_40逻辑解决方案是手动重命名它,但我发现它的名称在其他文件中被引用,比如experiment_state.json,所以最好的解决方案是设置一个自定义的实验路径和名称。
我在文档中没有找到任何东西。
This是我的项目,如果它有帮助的话
有人能帮帮忙吗?
提前感谢
发布于 2019-08-15 12:28:27
您可以设置自定义试用名称- https://ray.readthedocs.io/en/latest/tune-usage.html#custom-trial-names。如果这对你有效,请让我知道。
https://stackoverflow.com/questions/57503288
复制相似问题