Initial Commit
Browse files- .gitattributes +1 -0
- README.md +70 -0
- args.yml +75 -0
- config.yml +29 -0
- env_kwargs.yml +1 -0
- ppo-seals-CartPole-v0.zip +3 -0
- ppo-seals-CartPole-v0/_stable_baselines3_version +1 -0
- ppo-seals-CartPole-v0/data +110 -0
- ppo-seals-CartPole-v0/policy.optimizer.pth +3 -0
- ppo-seals-CartPole-v0/policy.pth +3 -0
- ppo-seals-CartPole-v0/pytorch_variables.pth +3 -0
- ppo-seals-CartPole-v0/system_info.txt +7 -0
- replay.mp4 +3 -0
- results.json +1 -0
- train_eval_metrics.zip +3 -0
.gitattributes
CHANGED
@@ -25,3 +25,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
|
25 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
26 |
*.zstandard filter=lfs diff=lfs merge=lfs -text
|
27 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
|
|
|
25 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
26 |
*.zstandard filter=lfs diff=lfs merge=lfs -text
|
27 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
28 |
+
*.mp4 filter=lfs diff=lfs merge=lfs -text
|
README.md
ADDED
@@ -0,0 +1,70 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
---
|
2 |
+
library_name: stable-baselines3
|
3 |
+
tags:
|
4 |
+
- seals/CartPole-v0
|
5 |
+
- deep-reinforcement-learning
|
6 |
+
- reinforcement-learning
|
7 |
+
- stable-baselines3
|
8 |
+
model-index:
|
9 |
+
- name: PPO
|
10 |
+
results:
|
11 |
+
- metrics:
|
12 |
+
- type: mean_reward
|
13 |
+
value: 500.00 +/- 0.00
|
14 |
+
name: mean_reward
|
15 |
+
task:
|
16 |
+
type: reinforcement-learning
|
17 |
+
name: reinforcement-learning
|
18 |
+
dataset:
|
19 |
+
name: seals/CartPole-v0
|
20 |
+
type: seals/CartPole-v0
|
21 |
+
---
|
22 |
+
|
23 |
+
# **PPO** Agent playing **seals/CartPole-v0**
|
24 |
+
This is a trained model of a **PPO** agent playing **seals/CartPole-v0**
|
25 |
+
using the [stable-baselines3 library](https://github.com/DLR-RM/stable-baselines3)
|
26 |
+
and the [RL Zoo](https://github.com/DLR-RM/rl-baselines3-zoo).
|
27 |
+
|
28 |
+
The RL Zoo is a training framework for Stable Baselines3
|
29 |
+
reinforcement learning agents,
|
30 |
+
with hyperparameter optimization and pre-trained agents included.
|
31 |
+
|
32 |
+
## Usage (with SB3 RL Zoo)
|
33 |
+
|
34 |
+
RL Zoo: https://github.com/DLR-RM/rl-baselines3-zoo<br/>
|
35 |
+
SB3: https://github.com/DLR-RM/stable-baselines3<br/>
|
36 |
+
SB3 Contrib: https://github.com/Stable-Baselines-Team/stable-baselines3-contrib
|
37 |
+
|
38 |
+
```
|
39 |
+
# Download model and save it into the logs/ folder
|
40 |
+
python -m utils.load_from_hub --algo ppo --env seals/CartPole-v0 -orga ernestumorga -f logs/
|
41 |
+
python enjoy.py --algo ppo --env seals/CartPole-v0 -f logs/
|
42 |
+
```
|
43 |
+
|
44 |
+
## Training (with the RL Zoo)
|
45 |
+
```
|
46 |
+
python train.py --algo ppo --env seals/CartPole-v0 -f logs/
|
47 |
+
# Upload the model and generate video (when possible)
|
48 |
+
python -m utils.push_to_hub --algo ppo --env seals/CartPole-v0 -f logs/ -orga ernestumorga
|
49 |
+
```
|
50 |
+
|
51 |
+
## Hyperparameters
|
52 |
+
```python
|
53 |
+
OrderedDict([('batch_size', 256),
|
54 |
+
('clip_range', 0.4),
|
55 |
+
('ent_coef', 0.008508727919228772),
|
56 |
+
('gae_lambda', 0.9),
|
57 |
+
('gamma', 0.9999),
|
58 |
+
('learning_rate', 0.0012403278189645594),
|
59 |
+
('max_grad_norm', 0.8),
|
60 |
+
('n_envs', 8),
|
61 |
+
('n_epochs', 10),
|
62 |
+
('n_steps', 512),
|
63 |
+
('n_timesteps', 100000.0),
|
64 |
+
('policy', 'MlpPolicy'),
|
65 |
+
('policy_kwargs',
|
66 |
+
'dict(activation_fn=nn.ReLU, net_arch=[dict(pi=[64, 64], vf=[64, '
|
67 |
+
'64])])'),
|
68 |
+
('vf_coef', 0.489343896591493),
|
69 |
+
('normalize', False)])
|
70 |
+
```
|
args.yml
ADDED
@@ -0,0 +1,75 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
!!python/object/apply:collections.OrderedDict
|
2 |
+
- - - algo
|
3 |
+
- ppo
|
4 |
+
- - device
|
5 |
+
- cpu
|
6 |
+
- - env
|
7 |
+
- seals/CartPole-v0
|
8 |
+
- - env_kwargs
|
9 |
+
- null
|
10 |
+
- - eval_episodes
|
11 |
+
- 5
|
12 |
+
- - eval_freq
|
13 |
+
- 25000
|
14 |
+
- - gym_packages
|
15 |
+
- []
|
16 |
+
- - hyperparams
|
17 |
+
- null
|
18 |
+
- - log_folder
|
19 |
+
- seals_experts
|
20 |
+
- - log_interval
|
21 |
+
- -1
|
22 |
+
- - n_eval_envs
|
23 |
+
- 1
|
24 |
+
- - n_evaluations
|
25 |
+
- null
|
26 |
+
- - n_jobs
|
27 |
+
- 1
|
28 |
+
- - n_startup_trials
|
29 |
+
- 10
|
30 |
+
- - n_timesteps
|
31 |
+
- -1
|
32 |
+
- - n_trials
|
33 |
+
- 500
|
34 |
+
- - no_optim_plots
|
35 |
+
- false
|
36 |
+
- - num_threads
|
37 |
+
- 4
|
38 |
+
- - optimization_log_path
|
39 |
+
- null
|
40 |
+
- - optimize_hyperparameters
|
41 |
+
- false
|
42 |
+
- - pruner
|
43 |
+
- median
|
44 |
+
- - sampler
|
45 |
+
- tpe
|
46 |
+
- - save_freq
|
47 |
+
- -1
|
48 |
+
- - save_replay_buffer
|
49 |
+
- false
|
50 |
+
- - seed
|
51 |
+
- 3866955406
|
52 |
+
- - storage
|
53 |
+
- null
|
54 |
+
- - study_name
|
55 |
+
- null
|
56 |
+
- - tensorboard_log
|
57 |
+
- ''
|
58 |
+
- - total_n_trials
|
59 |
+
- null
|
60 |
+
- - track
|
61 |
+
- false
|
62 |
+
- - trained_agent
|
63 |
+
- ''
|
64 |
+
- - truncate_last_trajectory
|
65 |
+
- true
|
66 |
+
- - uuid
|
67 |
+
- false
|
68 |
+
- - vec_env
|
69 |
+
- dummy
|
70 |
+
- - verbose
|
71 |
+
- 1
|
72 |
+
- - wandb_entity
|
73 |
+
- null
|
74 |
+
- - wandb_project_name
|
75 |
+
- sb3
|
config.yml
ADDED
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
!!python/object/apply:collections.OrderedDict
|
2 |
+
- - - batch_size
|
3 |
+
- 256
|
4 |
+
- - clip_range
|
5 |
+
- 0.4
|
6 |
+
- - ent_coef
|
7 |
+
- 0.008508727919228772
|
8 |
+
- - gae_lambda
|
9 |
+
- 0.9
|
10 |
+
- - gamma
|
11 |
+
- 0.9999
|
12 |
+
- - learning_rate
|
13 |
+
- 0.0012403278189645594
|
14 |
+
- - max_grad_norm
|
15 |
+
- 0.8
|
16 |
+
- - n_envs
|
17 |
+
- 8
|
18 |
+
- - n_epochs
|
19 |
+
- 10
|
20 |
+
- - n_steps
|
21 |
+
- 512
|
22 |
+
- - n_timesteps
|
23 |
+
- 100000.0
|
24 |
+
- - policy
|
25 |
+
- MlpPolicy
|
26 |
+
- - policy_kwargs
|
27 |
+
- dict(activation_fn=nn.ReLU, net_arch=[dict(pi=[64, 64], vf=[64, 64])])
|
28 |
+
- - vf_coef
|
29 |
+
- 0.489343896591493
|
env_kwargs.yml
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
{}
|
ppo-seals-CartPole-v0.zip
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:f0430bbef17d9463be60c35cc6cc619a3a6dbc7db81e1d9469b484a1d2c5b156
|
3 |
+
size 138640
|
ppo-seals-CartPole-v0/_stable_baselines3_version
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
1.4.1a0
|
ppo-seals-CartPole-v0/data
ADDED
@@ -0,0 +1,110 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"policy_class": {
|
3 |
+
":type:": "<class 'abc.ABCMeta'>",
|
4 |
+
":serialized:": "gAWVOwAAAAAAAACMIXN0YWJsZV9iYXNlbGluZXMzLmNvbW1vbi5wb2xpY2llc5SMEUFjdG9yQ3JpdGljUG9saWN5lJOULg==",
|
5 |
+
"__module__": "stable_baselines3.common.policies",
|
6 |
+
"__doc__": "\n Policy class for actor-critic algorithms (has both policy and value prediction).\n Used by A2C, PPO and the likes.\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 ortho_init: Whether to use or not orthogonal initialization\n :param use_sde: Whether to use State Dependent Exploration or not\n :param log_std_init: Initial value for the log standard deviation\n :param full_std: Whether to use (n_features x n_actions) parameters\n for the std instead of only (n_features,) when using gSDE\n :param sde_net_arch: Network architecture for extracting features\n when using gSDE. If None, the latent features from the policy will be used.\n Pass an empty list to use the states as features.\n :param use_expln: Use ``expln()`` function instead of ``exp()`` to ensure\n a positive standard deviation (cf paper). It allows to keep variance\n above zero and prevent it from growing too fast. In practice, ``exp()`` is usually enough.\n :param squash_output: Whether to squash the output using a tanh function,\n this allows to ensure boundaries when using gSDE.\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 ",
|
7 |
+
"__init__": "<function ActorCriticPolicy.__init__ at 0x7fc420aef280>",
|
8 |
+
"_get_constructor_parameters": "<function ActorCriticPolicy._get_constructor_parameters at 0x7fc420aef310>",
|
9 |
+
"reset_noise": "<function ActorCriticPolicy.reset_noise at 0x7fc420aef3a0>",
|
10 |
+
"_build_mlp_extractor": "<function ActorCriticPolicy._build_mlp_extractor at 0x7fc420aef430>",
|
11 |
+
"_build": "<function ActorCriticPolicy._build at 0x7fc420aef4c0>",
|
12 |
+
"forward": "<function ActorCriticPolicy.forward at 0x7fc420aef550>",
|
13 |
+
"_get_action_dist_from_latent": "<function ActorCriticPolicy._get_action_dist_from_latent at 0x7fc420aef5e0>",
|
14 |
+
"_predict": "<function ActorCriticPolicy._predict at 0x7fc420aef670>",
|
15 |
+
"evaluate_actions": "<function ActorCriticPolicy.evaluate_actions at 0x7fc420aef700>",
|
16 |
+
"get_distribution": "<function ActorCriticPolicy.get_distribution at 0x7fc420aef790>",
|
17 |
+
"predict_values": "<function ActorCriticPolicy.predict_values at 0x7fc420aef820>",
|
18 |
+
"__abstractmethods__": "frozenset()",
|
19 |
+
"_abc_impl": "<_abc_data object at 0x7fc420b67870>"
|
20 |
+
},
|
21 |
+
"verbose": 1,
|
22 |
+
"policy_kwargs": {
|
23 |
+
":type:": "<class 'dict'>",
|
24 |
+
":serialized:": "gAWVaAAAAAAAAAB9lCiMDWFjdGl2YXRpb25fZm6UjBt0b3JjaC5ubi5tb2R1bGVzLmFjdGl2YXRpb26UjARSZUxVlJOUjAhuZXRfYXJjaJRdlH2UKIwCcGmUXZQoS0BLQGWMAnZmlF2UKEtAS0BldWF1Lg==",
|
25 |
+
"activation_fn": "<class 'torch.nn.modules.activation.ReLU'>",
|
26 |
+
"net_arch": [
|
27 |
+
{
|
28 |
+
"pi": [
|
29 |
+
64,
|
30 |
+
64
|
31 |
+
],
|
32 |
+
"vf": [
|
33 |
+
64,
|
34 |
+
64
|
35 |
+
]
|
36 |
+
}
|
37 |
+
]
|
38 |
+
},
|
39 |
+
"observation_space": {
|
40 |
+
":type:": "<class 'gym.spaces.box.Box'>",
|
41 |
+
":serialized:": "gAWVdwEAAAAAAACMDmd5bS5zcGFjZXMuYm94lIwDQm94lJOUKYGUfZQojAVkdHlwZZSMBW51bXB5lGgFk5SMAmY0lImIh5RSlChLA4wBPJROTk5K/////0r/////SwB0lGKMBl9zaGFwZZRLBIWUjANsb3eUjBJudW1weS5jb3JlLm51bWVyaWOUjAtfZnJvbWJ1ZmZlcpSTlCiWEAAAAAAAAAD//3////9//9sPScD//3//lGgKSwSFlIwBQ5R0lFKUjARoaWdolGgSKJYQAAAAAAAAAP//f3///39/2w9JQP//f3+UaApLBIWUaBV0lFKUjA1ib3VuZGVkX2JlbG93lGgSKJYEAAAAAAAAAAEBAQGUaAeMAmIxlImIh5RSlChLA4wBfJROTk5K/////0r/////SwB0lGJLBIWUaBV0lFKUjA1ib3VuZGVkX2Fib3ZllGgSKJYEAAAAAAAAAAEBAQGUaCFLBIWUaBV0lFKUjApfbnBfcmFuZG9tlE51Yi4=",
|
42 |
+
"dtype": "float32",
|
43 |
+
"_shape": [
|
44 |
+
4
|
45 |
+
],
|
46 |
+
"low": "[-3.4028235e+38 -3.4028235e+38 -3.1415927e+00 -3.4028235e+38]",
|
47 |
+
"high": "[3.4028235e+38 3.4028235e+38 3.1415927e+00 3.4028235e+38]",
|
48 |
+
"bounded_below": "[ True True True True]",
|
49 |
+
"bounded_above": "[ True True True True]",
|
50 |
+
"_np_random": null
|
51 |
+
},
|
52 |
+
"action_space": {
|
53 |
+
":type:": "<class 'gym.spaces.discrete.Discrete'>",
|
54 |
+
":serialized:": "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",
|
55 |
+
"n": 2,
|
56 |
+
"_shape": [],
|
57 |
+
"dtype": "int64",
|
58 |
+
"_np_random": "RandomState(MT19937)"
|
59 |
+
},
|
60 |
+
"n_envs": 8,
|
61 |
+
"num_timesteps": 102400,
|
62 |
+
"_total_timesteps": 100000,
|
63 |
+
"_num_timesteps_at_start": 0,
|
64 |
+
"seed": 0,
|
65 |
+
"action_noise": null,
|
66 |
+
"start_time": 1651240811.8226469,
|
67 |
+
"learning_rate": {
|
68 |
+
":type:": "<class 'function'>",
|
69 |
+
":serialized:": "gAWVmAIAAAAAAACMF2Nsb3VkcGlja2xlLmNsb3VkcGlja2xllIwNX2J1aWx0aW5fdHlwZZSTlIwKTGFtYmRhVHlwZZSFlFKUKGgCjAhDb2RlVHlwZZSFlFKUKEsBSwBLAEsBSwFLE0MEiABTAJROhZQpjAFflIWUjGgvbmFzL3VjYi9tYXhpbWlsaWFuL3JsLWJhc2VsaW5lczMtem9vL3ZlbnYvbGliL3B5dGhvbjMuOC9zaXRlLXBhY2thZ2VzL3N0YWJsZV9iYXNlbGluZXMzL2NvbW1vbi91dGlscy5weZSMBGZ1bmOUS4BDAgABlIwDdmFslIWUKXSUUpR9lCiMC19fcGFja2FnZV9flIwYc3RhYmxlX2Jhc2VsaW5lczMuY29tbW9ulIwIX19uYW1lX1+UjB5zdGFibGVfYmFzZWxpbmVzMy5jb21tb24udXRpbHOUjAhfX2ZpbGVfX5RoDXVOTmgAjBBfbWFrZV9lbXB0eV9jZWxslJOUKVKUhZR0lFKUjBxjbG91ZHBpY2tsZS5jbG91ZHBpY2tsZV9mYXN0lIwSX2Z1bmN0aW9uX3NldHN0YXRllJOUaB99lH2UKGgXaA6MDF9fcXVhbG5hbWVfX5SMGWNvbnN0YW50X2ZuLjxsb2NhbHM+LmZ1bmOUjA9fX2Fubm90YXRpb25zX1+UfZSMDl9fa3dkZWZhdWx0c19flE6MDF9fZGVmYXVsdHNfX5ROjApfX21vZHVsZV9flGgYjAdfX2RvY19flE6MC19fY2xvc3VyZV9flGgAjApfbWFrZV9jZWxslJOURz9UUk/azSgzhZRSlIWUjBdfY2xvdWRwaWNrbGVfc3VibW9kdWxlc5RdlIwLX19nbG9iYWxzX1+UfZR1hpSGUjAu"
|
70 |
+
},
|
71 |
+
"tensorboard_log": null,
|
72 |
+
"lr_schedule": {
|
73 |
+
":type:": "<class 'function'>",
|
74 |
+
":serialized:": "gAWVmAIAAAAAAACMF2Nsb3VkcGlja2xlLmNsb3VkcGlja2xllIwNX2J1aWx0aW5fdHlwZZSTlIwKTGFtYmRhVHlwZZSFlFKUKGgCjAhDb2RlVHlwZZSFlFKUKEsBSwBLAEsBSwFLE0MEiABTAJROhZQpjAFflIWUjGgvbmFzL3VjYi9tYXhpbWlsaWFuL3JsLWJhc2VsaW5lczMtem9vL3ZlbnYvbGliL3B5dGhvbjMuOC9zaXRlLXBhY2thZ2VzL3N0YWJsZV9iYXNlbGluZXMzL2NvbW1vbi91dGlscy5weZSMBGZ1bmOUS4BDAgABlIwDdmFslIWUKXSUUpR9lCiMC19fcGFja2FnZV9flIwYc3RhYmxlX2Jhc2VsaW5lczMuY29tbW9ulIwIX19uYW1lX1+UjB5zdGFibGVfYmFzZWxpbmVzMy5jb21tb24udXRpbHOUjAhfX2ZpbGVfX5RoDXVOTmgAjBBfbWFrZV9lbXB0eV9jZWxslJOUKVKUhZR0lFKUjBxjbG91ZHBpY2tsZS5jbG91ZHBpY2tsZV9mYXN0lIwSX2Z1bmN0aW9uX3NldHN0YXRllJOUaB99lH2UKGgXaA6MDF9fcXVhbG5hbWVfX5SMGWNvbnN0YW50X2ZuLjxsb2NhbHM+LmZ1bmOUjA9fX2Fubm90YXRpb25zX1+UfZSMDl9fa3dkZWZhdWx0c19flE6MDF9fZGVmYXVsdHNfX5ROjApfX21vZHVsZV9flGgYjAdfX2RvY19flE6MC19fY2xvc3VyZV9flGgAjApfbWFrZV9jZWxslJOURz9UUk/azSgzhZRSlIWUjBdfY2xvdWRwaWNrbGVfc3VibW9kdWxlc5RdlIwLX19nbG9iYWxzX1+UfZR1hpSGUjAu"
|
75 |
+
},
|
76 |
+
"_last_obs": null,
|
77 |
+
"_last_episode_starts": {
|
78 |
+
":type:": "<class 'numpy.ndarray'>",
|
79 |
+
":serialized:": "gAWVewAAAAAAAACMEm51bXB5LmNvcmUubnVtZXJpY5SMC19mcm9tYnVmZmVylJOUKJYIAAAAAAAAAAAAAAAAAAAAlIwFbnVtcHmUjAVkdHlwZZSTlIwCYjGUiYiHlFKUKEsDjAF8lE5OTkr/////Sv////9LAHSUYksIhZSMAUOUdJRSlC4="
|
80 |
+
},
|
81 |
+
"_last_original_obs": null,
|
82 |
+
"_episode_num": 0,
|
83 |
+
"use_sde": false,
|
84 |
+
"sde_sample_freq": -1,
|
85 |
+
"_current_progress_remaining": -0.02400000000000002,
|
86 |
+
"ep_info_buffer": {
|
87 |
+
":type:": "<class 'collections.deque'>",
|
88 |
+
":serialized:": "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"
|
89 |
+
},
|
90 |
+
"ep_success_buffer": {
|
91 |
+
":type:": "<class 'collections.deque'>",
|
92 |
+
":serialized:": "gAWVIAAAAAAAAACMC2NvbGxlY3Rpb25zlIwFZGVxdWWUk5QpS2SGlFKULg=="
|
93 |
+
},
|
94 |
+
"_n_updates": 250,
|
95 |
+
"n_steps": 512,
|
96 |
+
"gamma": 0.9999,
|
97 |
+
"gae_lambda": 0.9,
|
98 |
+
"ent_coef": 0.008508727919228772,
|
99 |
+
"vf_coef": 0.489343896591493,
|
100 |
+
"max_grad_norm": 0.8,
|
101 |
+
"batch_size": 256,
|
102 |
+
"n_epochs": 10,
|
103 |
+
"clip_range": {
|
104 |
+
":type:": "<class 'function'>",
|
105 |
+
":serialized:": "gAWVmAIAAAAAAACMF2Nsb3VkcGlja2xlLmNsb3VkcGlja2xllIwNX2J1aWx0aW5fdHlwZZSTlIwKTGFtYmRhVHlwZZSFlFKUKGgCjAhDb2RlVHlwZZSFlFKUKEsBSwBLAEsBSwFLE0MEiABTAJROhZQpjAFflIWUjGgvbmFzL3VjYi9tYXhpbWlsaWFuL3JsLWJhc2VsaW5lczMtem9vL3ZlbnYvbGliL3B5dGhvbjMuOC9zaXRlLXBhY2thZ2VzL3N0YWJsZV9iYXNlbGluZXMzL2NvbW1vbi91dGlscy5weZSMBGZ1bmOUS4BDAgABlIwDdmFslIWUKXSUUpR9lCiMC19fcGFja2FnZV9flIwYc3RhYmxlX2Jhc2VsaW5lczMuY29tbW9ulIwIX19uYW1lX1+UjB5zdGFibGVfYmFzZWxpbmVzMy5jb21tb24udXRpbHOUjAhfX2ZpbGVfX5RoDXVOTmgAjBBfbWFrZV9lbXB0eV9jZWxslJOUKVKUhZR0lFKUjBxjbG91ZHBpY2tsZS5jbG91ZHBpY2tsZV9mYXN0lIwSX2Z1bmN0aW9uX3NldHN0YXRllJOUaB99lH2UKGgXaA6MDF9fcXVhbG5hbWVfX5SMGWNvbnN0YW50X2ZuLjxsb2NhbHM+LmZ1bmOUjA9fX2Fubm90YXRpb25zX1+UfZSMDl9fa3dkZWZhdWx0c19flE6MDF9fZGVmYXVsdHNfX5ROjApfX21vZHVsZV9flGgYjAdfX2RvY19flE6MC19fY2xvc3VyZV9flGgAjApfbWFrZV9jZWxslJOURz/ZmZmZmZmahZRSlIWUjBdfY2xvdWRwaWNrbGVfc3VibW9kdWxlc5RdlIwLX19nbG9iYWxzX1+UfZR1hpSGUjAu"
|
106 |
+
},
|
107 |
+
"clip_range_vf": null,
|
108 |
+
"target_kl": null,
|
109 |
+
"normalize_advantage": true
|
110 |
+
}
|
ppo-seals-CartPole-v0/policy.optimizer.pth
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:7d017cd4add2514e12384da546ec6ed5303da8dd59711d3d8fc5c2b28a4575c3
|
3 |
+
size 79453
|
ppo-seals-CartPole-v0/policy.pth
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:8b7f8bd78b461cde84c74f83d80b296a12c5a9206435029ce843acec812a023f
|
3 |
+
size 40513
|
ppo-seals-CartPole-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
|
ppo-seals-CartPole-v0/system_info.txt
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
OS: Linux-5.4.0-109-generic-x86_64-with-glibc2.29 #123-Ubuntu SMP Fri Apr 8 09:10:54 UTC 2022
|
2 |
+
Python: 3.8.10
|
3 |
+
Stable-Baselines3: 1.4.1a0
|
4 |
+
PyTorch: 1.11.0+cu102
|
5 |
+
GPU Enabled: False
|
6 |
+
Numpy: 1.22.3
|
7 |
+
Gym: 0.21.0
|
replay.mp4
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:1c1428837404497e463bb6328186283ec09068bce8601f5d59ca3f46bbde225b
|
3 |
+
size 55885
|
results.json
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
{"mean_reward": 500.0, "std_reward": 0.0, "is_deterministic": true, "n_eval_episodes": 10, "eval_datetime": "2022-06-28T14:06:50.696510"}
|
train_eval_metrics.zip
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:23e9479340a3b7324125e6ab6b6e913dcd48421d53b468708ab3fbcf8c814931
|
3 |
+
size 6634
|