Quentin Gallouédec
commited on
Commit
•
35a79ac
1
Parent(s):
83b4569
Initial commit
Browse files- .gitattributes +1 -0
- README.md +70 -0
- args.yml +81 -0
- config.yml +9 -0
- ddpg-MountainCarContinuous-v0.zip +3 -0
- ddpg-MountainCarContinuous-v0/_stable_baselines3_version +1 -0
- ddpg-MountainCarContinuous-v0/actor.optimizer.pth +3 -0
- ddpg-MountainCarContinuous-v0/critic.optimizer.pth +3 -0
- ddpg-MountainCarContinuous-v0/data +132 -0
- ddpg-MountainCarContinuous-v0/policy.pth +3 -0
- ddpg-MountainCarContinuous-v0/pytorch_variables.pth +3 -0
- ddpg-MountainCarContinuous-v0/system_info.txt +7 -0
- env_kwargs.yml +1 -0
- replay.mp4 +3 -0
- results.json +1 -0
- train_eval_metrics.zip +3 -0
.gitattributes
CHANGED
@@ -32,3 +32,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
|
32 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
33 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
34 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
|
|
|
32 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
33 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
34 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
35 |
+
*.mp4 filter=lfs diff=lfs merge=lfs -text
|
README.md
ADDED
@@ -0,0 +1,70 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
---
|
2 |
+
library_name: stable-baselines3
|
3 |
+
tags:
|
4 |
+
- MountainCarContinuous-v0
|
5 |
+
- deep-reinforcement-learning
|
6 |
+
- reinforcement-learning
|
7 |
+
- stable-baselines3
|
8 |
+
model-index:
|
9 |
+
- name: DDPG
|
10 |
+
results:
|
11 |
+
- task:
|
12 |
+
type: reinforcement-learning
|
13 |
+
name: reinforcement-learning
|
14 |
+
dataset:
|
15 |
+
name: MountainCarContinuous-v0
|
16 |
+
type: MountainCarContinuous-v0
|
17 |
+
metrics:
|
18 |
+
- type: mean_reward
|
19 |
+
value: 93.72 +/- 0.13
|
20 |
+
name: mean_reward
|
21 |
+
verified: false
|
22 |
+
---
|
23 |
+
|
24 |
+
# **DDPG** Agent playing **MountainCarContinuous-v0**
|
25 |
+
This is a trained model of a **DDPG** agent playing **MountainCarContinuous-v0**
|
26 |
+
using the [stable-baselines3 library](https://github.com/DLR-RM/stable-baselines3)
|
27 |
+
and the [RL Zoo](https://github.com/DLR-RM/rl-baselines3-zoo).
|
28 |
+
|
29 |
+
The RL Zoo is a training framework for Stable Baselines3
|
30 |
+
reinforcement learning agents,
|
31 |
+
with hyperparameter optimization and pre-trained agents included.
|
32 |
+
|
33 |
+
## Usage (with SB3 RL Zoo)
|
34 |
+
|
35 |
+
RL Zoo: https://github.com/DLR-RM/rl-baselines3-zoo<br/>
|
36 |
+
SB3: https://github.com/DLR-RM/stable-baselines3<br/>
|
37 |
+
SB3 Contrib: https://github.com/Stable-Baselines-Team/stable-baselines3-contrib
|
38 |
+
|
39 |
+
Install the RL Zoo (with SB3 and SB3-Contrib):
|
40 |
+
```bash
|
41 |
+
pip install rl_zoo3
|
42 |
+
```
|
43 |
+
|
44 |
+
```
|
45 |
+
# Download model and save it into the logs/ folder
|
46 |
+
python -m rl_zoo3.load_from_hub --algo ddpg --env MountainCarContinuous-v0 -orga qgallouedec -f logs/
|
47 |
+
python -m rl_zoo3.enjoy --algo ddpg --env MountainCarContinuous-v0 -f logs/
|
48 |
+
```
|
49 |
+
|
50 |
+
If you installed the RL Zoo3 via pip (`pip install rl_zoo3`), from anywhere you can do:
|
51 |
+
```
|
52 |
+
python -m rl_zoo3.load_from_hub --algo ddpg --env MountainCarContinuous-v0 -orga qgallouedec -f logs/
|
53 |
+
python -m rl_zoo3.enjoy --algo ddpg --env MountainCarContinuous-v0 -f logs/
|
54 |
+
```
|
55 |
+
|
56 |
+
## Training (with the RL Zoo)
|
57 |
+
```
|
58 |
+
python -m rl_zoo3.train --algo ddpg --env MountainCarContinuous-v0 -f logs/
|
59 |
+
# Upload the model and generate video (when possible)
|
60 |
+
python -m rl_zoo3.push_to_hub --algo ddpg --env MountainCarContinuous-v0 -f logs/ -orga qgallouedec
|
61 |
+
```
|
62 |
+
|
63 |
+
## Hyperparameters
|
64 |
+
```python
|
65 |
+
OrderedDict([('n_timesteps', 300000),
|
66 |
+
('noise_std', 0.5),
|
67 |
+
('noise_type', 'ornstein-uhlenbeck'),
|
68 |
+
('policy', 'MlpPolicy'),
|
69 |
+
('normalize', False)])
|
70 |
+
```
|
args.yml
ADDED
@@ -0,0 +1,81 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
!!python/object/apply:collections.OrderedDict
|
2 |
+
- - - algo
|
3 |
+
- ddpg
|
4 |
+
- - conf_file
|
5 |
+
- null
|
6 |
+
- - device
|
7 |
+
- auto
|
8 |
+
- - env
|
9 |
+
- MountainCarContinuous-v0
|
10 |
+
- - env_kwargs
|
11 |
+
- null
|
12 |
+
- - eval_episodes
|
13 |
+
- 5
|
14 |
+
- - eval_freq
|
15 |
+
- 25000
|
16 |
+
- - gym_packages
|
17 |
+
- []
|
18 |
+
- - hyperparams
|
19 |
+
- null
|
20 |
+
- - log_folder
|
21 |
+
- logs
|
22 |
+
- - log_interval
|
23 |
+
- -1
|
24 |
+
- - max_total_trials
|
25 |
+
- null
|
26 |
+
- - n_eval_envs
|
27 |
+
- 1
|
28 |
+
- - n_evaluations
|
29 |
+
- null
|
30 |
+
- - n_jobs
|
31 |
+
- 1
|
32 |
+
- - n_startup_trials
|
33 |
+
- 10
|
34 |
+
- - n_timesteps
|
35 |
+
- -1
|
36 |
+
- - n_trials
|
37 |
+
- 500
|
38 |
+
- - no_optim_plots
|
39 |
+
- false
|
40 |
+
- - num_threads
|
41 |
+
- -1
|
42 |
+
- - optimization_log_path
|
43 |
+
- null
|
44 |
+
- - optimize_hyperparameters
|
45 |
+
- false
|
46 |
+
- - progress
|
47 |
+
- false
|
48 |
+
- - pruner
|
49 |
+
- median
|
50 |
+
- - sampler
|
51 |
+
- tpe
|
52 |
+
- - save_freq
|
53 |
+
- -1
|
54 |
+
- - save_replay_buffer
|
55 |
+
- false
|
56 |
+
- - seed
|
57 |
+
- 4280148352
|
58 |
+
- - storage
|
59 |
+
- null
|
60 |
+
- - study_name
|
61 |
+
- null
|
62 |
+
- - tensorboard_log
|
63 |
+
- runs/MountainCarContinuous-v0__ddpg__4280148352__1671826538
|
64 |
+
- - track
|
65 |
+
- true
|
66 |
+
- - trained_agent
|
67 |
+
- ''
|
68 |
+
- - truncate_last_trajectory
|
69 |
+
- true
|
70 |
+
- - uuid
|
71 |
+
- false
|
72 |
+
- - vec_env
|
73 |
+
- dummy
|
74 |
+
- - verbose
|
75 |
+
- 1
|
76 |
+
- - wandb_entity
|
77 |
+
- openrlbenchmark
|
78 |
+
- - wandb_project_name
|
79 |
+
- sb3
|
80 |
+
- - yaml_file
|
81 |
+
- null
|
config.yml
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
!!python/object/apply:collections.OrderedDict
|
2 |
+
- - - n_timesteps
|
3 |
+
- 300000
|
4 |
+
- - noise_std
|
5 |
+
- 0.5
|
6 |
+
- - noise_type
|
7 |
+
- ornstein-uhlenbeck
|
8 |
+
- - policy
|
9 |
+
- MlpPolicy
|
ddpg-MountainCarContinuous-v0.zip
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:84b5711bd349523c9a26fea1885358a97f180197a94a216c7783d387bf2ddad3
|
3 |
+
size 3940595
|
ddpg-MountainCarContinuous-v0/_stable_baselines3_version
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
1.8.0a6
|
ddpg-MountainCarContinuous-v0/actor.optimizer.pth
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:941581c612074e808afe96c2a250ca3fa34369d3237c5d3dfd59f470a2fba0af
|
3 |
+
size 979247
|
ddpg-MountainCarContinuous-v0/critic.optimizer.pth
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:d440d1eaec6b56d22fad05dcc824b8142938289ebb96f22966b2959d21eeb4ce
|
3 |
+
size 982447
|
ddpg-MountainCarContinuous-v0/data
ADDED
@@ -0,0 +1,132 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"policy_class": {
|
3 |
+
":type:": "<class 'abc.ABCMeta'>",
|
4 |
+
":serialized:": "gAWVMAAAAAAAAACMHnN0YWJsZV9iYXNlbGluZXMzLnRkMy5wb2xpY2llc5SMCVREM1BvbGljeZSTlC4=",
|
5 |
+
"__module__": "stable_baselines3.td3.policies",
|
6 |
+
"__doc__": "\n Policy class (with both actor and critic) for TD3.\n\n :param observation_space: Observation space\n :param action_space: Action space\n :param lr_schedule: Learning rate schedule (could be constant)\n :param net_arch: The specification of the policy and value networks.\n :param activation_fn: Activation function\n :param features_extractor_class: Features extractor to use.\n :param features_extractor_kwargs: Keyword arguments\n to pass to the features extractor.\n :param normalize_images: Whether to normalize images or not,\n dividing by 255.0 (True by default)\n :param optimizer_class: The optimizer to use,\n ``th.optim.Adam`` by default\n :param optimizer_kwargs: Additional keyword arguments,\n excluding the learning rate, to pass to the optimizer\n :param n_critics: Number of critic networks to create.\n :param share_features_extractor: Whether to share or not the features extractor\n between the actor and the critic (this saves computation time)\n ",
|
7 |
+
"__init__": "<function TD3Policy.__init__ at 0x7f3292bad940>",
|
8 |
+
"_build": "<function TD3Policy._build at 0x7f3292bad9d0>",
|
9 |
+
"_get_constructor_parameters": "<function TD3Policy._get_constructor_parameters at 0x7f3292bada60>",
|
10 |
+
"make_actor": "<function TD3Policy.make_actor at 0x7f3292badaf0>",
|
11 |
+
"make_critic": "<function TD3Policy.make_critic at 0x7f3292badb80>",
|
12 |
+
"forward": "<function TD3Policy.forward at 0x7f3292badc10>",
|
13 |
+
"_predict": "<function TD3Policy._predict at 0x7f3292badca0>",
|
14 |
+
"set_training_mode": "<function TD3Policy.set_training_mode at 0x7f3292badd30>",
|
15 |
+
"__abstractmethods__": "frozenset()",
|
16 |
+
"_abc_impl": "<_abc._abc_data object at 0x7f3292bb1840>"
|
17 |
+
},
|
18 |
+
"verbose": 1,
|
19 |
+
"policy_kwargs": {
|
20 |
+
"n_critics": 1
|
21 |
+
},
|
22 |
+
"observation_space": {
|
23 |
+
":type:": "<class 'gym.spaces.box.Box'>",
|
24 |
+
":serialized:": "gAWVYwEAAAAAAACMDmd5bS5zcGFjZXMuYm94lIwDQm94lJOUKYGUfZQojAVkdHlwZZSMBW51bXB5lGgFk5SMAmY0lImIh5RSlChLA4wBPJROTk5K/////0r/////SwB0lGKMBl9zaGFwZZRLAoWUjANsb3eUjBJudW1weS5jb3JlLm51bWVyaWOUjAtfZnJvbWJ1ZmZlcpSTlCiWCAAAAAAAAACamZm/KVyPvZRoCksChZSMAUOUdJRSlIwEaGlnaJRoEiiWCAAAAAAAAACamRk/KVyPPZRoCksChZRoFXSUUpSMDWJvdW5kZWRfYmVsb3eUaBIolgIAAAAAAAAAAQGUaAeMAmIxlImIh5RSlChLA4wBfJROTk5K/////0r/////SwB0lGJLAoWUaBV0lFKUjA1ib3VuZGVkX2Fib3ZllGgSKJYCAAAAAAAAAAEBlGghSwKFlGgVdJRSlIwKX25wX3JhbmRvbZROdWIu",
|
25 |
+
"dtype": "float32",
|
26 |
+
"_shape": [
|
27 |
+
2
|
28 |
+
],
|
29 |
+
"low": "[-1.2 -0.07]",
|
30 |
+
"high": "[0.6 0.07]",
|
31 |
+
"bounded_below": "[ True True]",
|
32 |
+
"bounded_above": "[ True True]",
|
33 |
+
"_np_random": null
|
34 |
+
},
|
35 |
+
"action_space": {
|
36 |
+
":type:": "<class 'gym.spaces.box.Box'>",
|
37 |
+
":serialized:": "gAWVBAwAAAAAAACMDmd5bS5zcGFjZXMuYm94lIwDQm94lJOUKYGUfZQojAVkdHlwZZSMBW51bXB5lGgFk5SMAmY0lImIh5RSlChLA4wBPJROTk5K/////0r/////SwB0lGKMBl9zaGFwZZRLAYWUjANsb3eUjBJudW1weS5jb3JlLm51bWVyaWOUjAtfZnJvbWJ1ZmZlcpSTlCiWBAAAAAAAAAAAAIC/lGgKSwGFlIwBQ5R0lFKUjARoaWdolGgSKJYEAAAAAAAAAAAAgD+UaApLAYWUaBV0lFKUjA1ib3VuZGVkX2JlbG93lGgSKJYBAAAAAAAAAAGUaAeMAmIxlImIh5RSlChLA4wBfJROTk5K/////0r/////SwB0lGJLAYWUaBV0lFKUjA1ib3VuZGVkX2Fib3ZllGgSKJYBAAAAAAAAAAGUaCFLAYWUaBV0lFKUjApfbnBfcmFuZG9tlIwUbnVtcHkucmFuZG9tLl9waWNrbGWUjBJfX3JhbmRvbXN0YXRlX2N0b3KUk5SMB01UMTk5MzeUaC2MFF9fYml0X2dlbmVyYXRvcl9jdG9ylJOUhpRSlH2UKIwNYml0X2dlbmVyYXRvcpSMB01UMTk5MzeUjAVzdGF0ZZR9lCiMA2tleZRoEiiWwAkAAAAAAAAAAACAU8KznIcDtZNy7Ktb6Oay8s+2gdrVBu9hoTFNoGu1zNkT5hifdJx5L8ilG4DEeQFJng9D5F3gGJOSE1XM1EopZNIIlb400J5EcnoD8K2/CnObez7pYLEG2nUDRQtufdYWausENGaDt/P1pS9p70JjQ7Vc98J3UsxGRDctCIlu0I6ud/sYtoBPe575TzLsEti5jl6FqRnKrj12LWcrQoCexe7HH/UiAV1LzyQPzBlSZERXmHCdCvUSF7XpWt47xP9BzzqxX7aH3TPYWImqos1/ez/JlLdsD0MfMZl9G2CQq7cHHRlM3sj7jroA9c+pGt4l/iAGpRb80HbjwU71ykPTAVp531BXrc2qmIU6z9Fh4TAPx7fZ1kVF+L1Irlou+4Ckky7Ys59nB7KkciTI+N5jlb62ybZt0+ZWgIA6LKLvdx/mTQtB4k1aplT/C7L9/ybKCFn2quN/7YlIkxoH1U0xdabG6rgOrR+SHMmvUwvtKB+19Ibb07mSgVQyjNAvnyADPJf3pkxylZtn7f/OVpWEaWfl6BcLwy0grrEgUK+H+8P8XWMuBginXgwzn3sy4+ZOlr45op6TtuqX0Knz/SySGDlBIK8JqKObzB6fGt+ovJHEM8KlL4veKwkLkuuMWBaex3FBdWskry5qhslxMgnk2thh8DaXmAfbuI8j0SqHMW1kleITi9ekfXx/eSi5hX1GjA/M62Zixuay1H8zH9VjsTRcGacyJ0vh1hNReDFoNsXFbLfLqaIvbLDQjY7T289ZXsupvAxu2GVTbqWst+ckPPzwH7vLikULC+weAKwxarqm+ugAXgyz774meHOsvQYuu18nvrrunjZWDvwaKuYohEwUfSnpotE9XhX99yUTc8sGPQidTfXkzm/t8MWP8it4l4VSEgDLn8GW8t2DAh8EwFa/KOGoZEGjYqZ2IMA70E+F2LqgaZlQLFMONTIx3yuN5F2e1MT4v2wdBRK9R+lGMpxIiNldyOwwxLDBTRDMhd7APidmDwQBnvaIecKFa95btwHkRBEUT5g++/I0DDg685EX4OMO2YtTPqM3PQluS4puEhAQRVukNGSh4gYDgcBPKZl4ThNf+G+E7El9fmWJcP39Sifw6Mn+GEisM1RhHY05XZHUv5W4r8kD2jSLMY+IIL2+LtQrW7it7y28+sEicLoEfYOky9ZJF6l0fR+sXEawf+REH9LvtRJ4yzfxr7KisNpr1axv1ae5CDXS+XTzuOG/BJnHvt8arnY1XWH9SdkCOeok6MI8GBCtjTCxJ5JbpI5J0i0A66mJaRW9LMfP6Cil3/cVRQ9uN2KTtV3o7rJwY4XCnj7DJmqrUwofDDl7Ek0PoN7w0Hh8YHOy8qhPw7V8ALdjZn7eYtjCQIldQvHbM1I73RtCLQvQGFMXUCJ022pGRqTvZX5XWSizqbgX6TJmI6LDF9wcpYealB7cDwelfqdpzHRmyjRbIX9b+w4uj//aDRgP2SgiOAq/D/9/0SbgK/E0FQyclhNVAkbKwXhAxKGczpvJow0mFFUAt/5fT5KAsmQTAt8p0FsrGMDTfk4RzZgqZSm+ihVRS371Tx3twpGA1goo/AIfJh8slJC3hkR1OGCN7LAPGCwbM9rHlKSU4uuhJiff196h9q1kPMld6989MfKLVkvCl7ofCRurPUW46ceJKE951sQD1v8cK0HK1JmuBTCXAelCUCIFNLGk3tMXNVmuuFF3o3xb4V4T1IAYIfBdyEVHhIIZOE/JEY79daQw8njYEtQ6YwZ6kNCBYfrjq2OglITcRdwDmINL42ro6HnbWgLZQ8Ce/EiPVBtWHwhvGUHK1FNONzRzXgT1zKEg+WAigeuK4QVIxdITM4YvUyYvpQJuJd+xGD1no7BYIKXdV4aDlsRnWSMmS+zTyTvC0+TgBMCNpMvdChjaB/XTrMVsm0vgPmCYswn067MTYWfm5oCqqmNciqoRfFL2O2mxFT1VMcKDrxHBdBUhSG5UmAerx86KAEytbsCbn6OOj8Y02VwVynzXd0WJfLioeGMZISM1eneWfTc1mQ6CpdDxJqUmU86/KsBL3Bb0S2NAqFysFJZKxDwLej8xz+xH8IxEHzlkiiNH+2IIq0663FAwi6wg6dgcryDqQ+lNDwn898nylrcYShigDrtrFBNezKx3ZjpkPCnPUeQB4hJUrYCUJy5CyytC/x1UsByKez/aSNEWnlWnzYdJf2PoKL0YfmaR3KpXzi9ax3BHPgk1cdmgdVkqevFJ0DUdTBFQj/mhaKqcaT0rKJLgy/11AhWW4nX7+kAdgR0b1iAseI0TbMDtohBuqqUZfqMfUKsdI8v2aeUd0+IqOjPBFe7TZRC7OUYmf789SRTpw9gst4tzx7tLap8JnFt2keKhqd3vBgqpvlsxvx0DcPC+bo/qIldKiAn5D7TPjeWLzJ1gmpk1mVKOyWOv/ZzlRTfe8yEsMsRcgdPxbOuxLjlOwo1uFh9NjHoOz/xbnI62I49ZzT59GUCNtAL74UqjlRoyXZ5ELEjhTn+F5fYfEkY2TnSsgKO4Wwb/xD41S4mBL7LcUyF76ybV7Yx0L6V2QGoSfyhHFqMQJs/haLPPW18mWJb/UDl90ZN9TEzcdXvZsmCeqzCagC6YDHp3fop+5nAQSnT/Byt2j7z+6cnl/aZh6oKs5xrEMmuzpLFbXNVof9hNmX5E0DQ2M8uBqqeW95p6z8ySnOxURAO28oYWsbVyeYaNlWLZrOtIMZDRjjbecSSwMLlrBhw4mZVht4DgOQxI1+P7sPHZLMf89U+5ctf1rD0r1AXgyXjzOxKvCxWMhrz6Ah19+zal/bAIpw+0V7Pq85PRQO4UeScmMwODR8jcOfILuMmo7xXhemY/JqtOncklEaGapMeGlkiefvQkx9L5EWvLn6stI4zRP4pZXx9iOz17IKJmKOVHgCIAOiheb0bwkjNkItlfYO3LzeLLPuBDNLFg7tQu5NPWy28a4nBsE/gsyEteRvF2ECYFIOJg06dzc77IWw7o+z1Q5APxLg9uvyFniYWNuJyk7rflLCmYcg1gN657CWff8YfPr0ukKOamco94X1nFdyroxHiQlRXaP91DOqMueI1pCasyRQt0jtbWwxdEVyzP3GzUZXBWqa0xXCzwe29cxg2aiwKuuAAVfaCE/Pt1cJXq8wvliF81sMDPMbowd9+uyWuExq/e+2W3wWeV3hVofoiEySjBrJPWVJW9++UocJbC0ppNw5mtHktkZqUk6kVtUgVQ4Cj4udj/bluZzcqWjIvOCJO52M+xcQY808Ei8T/lwwS9TguuzQ3e0KR7hptgNcX1/XhCvAuUaAeMAnU0lImIh5RSlChLA2gLTk5OSv////9K/////0sAdJRiTXAChZRoFXSUUpSMA3Bvc5RNcAJ1jAloYXNfZ2F1c3OUSwCMBWdhdXNzlEcAAAAAAAAAAHVidWIu",
|
38 |
+
"dtype": "float32",
|
39 |
+
"_shape": [
|
40 |
+
1
|
41 |
+
],
|
42 |
+
"low": "[-1.]",
|
43 |
+
"high": "[1.]",
|
44 |
+
"bounded_below": "[ True]",
|
45 |
+
"bounded_above": "[ True]",
|
46 |
+
"_np_random": "RandomState(MT19937)"
|
47 |
+
},
|
48 |
+
"n_envs": 1,
|
49 |
+
"num_timesteps": 300032,
|
50 |
+
"_total_timesteps": 300000,
|
51 |
+
"_num_timesteps_at_start": 0,
|
52 |
+
"seed": 0,
|
53 |
+
"action_noise": {
|
54 |
+
":type:": "<class 'stable_baselines3.common.noise.OrnsteinUhlenbeckActionNoise'>",
|
55 |
+
":serialized:": "gAWVVQEAAAAAAACMHnN0YWJsZV9iYXNlbGluZXMzLmNvbW1vbi5ub2lzZZSMHE9ybnN0ZWluVWhsZW5iZWNrQWN0aW9uTm9pc2WUk5QpgZR9lCiMBl90aGV0YZRHP8MzMzMzMzOMA19tdZSMEm51bXB5LmNvcmUubnVtZXJpY5SMC19mcm9tYnVmZmVylJOUKJYIAAAAAAAAAAAAAAAAAAAAlIwFbnVtcHmUjAVkdHlwZZSTlIwCZjiUiYiHlFKUKEsDjAE8lE5OTkr/////Sv////9LAHSUYksBhZSMAUOUdJRSlIwGX3NpZ21hlGgJKJYIAAAAAAAAAAAAAAAAAOA/lGgQSwGFlGgUdJRSlIwDX2R0lEc/hHrhR64Ue4wNaW5pdGlhbF9ub2lzZZROjApub2lzZV9wcmV2lGgJKJYIAAAAAAAAAAAAAAAAAAAAlGgQSwGFlGgUdJRSlHViLg==",
|
56 |
+
"_theta": 0.15,
|
57 |
+
"_mu": "[0.]",
|
58 |
+
"_sigma": "[0.5]",
|
59 |
+
"_dt": 0.01,
|
60 |
+
"initial_noise": null,
|
61 |
+
"noise_prev": "[0.]"
|
62 |
+
},
|
63 |
+
"start_time": 1671826540769964459,
|
64 |
+
"learning_rate": 0.001,
|
65 |
+
"tensorboard_log": "runs/MountainCarContinuous-v0__ddpg__4280148352__1671826538/MountainCarContinuous-v0",
|
66 |
+
"lr_schedule": {
|
67 |
+
":type:": "<class 'function'>",
|
68 |
+
":serialized:": "gAWVvQIAAAAAAACMF2Nsb3VkcGlja2xlLmNsb3VkcGlja2xllIwOX21ha2VfZnVuY3Rpb26Uk5QoaACMDV9idWlsdGluX3R5cGWUk5SMCENvZGVUeXBllIWUUpQoSwFLAEsASwFLAUsTQwSIAFMAlE6FlCmMAV+UhZSMRS9ob21lL3FnYWxsb3VlZGVjL3N0YWJsZS1iYXNlbGluZXMzL3N0YWJsZV9iYXNlbGluZXMzL2NvbW1vbi91dGlscy5weZSMBGZ1bmOUS4JDAgABlIwDdmFslIWUKXSUUpR9lCiMC19fcGFja2FnZV9flIwYc3RhYmxlX2Jhc2VsaW5lczMuY29tbW9ulIwIX19uYW1lX1+UjB5zdGFibGVfYmFzZWxpbmVzMy5jb21tb24udXRpbHOUjAhfX2ZpbGVfX5SMRS9ob21lL3FnYWxsb3VlZGVjL3N0YWJsZS1iYXNlbGluZXMzL3N0YWJsZV9iYXNlbGluZXMzL2NvbW1vbi91dGlscy5weZR1Tk5oAIwQX21ha2VfZW1wdHlfY2VsbJSTlClSlIWUdJRSlIwcY2xvdWRwaWNrbGUuY2xvdWRwaWNrbGVfZmFzdJSMEl9mdW5jdGlvbl9zZXRzdGF0ZZSTlGgffZR9lChoFmgNjAxfX3F1YWxuYW1lX1+UjBljb25zdGFudF9mbi48bG9jYWxzPi5mdW5jlIwPX19hbm5vdGF0aW9uc19flH2UjA5fX2t3ZGVmYXVsdHNfX5ROjAxfX2RlZmF1bHRzX1+UTowKX19tb2R1bGVfX5RoF4wHX19kb2NfX5ROjAtfX2Nsb3N1cmVfX5RoAIwKX21ha2VfY2VsbJSTlEc/UGJN0vGp/IWUUpSFlIwXX2Nsb3VkcGlja2xlX3N1Ym1vZHVsZXOUXZSMC19fZ2xvYmFsc19flH2UdYaUhlIwLg=="
|
69 |
+
},
|
70 |
+
"_last_obs": null,
|
71 |
+
"_last_episode_starts": {
|
72 |
+
":type:": "<class 'numpy.ndarray'>",
|
73 |
+
":serialized:": "gAWVdAAAAAAAAACMEm51bXB5LmNvcmUubnVtZXJpY5SMC19mcm9tYnVmZmVylJOUKJYBAAAAAAAAAAGUjAVudW1weZSMBWR0eXBllJOUjAJiMZSJiIeUUpQoSwOMAXyUTk5OSv////9K/////0sAdJRiSwGFlIwBQ5R0lFKULg=="
|
74 |
+
},
|
75 |
+
"_last_original_obs": {
|
76 |
+
":type:": "<class 'numpy.ndarray'>",
|
77 |
+
":serialized:": "gAWVfQAAAAAAAACMEm51bXB5LmNvcmUubnVtZXJpY5SMC19mcm9tYnVmZmVylJOUKJYIAAAAAAAAAENt4z6VCw89lIwFbnVtcHmUjAVkdHlwZZSTlIwCZjSUiYiHlFKUKEsDjAE8lE5OTkr/////Sv////9LAHSUYksBSwKGlIwBQ5R0lFKULg=="
|
78 |
+
},
|
79 |
+
"_episode_num": 2994,
|
80 |
+
"use_sde": false,
|
81 |
+
"sde_sample_freq": -1,
|
82 |
+
"_current_progress_remaining": -0.00010666666666669933,
|
83 |
+
"ep_info_buffer": {
|
84 |
+
":type:": "<class 'collections.deque'>",
|
85 |
+
":serialized:": "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"
|
86 |
+
},
|
87 |
+
"ep_success_buffer": {
|
88 |
+
":type:": "<class 'collections.deque'>",
|
89 |
+
":serialized:": "gAWVIAAAAAAAAACMC2NvbGxlY3Rpb25zlIwFZGVxdWWUk5QpS2SGlFKULg=="
|
90 |
+
},
|
91 |
+
"_n_updates": 300032,
|
92 |
+
"buffer_size": 1,
|
93 |
+
"batch_size": 100,
|
94 |
+
"learning_starts": 100,
|
95 |
+
"tau": 0.005,
|
96 |
+
"gamma": 0.99,
|
97 |
+
"gradient_steps": -1,
|
98 |
+
"optimize_memory_usage": false,
|
99 |
+
"replay_buffer_class": {
|
100 |
+
":type:": "<class 'abc.ABCMeta'>",
|
101 |
+
":serialized:": "gAWVNQAAAAAAAACMIHN0YWJsZV9iYXNlbGluZXMzLmNvbW1vbi5idWZmZXJzlIwMUmVwbGF5QnVmZmVylJOULg==",
|
102 |
+
"__module__": "stable_baselines3.common.buffers",
|
103 |
+
"__doc__": "\n Replay buffer used in off-policy algorithms like SAC/TD3.\n\n :param buffer_size: Max number of element in the buffer\n :param observation_space: Observation space\n :param action_space: Action space\n :param device: PyTorch device\n :param n_envs: Number of parallel environments\n :param optimize_memory_usage: Enable a memory efficient variant\n of the replay buffer which reduces by almost a factor two the memory used,\n at a cost of more complexity.\n See https://github.com/DLR-RM/stable-baselines3/issues/37#issuecomment-637501195\n and https://github.com/DLR-RM/stable-baselines3/pull/28#issuecomment-637559274\n Cannot be used in combination with handle_timeout_termination.\n :param handle_timeout_termination: Handle timeout termination (due to timelimit)\n separately and treat the task as infinite horizon task.\n https://github.com/DLR-RM/stable-baselines3/issues/284\n ",
|
104 |
+
"__init__": "<function ReplayBuffer.__init__ at 0x7f3292baa430>",
|
105 |
+
"add": "<function ReplayBuffer.add at 0x7f3292baa4c0>",
|
106 |
+
"sample": "<function ReplayBuffer.sample at 0x7f3292baa550>",
|
107 |
+
"_get_samples": "<function ReplayBuffer._get_samples at 0x7f3292baa5e0>",
|
108 |
+
"__abstractmethods__": "frozenset()",
|
109 |
+
"_abc_impl": "<_abc._abc_data object at 0x7f3292ba1680>"
|
110 |
+
},
|
111 |
+
"replay_buffer_kwargs": {},
|
112 |
+
"train_freq": {
|
113 |
+
":type:": "<class 'stable_baselines3.common.type_aliases.TrainFreq'>",
|
114 |
+
":serialized:": "gAWVZAAAAAAAAACMJXN0YWJsZV9iYXNlbGluZXMzLmNvbW1vbi50eXBlX2FsaWFzZXOUjAlUcmFpbkZyZXGUk5RLAWgAjBJUcmFpbkZyZXF1ZW5jeVVuaXSUk5SMB2VwaXNvZGWUhZRSlIaUgZQu"
|
115 |
+
},
|
116 |
+
"use_sde_at_warmup": false,
|
117 |
+
"policy_delay": 1,
|
118 |
+
"target_noise_clip": 0.0,
|
119 |
+
"target_policy_noise": 0.1,
|
120 |
+
"_action_repeat": [
|
121 |
+
null
|
122 |
+
],
|
123 |
+
"surgeon": null,
|
124 |
+
"actor_batch_norm_stats": [],
|
125 |
+
"critic_batch_norm_stats": [],
|
126 |
+
"actor_batch_norm_stats_target": [],
|
127 |
+
"critic_batch_norm_stats_target": [],
|
128 |
+
"_last_action": {
|
129 |
+
":type:": "<class 'numpy.ndarray'>",
|
130 |
+
":serialized:": "gAWVeQAAAAAAAACMEm51bXB5LmNvcmUubnVtZXJpY5SMC19mcm9tYnVmZmVylJOUKJYEAAAAAAAAAAAAgD+UjAVudW1weZSMBWR0eXBllJOUjAJmNJSJiIeUUpQoSwOMATyUTk5OSv////9K/////0sAdJRiSwFLAYaUjAFDlHSUUpQu"
|
131 |
+
}
|
132 |
+
}
|
ddpg-MountainCarContinuous-v0/policy.pth
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:40de28ca55a0d95b83a4c52d2a812ae97ffaaf9a004f684eb64fb59cf463132b
|
3 |
+
size 1959965
|
ddpg-MountainCarContinuous-v0/pytorch_variables.pth
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:d030ad8db708280fcae77d87e973102039acd23a11bdecc3db8eb6c0ac940ee1
|
3 |
+
size 431
|
ddpg-MountainCarContinuous-v0/system_info.txt
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
- OS: Linux-5.19.0-32-generic-x86_64-with-glibc2.35 # 33~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Mon Jan 30 17:03:34 UTC 2
|
2 |
+
- Python: 3.9.12
|
3 |
+
- Stable-Baselines3: 1.8.0a6
|
4 |
+
- PyTorch: 1.13.1+cu117
|
5 |
+
- GPU Enabled: True
|
6 |
+
- Numpy: 1.24.1
|
7 |
+
- Gym: 0.21.0
|
env_kwargs.yml
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
{}
|
replay.mp4
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:c1582a3f6aad049d3f05165a43327a254334626eb575ecbc63b7d5a4a7695977
|
3 |
+
size 270695
|
results.json
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
{"mean_reward": 93.7224091, "std_reward": 0.12611714529630758, "is_deterministic": true, "n_eval_episodes": 10, "eval_datetime": "2023-02-27T17:21:21.655975"}
|
train_eval_metrics.zip
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:4411d4719e4ec315e7024f266f914149753a7b18997918644b7ecca210a29a65
|
3 |
+
size 77292
|