Quentin Gallouédec commited on
Commit
0e55c6c
1 Parent(s): d65c680

Initial commit

Browse files
.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,77 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ library_name: stable-baselines3
3
+ tags:
4
+ - Pendulum-v1
5
+ - deep-reinforcement-learning
6
+ - reinforcement-learning
7
+ - stable-baselines3
8
+ model-index:
9
+ - name: TD3
10
+ results:
11
+ - task:
12
+ type: reinforcement-learning
13
+ name: reinforcement-learning
14
+ dataset:
15
+ name: Pendulum-v1
16
+ type: Pendulum-v1
17
+ metrics:
18
+ - type: mean_reward
19
+ value: -178.65 +/- 102.84
20
+ name: mean_reward
21
+ verified: false
22
+ ---
23
+
24
+ # **TD3** Agent playing **Pendulum-v1**
25
+ This is a trained model of a **TD3** agent playing **Pendulum-v1**
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 td3 --env Pendulum-v1 -orga qgallouedec -f logs/
47
+ python -m rl_zoo3.enjoy --algo td3 --env Pendulum-v1 -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 td3 --env Pendulum-v1 -orga qgallouedec -f logs/
53
+ python -m rl_zoo3.enjoy --algo td3 --env Pendulum-v1 -f logs/
54
+ ```
55
+
56
+ ## Training (with the RL Zoo)
57
+ ```
58
+ python -m rl_zoo3.train --algo td3 --env Pendulum-v1 -f logs/
59
+ # Upload the model and generate video (when possible)
60
+ python -m rl_zoo3.push_to_hub --algo td3 --env Pendulum-v1 -f logs/ -orga qgallouedec
61
+ ```
62
+
63
+ ## Hyperparameters
64
+ ```python
65
+ OrderedDict([('buffer_size', 200000),
66
+ ('gamma', 0.98),
67
+ ('gradient_steps', -1),
68
+ ('learning_rate', 0.001),
69
+ ('learning_starts', 10000),
70
+ ('n_timesteps', 20000),
71
+ ('noise_std', 0.1),
72
+ ('noise_type', 'normal'),
73
+ ('policy', 'MlpPolicy'),
74
+ ('policy_kwargs', 'dict(net_arch=[400, 300])'),
75
+ ('train_freq', [1, 'episode']),
76
+ ('normalize', False)])
77
+ ```
args.yml ADDED
@@ -0,0 +1,79 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ !!python/object/apply:collections.OrderedDict
2
+ - - - algo
3
+ - td3
4
+ - - device
5
+ - auto
6
+ - - env
7
+ - Pendulum-v1
8
+ - - env_kwargs
9
+ - null
10
+ - - eval_episodes
11
+ - 20
12
+ - - eval_freq
13
+ - 25000
14
+ - - gym_packages
15
+ - []
16
+ - - hyperparams
17
+ - null
18
+ - - log_folder
19
+ - logs
20
+ - - log_interval
21
+ - -1
22
+ - - max_total_trials
23
+ - null
24
+ - - n_eval_envs
25
+ - 5
26
+ - - n_evaluations
27
+ - null
28
+ - - n_jobs
29
+ - 1
30
+ - - n_startup_trials
31
+ - 10
32
+ - - n_timesteps
33
+ - -1
34
+ - - n_trials
35
+ - 500
36
+ - - no_optim_plots
37
+ - false
38
+ - - num_threads
39
+ - -1
40
+ - - optimization_log_path
41
+ - null
42
+ - - optimize_hyperparameters
43
+ - false
44
+ - - progress
45
+ - false
46
+ - - pruner
47
+ - median
48
+ - - sampler
49
+ - tpe
50
+ - - save_freq
51
+ - -1
52
+ - - save_replay_buffer
53
+ - false
54
+ - - seed
55
+ - 3412888169
56
+ - - storage
57
+ - null
58
+ - - study_name
59
+ - null
60
+ - - tensorboard_log
61
+ - runs/Pendulum-v1__td3__3412888169__1670944265
62
+ - - track
63
+ - true
64
+ - - trained_agent
65
+ - ''
66
+ - - truncate_last_trajectory
67
+ - true
68
+ - - uuid
69
+ - false
70
+ - - vec_env
71
+ - dummy
72
+ - - verbose
73
+ - 1
74
+ - - wandb_entity
75
+ - openrlbenchmark
76
+ - - wandb_project_name
77
+ - sb3
78
+ - - yaml_file
79
+ - null
config.yml ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ !!python/object/apply:collections.OrderedDict
2
+ - - - buffer_size
3
+ - 200000
4
+ - - gamma
5
+ - 0.98
6
+ - - gradient_steps
7
+ - -1
8
+ - - learning_rate
9
+ - 0.001
10
+ - - learning_starts
11
+ - 10000
12
+ - - n_timesteps
13
+ - 20000
14
+ - - noise_std
15
+ - 0.1
16
+ - - noise_type
17
+ - normal
18
+ - - policy
19
+ - MlpPolicy
20
+ - - policy_kwargs
21
+ - dict(net_arch=[400, 300])
22
+ - - train_freq
23
+ - - 1
24
+ - episode
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:1aeecde7fcc620f9861cea89f5d3bceba18175efa0fb10afec71fdd83eb9d784
3
+ size 360484
results.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"mean_reward": -178.64543199999997, "std_reward": 102.84157528038997, "is_deterministic": true, "n_eval_episodes": 10, "eval_datetime": "2023-02-27T16:28:30.891997"}
td3-Pendulum-v1.zip ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:fdb320293fb6b6947129baf9fc08b4500bab17775bb1ddd8c703305d8036da4f
3
+ size 5925727
td3-Pendulum-v1/_stable_baselines3_version ADDED
@@ -0,0 +1 @@
 
 
1
+ 1.8.0a6
td3-Pendulum-v1/actor.optimizer.pth ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:238e6221c5f69ca9fee9e2d7321b311f8136bad5f6f42b1426032ecb13187c9d
3
+ size 982447
td3-Pendulum-v1/critic.optimizer.pth ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:dbd88a333b60ae872eebb3223752ee77e9d827162ec8c10c9ea6e98aa810cc83
3
+ size 1971001
td3-Pendulum-v1/data ADDED
@@ -0,0 +1,126 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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 0x7fdcda3ed940>",
8
+ "_build": "<function TD3Policy._build at 0x7fdcda3ed9d0>",
9
+ "_get_constructor_parameters": "<function TD3Policy._get_constructor_parameters at 0x7fdcda3eda60>",
10
+ "make_actor": "<function TD3Policy.make_actor at 0x7fdcda3edaf0>",
11
+ "make_critic": "<function TD3Policy.make_critic at 0x7fdcda3edb80>",
12
+ "forward": "<function TD3Policy.forward at 0x7fdcda3edc10>",
13
+ "_predict": "<function TD3Policy._predict at 0x7fdcda3edca0>",
14
+ "set_training_mode": "<function TD3Policy.set_training_mode at 0x7fdcda3edd30>",
15
+ "__abstractmethods__": "frozenset()",
16
+ "_abc_impl": "<_abc._abc_data object at 0x7fdcda3f1500>"
17
+ },
18
+ "verbose": 1,
19
+ "policy_kwargs": {
20
+ "net_arch": [
21
+ 400,
22
+ 300
23
+ ]
24
+ },
25
+ "observation_space": {
26
+ ":type:": "<class 'gym.spaces.box.Box'>",
27
+ ":serialized:": "gAWVbQEAAAAAAACMDmd5bS5zcGFjZXMuYm94lIwDQm94lJOUKYGUfZQojAVkdHlwZZSMBW51bXB5lGgFk5SMAmY0lImIh5RSlChLA4wBPJROTk5K/////0r/////SwB0lGKMBl9zaGFwZZRLA4WUjANsb3eUjBJudW1weS5jb3JlLm51bWVyaWOUjAtfZnJvbWJ1ZmZlcpSTlCiWDAAAAAAAAAAAAIC/AACAvwAAAMGUaApLA4WUjAFDlHSUUpSMBGhpZ2iUaBIolgwAAAAAAAAAAACAPwAAgD8AAABBlGgKSwOFlGgVdJRSlIwNYm91bmRlZF9iZWxvd5RoEiiWAwAAAAAAAAABAQGUaAeMAmIxlImIh5RSlChLA4wBfJROTk5K/////0r/////SwB0lGJLA4WUaBV0lFKUjA1ib3VuZGVkX2Fib3ZllGgSKJYDAAAAAAAAAAEBAZRoIUsDhZRoFXSUUpSMCl9ucF9yYW5kb22UTnViLg==",
28
+ "dtype": "float32",
29
+ "_shape": [
30
+ 3
31
+ ],
32
+ "low": "[-1. -1. -8.]",
33
+ "high": "[1. 1. 8.]",
34
+ "bounded_below": "[ True True True]",
35
+ "bounded_above": "[ True True True]",
36
+ "_np_random": null
37
+ },
38
+ "action_space": {
39
+ ":type:": "<class 'gym.spaces.box.Box'>",
40
+ ":serialized:": "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",
41
+ "dtype": "float32",
42
+ "_shape": [
43
+ 1
44
+ ],
45
+ "low": "[-2.]",
46
+ "high": "[2.]",
47
+ "bounded_below": "[ True]",
48
+ "bounded_above": "[ True]",
49
+ "_np_random": "RandomState(MT19937)"
50
+ },
51
+ "n_envs": 1,
52
+ "num_timesteps": 20000,
53
+ "_total_timesteps": 20000,
54
+ "_num_timesteps_at_start": 0,
55
+ "seed": 0,
56
+ "action_noise": {
57
+ ":type:": "<class 'stable_baselines3.common.noise.NormalActionNoise'>",
58
+ ":serialized:": "gAWV6gAAAAAAAACMHnN0YWJsZV9iYXNlbGluZXMzLmNvbW1vbi5ub2lzZZSMEU5vcm1hbEFjdGlvbk5vaXNllJOUKYGUfZQojANfbXWUjBJudW1weS5jb3JlLm51bWVyaWOUjAtfZnJvbWJ1ZmZlcpSTlCiWCAAAAAAAAAAAAAAAAAAAAJSMBW51bXB5lIwFZHR5cGWUk5SMAmY4lImIh5RSlChLA4wBPJROTk5K/////0r/////SwB0lGJLAYWUjAFDlHSUUpSMBl9zaWdtYZRoCCiWCAAAAAAAAACamZmZmZm5P5RoD0sBhZRoE3SUUpR1Yi4=",
59
+ "_mu": "[0.]",
60
+ "_sigma": "[0.1]"
61
+ },
62
+ "start_time": 1670944267449862132,
63
+ "learning_rate": {
64
+ ":type:": "<class 'function'>",
65
+ ":serialized:": "gAWV/QIAAAAAAACMF2Nsb3VkcGlja2xlLmNsb3VkcGlja2xllIwOX21ha2VfZnVuY3Rpb26Uk5QoaACMDV9idWlsdGluX3R5cGWUk5SMCENvZGVUeXBllIWUUpQoSwFLAEsASwFLAUsTQwSIAFMAlE6FlCmMAV+UhZSMZS9ob21lL3FnYWxsb3VlZGVjL3JsLWJhc2VsaW5lczMtem9vL2Vudi9saWIvcHl0aG9uMy45L3NpdGUtcGFja2FnZXMvc3RhYmxlX2Jhc2VsaW5lczMvY29tbW9uL3V0aWxzLnB5lIwEZnVuY5RLgEMCAAGUjAN2YWyUhZQpdJRSlH2UKIwLX19wYWNrYWdlX1+UjBhzdGFibGVfYmFzZWxpbmVzMy5jb21tb26UjAhfX25hbWVfX5SMHnN0YWJsZV9iYXNlbGluZXMzLmNvbW1vbi51dGlsc5SMCF9fZmlsZV9flIxlL2hvbWUvcWdhbGxvdWVkZWMvcmwtYmFzZWxpbmVzMy16b28vZW52L2xpYi9weXRob24zLjkvc2l0ZS1wYWNrYWdlcy9zdGFibGVfYmFzZWxpbmVzMy9jb21tb24vdXRpbHMucHmUdU5OaACMEF9tYWtlX2VtcHR5X2NlbGyUk5QpUpSFlHSUUpSMHGNsb3VkcGlja2xlLmNsb3VkcGlja2xlX2Zhc3SUjBJfZnVuY3Rpb25fc2V0c3RhdGWUk5RoH32UfZQoaBZoDYwMX19xdWFsbmFtZV9flIwZY29uc3RhbnRfZm4uPGxvY2Fscz4uZnVuY5SMD19fYW5ub3RhdGlvbnNfX5R9lIwOX19rd2RlZmF1bHRzX1+UTowMX19kZWZhdWx0c19flE6MCl9fbW9kdWxlX1+UaBeMB19fZG9jX1+UTowLX19jbG9zdXJlX1+UaACMCl9tYWtlX2NlbGyUk5RHP1BiTdLxqfyFlFKUhZSMF19jbG91ZHBpY2tsZV9zdWJtb2R1bGVzlF2UjAtfX2dsb2JhbHNfX5R9lHWGlIZSMC4="
66
+ },
67
+ "tensorboard_log": "runs/Pendulum-v1__td3__3412888169__1670944265/Pendulum-v1",
68
+ "lr_schedule": {
69
+ ":type:": "<class 'function'>",
70
+ ":serialized:": "gAWV/QIAAAAAAACMF2Nsb3VkcGlja2xlLmNsb3VkcGlja2xllIwOX21ha2VfZnVuY3Rpb26Uk5QoaACMDV9idWlsdGluX3R5cGWUk5SMCENvZGVUeXBllIWUUpQoSwFLAEsASwFLAUsTQwSIAFMAlE6FlCmMAV+UhZSMZS9ob21lL3FnYWxsb3VlZGVjL3JsLWJhc2VsaW5lczMtem9vL2Vudi9saWIvcHl0aG9uMy45L3NpdGUtcGFja2FnZXMvc3RhYmxlX2Jhc2VsaW5lczMvY29tbW9uL3V0aWxzLnB5lIwEZnVuY5RLgEMCAAGUjAN2YWyUhZQpdJRSlH2UKIwLX19wYWNrYWdlX1+UjBhzdGFibGVfYmFzZWxpbmVzMy5jb21tb26UjAhfX25hbWVfX5SMHnN0YWJsZV9iYXNlbGluZXMzLmNvbW1vbi51dGlsc5SMCF9fZmlsZV9flIxlL2hvbWUvcWdhbGxvdWVkZWMvcmwtYmFzZWxpbmVzMy16b28vZW52L2xpYi9weXRob24zLjkvc2l0ZS1wYWNrYWdlcy9zdGFibGVfYmFzZWxpbmVzMy9jb21tb24vdXRpbHMucHmUdU5OaACMEF9tYWtlX2VtcHR5X2NlbGyUk5QpUpSFlHSUUpSMHGNsb3VkcGlja2xlLmNsb3VkcGlja2xlX2Zhc3SUjBJfZnVuY3Rpb25fc2V0c3RhdGWUk5RoH32UfZQoaBZoDYwMX19xdWFsbmFtZV9flIwZY29uc3RhbnRfZm4uPGxvY2Fscz4uZnVuY5SMD19fYW5ub3RhdGlvbnNfX5R9lIwOX19rd2RlZmF1bHRzX1+UTowMX19kZWZhdWx0c19flE6MCl9fbW9kdWxlX1+UaBeMB19fZG9jX1+UTowLX19jbG9zdXJlX1+UaACMCl9tYWtlX2NlbGyUk5RHP1BiTdLxqfyFlFKUhZSMF19jbG91ZHBpY2tsZV9zdWJtb2R1bGVzlF2UjAtfX2dsb2JhbHNfX5R9lHWGlIZSMC4="
71
+ },
72
+ "_last_obs": null,
73
+ "_last_episode_starts": {
74
+ ":type:": "<class 'numpy.ndarray'>",
75
+ ":serialized:": "gAWVdAAAAAAAAACMEm51bXB5LmNvcmUubnVtZXJpY5SMC19mcm9tYnVmZmVylJOUKJYBAAAAAAAAAAGUjAVudW1weZSMBWR0eXBllJOUjAJiMZSJiIeUUpQoSwOMAXyUTk5OSv////9K/////0sAdJRiSwGFlIwBQ5R0lFKULg=="
76
+ },
77
+ "_last_original_obs": {
78
+ ":type:": "<class 'numpy.ndarray'>",
79
+ ":serialized:": "gAWVgQAAAAAAAACMEm51bXB5LmNvcmUubnVtZXJpY5SMC19mcm9tYnVmZmVylJOUKJYMAAAAAAAAAHvqfz/+6dE8J28jPpSMBW51bXB5lIwFZHR5cGWUk5SMAmY0lImIh5RSlChLA4wBPJROTk5K/////0r/////SwB0lGJLAUsDhpSMAUOUdJRSlC4="
80
+ },
81
+ "_episode_num": 100,
82
+ "use_sde": false,
83
+ "sde_sample_freq": -1,
84
+ "_current_progress_remaining": 0.0,
85
+ "ep_info_buffer": {
86
+ ":type:": "<class 'collections.deque'>",
87
+ ":serialized:": "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"
88
+ },
89
+ "ep_success_buffer": {
90
+ ":type:": "<class 'collections.deque'>",
91
+ ":serialized:": "gAWVIAAAAAAAAACMC2NvbGxlY3Rpb25zlIwFZGVxdWWUk5QpS2SGlFKULg=="
92
+ },
93
+ "_n_updates": 10000,
94
+ "buffer_size": 1,
95
+ "batch_size": 100,
96
+ "learning_starts": 10000,
97
+ "tau": 0.005,
98
+ "gamma": 0.98,
99
+ "gradient_steps": -1,
100
+ "optimize_memory_usage": false,
101
+ "replay_buffer_class": {
102
+ ":type:": "<class 'abc.ABCMeta'>",
103
+ ":serialized:": "gAWVNQAAAAAAAACMIHN0YWJsZV9iYXNlbGluZXMzLmNvbW1vbi5idWZmZXJzlIwMUmVwbGF5QnVmZmVylJOULg==",
104
+ "__module__": "stable_baselines3.common.buffers",
105
+ "__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 ",
106
+ "__init__": "<function ReplayBuffer.__init__ at 0x7fdcda3ea430>",
107
+ "add": "<function ReplayBuffer.add at 0x7fdcda3ea4c0>",
108
+ "sample": "<function ReplayBuffer.sample at 0x7fdcda3ea550>",
109
+ "_get_samples": "<function ReplayBuffer._get_samples at 0x7fdcda3ea5e0>",
110
+ "__abstractmethods__": "frozenset()",
111
+ "_abc_impl": "<_abc._abc_data object at 0x7fdcda3e4380>"
112
+ },
113
+ "replay_buffer_kwargs": {},
114
+ "train_freq": {
115
+ ":type:": "<class 'stable_baselines3.common.type_aliases.TrainFreq'>",
116
+ ":serialized:": "gAWVZAAAAAAAAACMJXN0YWJsZV9iYXNlbGluZXMzLmNvbW1vbi50eXBlX2FsaWFzZXOUjAlUcmFpbkZyZXGUk5RLAWgAjBJUcmFpbkZyZXF1ZW5jeVVuaXSUk5SMB2VwaXNvZGWUhZRSlIaUgZQu"
117
+ },
118
+ "use_sde_at_warmup": false,
119
+ "policy_delay": 2,
120
+ "target_noise_clip": 0.5,
121
+ "target_policy_noise": 0.2,
122
+ "actor_batch_norm_stats": [],
123
+ "critic_batch_norm_stats": [],
124
+ "actor_batch_norm_stats_target": [],
125
+ "critic_batch_norm_stats_target": []
126
+ }
td3-Pendulum-v1/policy.pth ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:fdfac2e52859cdce049d03e18e8d238e6d8448286f6161afb30fafc99bfce6cc
3
+ size 2951289
td3-Pendulum-v1/pytorch_variables.pth ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d030ad8db708280fcae77d87e973102039acd23a11bdecc3db8eb6c0ac940ee1
3
+ size 431
td3-Pendulum-v1/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
train_eval_metrics.zip ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:963f5444244addf195271dab09412d7b4f1e8c0f8addfbf33d4110489f1098f1
3
+ size 2851