Initial commit
Browse files- README.md +54 -7
- args.yml +1 -1
- dqn-LunarLander-v2.zip +2 -2
- dqn-LunarLander-v2/data +61 -56
- dqn-LunarLander-v2/policy.optimizer.pth +2 -2
- dqn-LunarLander-v2/policy.pth +2 -2
- dqn-LunarLander-v2/system_info.txt +3 -3
- replay.mp4 +2 -2
- results.json +1 -1
- train_eval_metrics.zip +2 -2
README.md
CHANGED
@@ -16,22 +16,69 @@ model-index:
|
|
16 |
type: LunarLander-v2
|
17 |
metrics:
|
18 |
- type: mean_reward
|
19 |
-
value:
|
20 |
name: mean_reward
|
21 |
verified: false
|
22 |
---
|
23 |
|
24 |
# **DQN** Agent playing **LunarLander-v2**
|
25 |
This is a trained model of a **DQN** agent playing **LunarLander-v2**
|
26 |
-
using the [stable-baselines3 library](https://github.com/DLR-RM/stable-baselines3)
|
|
|
27 |
|
28 |
-
|
29 |
-
|
|
|
30 |
|
|
|
31 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
32 |
```python
|
33 |
-
|
34 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
35 |
|
36 |
-
|
|
|
|
|
37 |
```
|
|
|
16 |
type: LunarLander-v2
|
17 |
metrics:
|
18 |
- type: mean_reward
|
19 |
+
value: -188.60 +/- 65.20
|
20 |
name: mean_reward
|
21 |
verified: false
|
22 |
---
|
23 |
|
24 |
# **DQN** Agent playing **LunarLander-v2**
|
25 |
This is a trained model of a **DQN** agent playing **LunarLander-v2**
|
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 dqn --env LunarLander-v2 -orga nsanghi -f logs/
|
47 |
+
python -m rl_zoo3.enjoy --algo dqn --env LunarLander-v2 -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 dqn --env LunarLander-v2 -orga nsanghi -f logs/
|
53 |
+
python -m rl_zoo3.enjoy --algo dqn --env LunarLander-v2 -f logs/
|
54 |
+
```
|
55 |
+
|
56 |
+
## Training (with the RL Zoo)
|
57 |
+
```
|
58 |
+
python -m rl_zoo3.train --algo dqn --env LunarLander-v2 -f logs/
|
59 |
+
# Upload the model and generate video (when possible)
|
60 |
+
python -m rl_zoo3.push_to_hub --algo dqn --env LunarLander-v2 -f logs/ -orga nsanghi
|
61 |
+
```
|
62 |
+
|
63 |
+
## Hyperparameters
|
64 |
```python
|
65 |
+
OrderedDict([('batch_size', 128),
|
66 |
+
('buffer_size', 50000),
|
67 |
+
('exploration_final_eps', 0.1),
|
68 |
+
('exploration_fraction', 0.12),
|
69 |
+
('gamma', 0.99),
|
70 |
+
('gradient_steps', -1),
|
71 |
+
('learning_rate', 0.00063),
|
72 |
+
('learning_starts', 0),
|
73 |
+
('n_timesteps', 100000.0),
|
74 |
+
('policy', 'MlpPolicy'),
|
75 |
+
('policy_kwargs', 'dict(net_arch=[256, 256])'),
|
76 |
+
('target_update_interval', 250),
|
77 |
+
('train_freq', 4),
|
78 |
+
('normalize', False)])
|
79 |
+
```
|
80 |
|
81 |
+
# Environment Arguments
|
82 |
+
```python
|
83 |
+
{'render_mode': 'rgb_array'}
|
84 |
```
|
args.yml
CHANGED
@@ -54,7 +54,7 @@
|
|
54 |
- - save_replay_buffer
|
55 |
- false
|
56 |
- - seed
|
57 |
-
-
|
58 |
- - storage
|
59 |
- null
|
60 |
- - study_name
|
|
|
54 |
- - save_replay_buffer
|
55 |
- false
|
56 |
- - seed
|
57 |
+
- 43775958
|
58 |
- - storage
|
59 |
- null
|
60 |
- - study_name
|
dqn-LunarLander-v2.zip
CHANGED
@@ -1,3 +1,3 @@
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:
|
3 |
-
size
|
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:5434239906637146bfba1c0afb18b5d53a3d9ca0fbbc0a45938785806f1371e2
|
3 |
+
size 1133414
|
dqn-LunarLander-v2/data
CHANGED
@@ -5,85 +5,57 @@
|
|
5 |
"__module__": "stable_baselines3.dqn.policies",
|
6 |
"__annotations__": "{'q_net': <class 'stable_baselines3.dqn.policies.QNetwork'>, 'q_net_target': <class 'stable_baselines3.dqn.policies.QNetwork'>}",
|
7 |
"__doc__": "\n Policy class with Q-Value Net and target net for DQN\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 ",
|
8 |
-
"__init__": "<function DQNPolicy.__init__ at
|
9 |
-
"_build": "<function DQNPolicy._build at
|
10 |
-
"make_q_net": "<function DQNPolicy.make_q_net at
|
11 |
-
"forward": "<function DQNPolicy.forward at
|
12 |
-
"_predict": "<function DQNPolicy._predict at
|
13 |
-
"_get_constructor_parameters": "<function DQNPolicy._get_constructor_parameters at
|
14 |
-
"set_training_mode": "<function DQNPolicy.set_training_mode at
|
15 |
"__abstractmethods__": "frozenset()",
|
16 |
-
"_abc_impl": "<_abc._abc_data object at
|
17 |
},
|
18 |
"verbose": 1,
|
19 |
-
"policy_kwargs": {
|
|
|
|
|
|
|
|
|
|
|
20 |
"num_timesteps": 100000,
|
21 |
"_total_timesteps": 100000,
|
22 |
"_num_timesteps_at_start": 0,
|
23 |
-
"seed":
|
24 |
"action_noise": null,
|
25 |
-
"start_time":
|
26 |
-
"learning_rate":
|
27 |
-
|
28 |
-
|
29 |
-
":type:": "<class 'numpy.ndarray'>",
|
30 |
-
":serialized:": "gAWVlQAAAAAAAACMEm51bXB5LmNvcmUubnVtZXJpY5SMC19mcm9tYnVmZmVylJOUKJYgAAAAAAAAADPmhL36pw4+gBLTu/CPlb1JVMy8dA2ZOwAAAAAAAAAAlIwFbnVtcHmUjAVkdHlwZZSTlIwCZjSUiYiHlFKUKEsDjAE8lE5OTkr/////Sv////9LAHSUYksBSwiGlIwBQ5R0lFKULg=="
|
31 |
},
|
|
|
|
|
32 |
"_last_episode_starts": {
|
33 |
":type:": "<class 'numpy.ndarray'>",
|
34 |
":serialized:": "gAWVdAAAAAAAAACMEm51bXB5LmNvcmUubnVtZXJpY5SMC19mcm9tYnVmZmVylJOUKJYBAAAAAAAAAAGUjAVudW1weZSMBWR0eXBllJOUjAJiMZSJiIeUUpQoSwOMAXyUTk5OSv////9K/////0sAdJRiSwGFlIwBQ5R0lFKULg=="
|
35 |
},
|
36 |
"_last_original_obs": {
|
37 |
":type:": "<class 'numpy.ndarray'>",
|
38 |
-
":serialized:": "
|
39 |
},
|
40 |
-
"_episode_num":
|
41 |
"use_sde": false,
|
42 |
"sde_sample_freq": -1,
|
43 |
"_current_progress_remaining": 0.0,
|
44 |
"_stats_window_size": 100,
|
45 |
"ep_info_buffer": {
|
46 |
":type:": "<class 'collections.deque'>",
|
47 |
-
":serialized:": "
|
48 |
},
|
49 |
"ep_success_buffer": {
|
50 |
":type:": "<class 'collections.deque'>",
|
51 |
":serialized:": "gAWVIAAAAAAAAACMC2NvbGxlY3Rpb25zlIwFZGVxdWWUk5QpS2SGlFKULg=="
|
52 |
},
|
53 |
-
"_n_updates":
|
54 |
-
"buffer_size": 1000000,
|
55 |
-
"batch_size": 32,
|
56 |
-
"learning_starts": 50000,
|
57 |
-
"tau": 1.0,
|
58 |
-
"gamma": 0.99,
|
59 |
-
"gradient_steps": 1,
|
60 |
-
"optimize_memory_usage": false,
|
61 |
-
"replay_buffer_class": {
|
62 |
-
":type:": "<class 'abc.ABCMeta'>",
|
63 |
-
":serialized:": "gAWVNQAAAAAAAACMIHN0YWJsZV9iYXNlbGluZXMzLmNvbW1vbi5idWZmZXJzlIwMUmVwbGF5QnVmZmVylJOULg==",
|
64 |
-
"__module__": "stable_baselines3.common.buffers",
|
65 |
-
"__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 ",
|
66 |
-
"__init__": "<function ReplayBuffer.__init__ at 0x7f7bc16db0d0>",
|
67 |
-
"add": "<function ReplayBuffer.add at 0x7f7bc16db160>",
|
68 |
-
"sample": "<function ReplayBuffer.sample at 0x7f7bc16db1f0>",
|
69 |
-
"_get_samples": "<function ReplayBuffer._get_samples at 0x7f7bc16db280>",
|
70 |
-
"_maybe_cast_dtype": "<staticmethod object at 0x7f7bc16d2640>",
|
71 |
-
"__abstractmethods__": "frozenset()",
|
72 |
-
"_abc_impl": "<_abc._abc_data object at 0x7f7bc16d6dc0>"
|
73 |
-
},
|
74 |
-
"replay_buffer_kwargs": {},
|
75 |
-
"train_freq": {
|
76 |
-
":type:": "<class 'stable_baselines3.common.type_aliases.TrainFreq'>",
|
77 |
-
":serialized:": "gAWVYQAAAAAAAACMJXN0YWJsZV9iYXNlbGluZXMzLmNvbW1vbi50eXBlX2FsaWFzZXOUjAlUcmFpbkZyZXGUk5RLBGgAjBJUcmFpbkZyZXF1ZW5jeVVuaXSUk5SMBHN0ZXCUhZRSlIaUgZQu"
|
78 |
-
},
|
79 |
-
"use_sde_at_warmup": false,
|
80 |
-
"exploration_initial_eps": 1.0,
|
81 |
-
"exploration_final_eps": 0.1,
|
82 |
-
"exploration_fraction": 0.1,
|
83 |
-
"target_update_interval": 250,
|
84 |
-
"_n_calls": 100000,
|
85 |
-
"max_grad_norm": 10,
|
86 |
-
"exploration_rate": 0.1,
|
87 |
"observation_space": {
|
88 |
":type:": "<class 'gymnasium.spaces.box.Box'>",
|
89 |
":serialized:": "gAWVZgIAAAAAAACMFGd5bW5hc2l1bS5zcGFjZXMuYm94lIwDQm94lJOUKYGUfZQojAVkdHlwZZSMBW51bXB5lIwFZHR5cGWUk5SMAmY0lImIh5RSlChLA4wBPJROTk5K/////0r/////SwB0lGKMDWJvdW5kZWRfYmVsb3eUjBJudW1weS5jb3JlLm51bWVyaWOUjAtfZnJvbWJ1ZmZlcpSTlCiWCAAAAAAAAAABAQEBAQEBAZRoCIwCYjGUiYiHlFKUKEsDjAF8lE5OTkr/////Sv////9LAHSUYksIhZSMAUOUdJRSlIwNYm91bmRlZF9hYm92ZZRoESiWCAAAAAAAAAABAQEBAQEBAZRoFUsIhZRoGXSUUpSMBl9zaGFwZZRLCIWUjANsb3eUaBEoliAAAAAAAAAAAADAvwAAwL8AAKDAAACgwNsPScAAAKDAAAAAgAAAAICUaAtLCIWUaBl0lFKUjARoaWdolGgRKJYgAAAAAAAAAAAAwD8AAMA/AACgQAAAoEDbD0lAAACgQAAAgD8AAIA/lGgLSwiFlGgZdJRSlIwIbG93X3JlcHKUjFNbLTEuNSAgICAgICAtMS41ICAgICAgIC01LiAgICAgICAgLTUuICAgICAgICAtMy4xNDE1OTI3IC01LgogLTAuICAgICAgICAtMC4gICAgICAgXZSMCWhpZ2hfcmVwcpSMS1sxLjUgICAgICAgMS41ICAgICAgIDUuICAgICAgICA1LiAgICAgICAgMy4xNDE1OTI3IDUuICAgICAgICAxLgogMS4gICAgICAgXZSMCl9ucF9yYW5kb22UTnViLg==",
|
@@ -101,7 +73,7 @@
|
|
101 |
},
|
102 |
"action_space": {
|
103 |
":type:": "<class 'gymnasium.spaces.discrete.Discrete'>",
|
104 |
-
":serialized:": "
|
105 |
"n": "4",
|
106 |
"start": "0",
|
107 |
"_shape": [],
|
@@ -109,14 +81,47 @@
|
|
109 |
"_np_random": "Generator(PCG64)"
|
110 |
},
|
111 |
"n_envs": 1,
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
112 |
"lr_schedule": {
|
113 |
":type:": "<class 'function'>",
|
114 |
-
":serialized:": "
|
115 |
},
|
116 |
"batch_norm_stats": [],
|
117 |
"batch_norm_stats_target": [],
|
118 |
"exploration_schedule": {
|
119 |
":type:": "<class 'function'>",
|
120 |
-
":serialized:": "
|
121 |
}
|
122 |
}
|
|
|
5 |
"__module__": "stable_baselines3.dqn.policies",
|
6 |
"__annotations__": "{'q_net': <class 'stable_baselines3.dqn.policies.QNetwork'>, 'q_net_target': <class 'stable_baselines3.dqn.policies.QNetwork'>}",
|
7 |
"__doc__": "\n Policy class with Q-Value Net and target net for DQN\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 ",
|
8 |
+
"__init__": "<function DQNPolicy.__init__ at 0x7efe1aa00550>",
|
9 |
+
"_build": "<function DQNPolicy._build at 0x7efe1aa005e0>",
|
10 |
+
"make_q_net": "<function DQNPolicy.make_q_net at 0x7efe1aa00670>",
|
11 |
+
"forward": "<function DQNPolicy.forward at 0x7efe1aa00700>",
|
12 |
+
"_predict": "<function DQNPolicy._predict at 0x7efe1aa00790>",
|
13 |
+
"_get_constructor_parameters": "<function DQNPolicy._get_constructor_parameters at 0x7efe1aa00820>",
|
14 |
+
"set_training_mode": "<function DQNPolicy.set_training_mode at 0x7efe1aa008b0>",
|
15 |
"__abstractmethods__": "frozenset()",
|
16 |
+
"_abc_impl": "<_abc._abc_data object at 0x7efe1aa03940>"
|
17 |
},
|
18 |
"verbose": 1,
|
19 |
+
"policy_kwargs": {
|
20 |
+
"net_arch": [
|
21 |
+
256,
|
22 |
+
256
|
23 |
+
]
|
24 |
+
},
|
25 |
"num_timesteps": 100000,
|
26 |
"_total_timesteps": 100000,
|
27 |
"_num_timesteps_at_start": 0,
|
28 |
+
"seed": 0,
|
29 |
"action_noise": null,
|
30 |
+
"start_time": 1721095875529543112,
|
31 |
+
"learning_rate": {
|
32 |
+
":type:": "<class 'function'>",
|
33 |
+
":serialized:": "gAWV6AIAAAAAAACMF2Nsb3VkcGlja2xlLmNsb3VkcGlja2xllIwOX21ha2VfZnVuY3Rpb26Uk5QoaACMDV9idWlsdGluX3R5cGWUk5SMCENvZGVUeXBllIWUUpQoSwFLAEsASwFLAUsTQwSIAFMAlE6FlCmMAV+UhZSMaS9ob21lL25zYW5naGkvc2FuZGJveC9hcHJlc3MvZHJsLTJlZC92ZW52MzkvbGliL3B5dGhvbjMuOS9zaXRlLXBhY2thZ2VzL3N0YWJsZV9iYXNlbGluZXMzL2NvbW1vbi91dGlscy5weZSMBGZ1bmOUS4NDAgABlIwDdmFslIWUKXSUUpR9lCiMC19fcGFja2FnZV9flIwYc3RhYmxlX2Jhc2VsaW5lczMuY29tbW9ulIwIX19uYW1lX1+UjB5zdGFibGVfYmFzZWxpbmVzMy5jb21tb24udXRpbHOUjAhfX2ZpbGVfX5SMaS9ob21lL25zYW5naGkvc2FuZGJveC9hcHJlc3MvZHJsLTJlZC92ZW52MzkvbGliL3B5dGhvbjMuOS9zaXRlLXBhY2thZ2VzL3N0YWJsZV9iYXNlbGluZXMzL2NvbW1vbi91dGlscy5weZR1Tk5oAIwQX21ha2VfZW1wdHlfY2VsbJSTlClSlIWUdJRSlGgAjBJfZnVuY3Rpb25fc2V0c3RhdGWUk5RoH32UfZQoaBZoDYwMX19xdWFsbmFtZV9flIwZY29uc3RhbnRfZm4uPGxvY2Fscz4uZnVuY5SMD19fYW5ub3RhdGlvbnNfX5R9lIwOX19rd2RlZmF1bHRzX1+UTowMX19kZWZhdWx0c19flE6MCl9fbW9kdWxlX1+UaBeMB19fZG9jX1+UTowLX19jbG9zdXJlX1+UaACMCl9tYWtlX2NlbGyUk5RHP0Sk0rK/202FlFKUhZSMF19jbG91ZHBpY2tsZV9zdWJtb2R1bGVzlF2UjAtfX2dsb2JhbHNfX5R9lHWGlIZSMC4="
|
|
|
|
|
34 |
},
|
35 |
+
"tensorboard_log": null,
|
36 |
+
"_last_obs": null,
|
37 |
"_last_episode_starts": {
|
38 |
":type:": "<class 'numpy.ndarray'>",
|
39 |
":serialized:": "gAWVdAAAAAAAAACMEm51bXB5LmNvcmUubnVtZXJpY5SMC19mcm9tYnVmZmVylJOUKJYBAAAAAAAAAAGUjAVudW1weZSMBWR0eXBllJOUjAJiMZSJiIeUUpQoSwOMAXyUTk5OSv////9K/////0sAdJRiSwGFlIwBQ5R0lFKULg=="
|
40 |
},
|
41 |
"_last_original_obs": {
|
42 |
":type:": "<class 'numpy.ndarray'>",
|
43 |
+
":serialized:": "gAWVlQAAAAAAAACMEm51bXB5LmNvcmUubnVtZXJpY5SMC19mcm9tYnVmZmVylJOUKJYgAAAAAAAAAJCTGD//Mks/mHZvP35yMz3kYQe8v5KSPQAAAAAAAAAAlIwFbnVtcHmUjAVkdHlwZZSTlIwCZjSUiYiHlFKUKEsDjAE8lE5OTkr/////Sv////9LAHSUYksBSwiGlIwBQ5R0lFKULg=="
|
44 |
},
|
45 |
+
"_episode_num": 537,
|
46 |
"use_sde": false,
|
47 |
"sde_sample_freq": -1,
|
48 |
"_current_progress_remaining": 0.0,
|
49 |
"_stats_window_size": 100,
|
50 |
"ep_info_buffer": {
|
51 |
":type:": "<class 'collections.deque'>",
|
52 |
+
":serialized:": "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"
|
53 |
},
|
54 |
"ep_success_buffer": {
|
55 |
":type:": "<class 'collections.deque'>",
|
56 |
":serialized:": "gAWVIAAAAAAAAACMC2NvbGxlY3Rpb25zlIwFZGVxdWWUk5QpS2SGlFKULg=="
|
57 |
},
|
58 |
+
"_n_updates": 100000,
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
59 |
"observation_space": {
|
60 |
":type:": "<class 'gymnasium.spaces.box.Box'>",
|
61 |
":serialized:": "gAWVZgIAAAAAAACMFGd5bW5hc2l1bS5zcGFjZXMuYm94lIwDQm94lJOUKYGUfZQojAVkdHlwZZSMBW51bXB5lIwFZHR5cGWUk5SMAmY0lImIh5RSlChLA4wBPJROTk5K/////0r/////SwB0lGKMDWJvdW5kZWRfYmVsb3eUjBJudW1weS5jb3JlLm51bWVyaWOUjAtfZnJvbWJ1ZmZlcpSTlCiWCAAAAAAAAAABAQEBAQEBAZRoCIwCYjGUiYiHlFKUKEsDjAF8lE5OTkr/////Sv////9LAHSUYksIhZSMAUOUdJRSlIwNYm91bmRlZF9hYm92ZZRoESiWCAAAAAAAAAABAQEBAQEBAZRoFUsIhZRoGXSUUpSMBl9zaGFwZZRLCIWUjANsb3eUaBEoliAAAAAAAAAAAADAvwAAwL8AAKDAAACgwNsPScAAAKDAAAAAgAAAAICUaAtLCIWUaBl0lFKUjARoaWdolGgRKJYgAAAAAAAAAAAAwD8AAMA/AACgQAAAoEDbD0lAAACgQAAAgD8AAIA/lGgLSwiFlGgZdJRSlIwIbG93X3JlcHKUjFNbLTEuNSAgICAgICAtMS41ICAgICAgIC01LiAgICAgICAgLTUuICAgICAgICAtMy4xNDE1OTI3IC01LgogLTAuICAgICAgICAtMC4gICAgICAgXZSMCWhpZ2hfcmVwcpSMS1sxLjUgICAgICAgMS41ICAgICAgIDUuICAgICAgICA1LiAgICAgICAgMy4xNDE1OTI3IDUuICAgICAgICAxLgogMS4gICAgICAgXZSMCl9ucF9yYW5kb22UTnViLg==",
|
|
|
73 |
},
|
74 |
"action_space": {
|
75 |
":type:": "<class 'gymnasium.spaces.discrete.Discrete'>",
|
76 |
+
":serialized:": "gAWVwAEAAAAAAACMGWd5bW5hc2l1bS5zcGFjZXMuZGlzY3JldGWUjAhEaXNjcmV0ZZSTlCmBlH2UKIwBbpSMFW51bXB5LmNvcmUubXVsdGlhcnJheZSMBnNjYWxhcpSTlIwFbnVtcHmUjAVkdHlwZZSTlIwCaTiUiYiHlFKUKEsDjAE8lE5OTkr/////Sv////9LAHSUYkMIBAAAAAAAAACUhpRSlIwFc3RhcnSUaAhoDkMIAAAAAAAAAACUhpRSlIwGX3NoYXBllCmMBWR0eXBllGgLjAJpOJSJiIeUUpQoSwNoD05OTkr/////Sv////9LAHSUYowKX25wX3JhbmRvbZSMFG51bXB5LnJhbmRvbS5fcGlja2xllIwQX19nZW5lcmF0b3JfY3RvcpSTlIwFUENHNjSUaB+MFF9fYml0X2dlbmVyYXRvcl9jdG9ylJOUhpRSlH2UKIwNYml0X2dlbmVyYXRvcpSMBVBDRzY0lIwFc3RhdGWUfZQoaCqKEONhlaa3XlgJLUWWWTS1oRqMA2luY5SKEKlzeES8M4FYghr3OtvajUF1jApoYXNfdWludDMylEsAjAh1aW50ZWdlcpRLAHVidWIu",
|
77 |
"n": "4",
|
78 |
"start": "0",
|
79 |
"_shape": [],
|
|
|
81 |
"_np_random": "Generator(PCG64)"
|
82 |
},
|
83 |
"n_envs": 1,
|
84 |
+
"buffer_size": 1,
|
85 |
+
"batch_size": 128,
|
86 |
+
"learning_starts": 0,
|
87 |
+
"tau": 1.0,
|
88 |
+
"gamma": 0.99,
|
89 |
+
"gradient_steps": -1,
|
90 |
+
"optimize_memory_usage": false,
|
91 |
+
"replay_buffer_class": {
|
92 |
+
":type:": "<class 'abc.ABCMeta'>",
|
93 |
+
":serialized:": "gAWVNQAAAAAAAACMIHN0YWJsZV9iYXNlbGluZXMzLmNvbW1vbi5idWZmZXJzlIwMUmVwbGF5QnVmZmVylJOULg==",
|
94 |
+
"__module__": "stable_baselines3.common.buffers",
|
95 |
+
"__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 ",
|
96 |
+
"__init__": "<function ReplayBuffer.__init__ at 0x7efe1aa74b80>",
|
97 |
+
"add": "<function ReplayBuffer.add at 0x7efe1aa74c10>",
|
98 |
+
"sample": "<function ReplayBuffer.sample at 0x7efe1aa74ca0>",
|
99 |
+
"_get_samples": "<function ReplayBuffer._get_samples at 0x7efe1aa74d30>",
|
100 |
+
"_maybe_cast_dtype": "<staticmethod object at 0x7efe1aaf0e20>",
|
101 |
+
"__abstractmethods__": "frozenset()",
|
102 |
+
"_abc_impl": "<_abc._abc_data object at 0x7efe1aa6c600>"
|
103 |
+
},
|
104 |
+
"replay_buffer_kwargs": {},
|
105 |
+
"train_freq": {
|
106 |
+
":type:": "<class 'stable_baselines3.common.type_aliases.TrainFreq'>",
|
107 |
+
":serialized:": "gAWVYQAAAAAAAACMJXN0YWJsZV9iYXNlbGluZXMzLmNvbW1vbi50eXBlX2FsaWFzZXOUjAlUcmFpbkZyZXGUk5RLBGgAjBJUcmFpbkZyZXF1ZW5jeVVuaXSUk5SMBHN0ZXCUhZRSlIaUgZQu"
|
108 |
+
},
|
109 |
+
"use_sde_at_warmup": false,
|
110 |
+
"exploration_initial_eps": 1.0,
|
111 |
+
"exploration_final_eps": 0.1,
|
112 |
+
"exploration_fraction": 0.12,
|
113 |
+
"target_update_interval": 250,
|
114 |
+
"_n_calls": 100000,
|
115 |
+
"max_grad_norm": 10,
|
116 |
+
"exploration_rate": 0.1,
|
117 |
"lr_schedule": {
|
118 |
":type:": "<class 'function'>",
|
119 |
+
":serialized:": "gAWV6AIAAAAAAACMF2Nsb3VkcGlja2xlLmNsb3VkcGlja2xllIwOX21ha2VfZnVuY3Rpb26Uk5QoaACMDV9idWlsdGluX3R5cGWUk5SMCENvZGVUeXBllIWUUpQoSwFLAEsASwFLAUsTQwSIAFMAlE6FlCmMAV+UhZSMaS9ob21lL25zYW5naGkvc2FuZGJveC9hcHJlc3MvZHJsLTJlZC92ZW52MzkvbGliL3B5dGhvbjMuOS9zaXRlLXBhY2thZ2VzL3N0YWJsZV9iYXNlbGluZXMzL2NvbW1vbi91dGlscy5weZSMBGZ1bmOUS4NDAgABlIwDdmFslIWUKXSUUpR9lCiMC19fcGFja2FnZV9flIwYc3RhYmxlX2Jhc2VsaW5lczMuY29tbW9ulIwIX19uYW1lX1+UjB5zdGFibGVfYmFzZWxpbmVzMy5jb21tb24udXRpbHOUjAhfX2ZpbGVfX5SMaS9ob21lL25zYW5naGkvc2FuZGJveC9hcHJlc3MvZHJsLTJlZC92ZW52MzkvbGliL3B5dGhvbjMuOS9zaXRlLXBhY2thZ2VzL3N0YWJsZV9iYXNlbGluZXMzL2NvbW1vbi91dGlscy5weZR1Tk5oAIwQX21ha2VfZW1wdHlfY2VsbJSTlClSlIWUdJRSlGgAjBJfZnVuY3Rpb25fc2V0c3RhdGWUk5RoH32UfZQoaBZoDYwMX19xdWFsbmFtZV9flIwZY29uc3RhbnRfZm4uPGxvY2Fscz4uZnVuY5SMD19fYW5ub3RhdGlvbnNfX5R9lIwOX19rd2RlZmF1bHRzX1+UTowMX19kZWZhdWx0c19flE6MCl9fbW9kdWxlX1+UaBeMB19fZG9jX1+UTowLX19jbG9zdXJlX1+UaACMCl9tYWtlX2NlbGyUk5RHP0Sk0rK/202FlFKUhZSMF19jbG91ZHBpY2tsZV9zdWJtb2R1bGVzlF2UjAtfX2dsb2JhbHNfX5R9lHWGlIZSMC4="
|
120 |
},
|
121 |
"batch_norm_stats": [],
|
122 |
"batch_norm_stats_target": [],
|
123 |
"exploration_schedule": {
|
124 |
":type:": "<class 'function'>",
|
125 |
+
":serialized:": "gAWVjAMAAAAAAACMF2Nsb3VkcGlja2xlLmNsb3VkcGlja2xllIwOX21ha2VfZnVuY3Rpb26Uk5QoaACMDV9idWlsdGluX3R5cGWUk5SMCENvZGVUeXBllIWUUpQoSwFLAEsASwFLBEsTQyxkAXwAGACIAWsEchCIAFMAiAJkAXwAGACIAIgCGAAUAIgBGwAXAFMAZABTAJROSwGGlCmMEnByb2dyZXNzX3JlbWFpbmluZ5SFlIxpL2hvbWUvbnNhbmdoaS9zYW5kYm94L2FwcmVzcy9kcmwtMmVkL3ZlbnYzOS9saWIvcHl0aG9uMy45L3NpdGUtcGFja2FnZXMvc3RhYmxlX2Jhc2VsaW5lczMvY29tbW9uL3V0aWxzLnB5lIwEZnVuY5RLcUMGAAEMAQQClIwDZW5klIwMZW5kX2ZyYWN0aW9ulIwFc3RhcnSUh5QpdJRSlH2UKIwLX19wYWNrYWdlX1+UjBhzdGFibGVfYmFzZWxpbmVzMy5jb21tb26UjAhfX25hbWVfX5SMHnN0YWJsZV9iYXNlbGluZXMzLmNvbW1vbi51dGlsc5SMCF9fZmlsZV9flIxpL2hvbWUvbnNhbmdoaS9zYW5kYm94L2FwcmVzcy9kcmwtMmVkL3ZlbnYzOS9saWIvcHl0aG9uMy45L3NpdGUtcGFja2FnZXMvc3RhYmxlX2Jhc2VsaW5lczMvY29tbW9uL3V0aWxzLnB5lHVOTmgAjBBfbWFrZV9lbXB0eV9jZWxslJOUKVKUaB0pUpRoHSlSlIeUdJRSlGgAjBJfZnVuY3Rpb25fc2V0c3RhdGWUk5RoI32UfZQoaBhoDYwMX19xdWFsbmFtZV9flIwbZ2V0X2xpbmVhcl9mbi48bG9jYWxzPi5mdW5jlIwPX19hbm5vdGF0aW9uc19flH2UKGgKjAhidWlsdGluc5SMBWZsb2F0lJOUjAZyZXR1cm6UaC51jA5fX2t3ZGVmYXVsdHNfX5ROjAxfX2RlZmF1bHRzX1+UTowKX19tb2R1bGVfX5RoGYwHX19kb2NfX5ROjAtfX2Nsb3N1cmVfX5RoAIwKX21ha2VfY2VsbJSTlEc/uZmZmZmZmoWUUpRoNkc/vrhR64UeuIWUUpRoNkc/8AAAAAAAAIWUUpSHlIwXX2Nsb3VkcGlja2xlX3N1Ym1vZHVsZXOUXZSMC19fZ2xvYmFsc19flH2UdYaUhlIwLg=="
|
126 |
}
|
127 |
}
|
dqn-LunarLander-v2/policy.optimizer.pth
CHANGED
@@ -1,3 +1,3 @@
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:
|
3 |
-
size
|
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:ee2e6269ef9c7cfa6c136dbd258ba2df2419a58f5c1d509b1cdb48df0358a349
|
3 |
+
size 558240
|
dqn-LunarLander-v2/policy.pth
CHANGED
@@ -1,3 +1,3 @@
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:
|
3 |
-
size
|
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:fc892f6197d1f4ebf2172c915d517fe1b2f3dedffb4b2b19e57429fa1bd757c6
|
3 |
+
size 557362
|
dqn-LunarLander-v2/system_info.txt
CHANGED
@@ -1,9 +1,9 @@
|
|
1 |
-
- OS: Linux-
|
2 |
- Python: 3.9.18
|
3 |
- Stable-Baselines3: 2.1.0
|
4 |
-
- PyTorch: 2.
|
5 |
- GPU Enabled: False
|
6 |
-
- Numpy: 1.26.
|
7 |
- Cloudpickle: 3.0.0
|
8 |
- Gymnasium: 0.29.1
|
9 |
- OpenAI Gym: 0.26.2
|
|
|
1 |
+
- OS: Linux-5.15.153.1-microsoft-standard-WSL2-x86_64-with-glibc2.35 # 1 SMP Fri Mar 29 23:14:13 UTC 2024
|
2 |
- Python: 3.9.18
|
3 |
- Stable-Baselines3: 2.1.0
|
4 |
+
- PyTorch: 2.1.0+cpu
|
5 |
- GPU Enabled: False
|
6 |
+
- Numpy: 1.26.1
|
7 |
- Cloudpickle: 3.0.0
|
8 |
- Gymnasium: 0.29.1
|
9 |
- OpenAI Gym: 0.26.2
|
replay.mp4
CHANGED
@@ -1,3 +1,3 @@
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:
|
3 |
-
size
|
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:9c1cb0dc8a7fced2778790830ad58bdf1d508f20ee96b504718925f7f22c63f3
|
3 |
+
size 202327
|
results.json
CHANGED
@@ -1 +1 @@
|
|
1 |
-
{"mean_reward":
|
|
|
1 |
+
{"mean_reward": -188.60461700000002, "std_reward": 65.2025250694205, "is_deterministic": true, "n_eval_episodes": 10, "eval_datetime": "2024-07-16T07:48:19.238455"}
|
train_eval_metrics.zip
CHANGED
@@ -1,3 +1,3 @@
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:
|
3 |
-
size
|
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:37352ea717c96308c2cf3e0efee42b7e14e5456d4ec0aefffdb390a581aff955
|
3 |
+
size 15688
|