File size: 14,052 Bytes
9c341fd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
{
    "policy_class": {
        ":type:": "<class 'abc.ABCMeta'>",
        ":serialized:": "gAWVOwAAAAAAAACMIXN0YWJsZV9iYXNlbGluZXMzLmNvbW1vbi5wb2xpY2llc5SMEUFjdG9yQ3JpdGljUG9saWN5lJOULg==",
        "__module__": "stable_baselines3.common.policies",
        "__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 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 share_features_extractor: If True, the features extractor is shared between the policy and value networks.\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    ",
        "__init__": "<function ActorCriticPolicy.__init__ at 0x7f2ff8345e10>",
        "_get_constructor_parameters": "<function ActorCriticPolicy._get_constructor_parameters at 0x7f2ff8345ea0>",
        "reset_noise": "<function ActorCriticPolicy.reset_noise at 0x7f2ff8345f30>",
        "_build_mlp_extractor": "<function ActorCriticPolicy._build_mlp_extractor at 0x7f2ff8345fc0>",
        "_build": "<function ActorCriticPolicy._build at 0x7f2ff8346050>",
        "forward": "<function ActorCriticPolicy.forward at 0x7f2ff83460e0>",
        "extract_features": "<function ActorCriticPolicy.extract_features at 0x7f2ff8346170>",
        "_get_action_dist_from_latent": "<function ActorCriticPolicy._get_action_dist_from_latent at 0x7f2ff8346200>",
        "_predict": "<function ActorCriticPolicy._predict at 0x7f2ff8346290>",
        "evaluate_actions": "<function ActorCriticPolicy.evaluate_actions at 0x7f2ff8346320>",
        "get_distribution": "<function ActorCriticPolicy.get_distribution at 0x7f2ff83463b0>",
        "predict_values": "<function ActorCriticPolicy.predict_values at 0x7f2ff8346440>",
        "__abstractmethods__": "frozenset()",
        "_abc_impl": "<_abc._abc_data object at 0x7f2ff853b300>"
    },
    "verbose": 1,
    "policy_kwargs": {},
    "num_timesteps": 1015808,
    "_total_timesteps": 1000000,
    "_num_timesteps_at_start": 0,
    "seed": null,
    "action_noise": null,
    "start_time": 1685374760781333320,
    "learning_rate": 0.0003,
    "tensorboard_log": null,
    "_last_obs": {
        ":type:": "<class 'numpy.ndarray'>",
        ":serialized:": "gAWVdQIAAAAAAACMEm51bXB5LmNvcmUubnVtZXJpY5SMC19mcm9tYnVmZmVylJOUKJYAAgAAAAAAADMTbjrXJGs/UpDkPDqyw774t0S8EyR3PQAAAAAAAAAAaAeavvexQD/48Ye+TBHLvlYv5L6KE5a9AAAAAAAAAADNtR+91q+2PzAd+L0Z7Ku+sbatvLgwrb0AAAAAAAAAAMDyjT0pgCG6CvoJNXJjYDCLGUw72L9qtAAAAAAAAIA/MxYTvWwhMD5UsYc+m/WSvnqZaT6lYh2+AAAAAAAAAADNepi89sIivGB92T3k3ie9yJKhvLb2UL4AAIA/AACAP/rYHD77Frc+ZpmOvgJnhb6s6ty8UJEEOwAAAAAAAAAAmplMO48qbbqY4Mi8tef6O9mQgzuaXOW8AACAPwAAgD+gC3g+mKANP1q5/b1baqK+fKmFPTi5Lb4AAAAAAAAAALPzmD4R2c4+izNFvkt/m75KZXs9NiwHvgAAAAAAAAAAZgDLvVOiej+wijW9VOK+vicx470RwhY+AAAAAAAAAABA8Rw+b3ILP1vT0L1Ju6y+bmAuPQftAL4AAAAAAAAAANOOUz7EpnQ/PkCTPt/NAb9qIYI+12eavAAAAAAAAAAAZkuwPLGnQD+py5M953O7vublLrymK1I8AAAAAAAAAAB63FM+eEfNPsUqnr3XcJW+N2PyPXJCXL0AAAAAAAAAAC2UB77kxvM+c3UiPm6d276Nt4a9zWM5vQAAAAAAAAAAlIwFbnVtcHmUjAVkdHlwZZSTlIwCZjSUiYiHlFKUKEsDjAE8lE5OTkr/////Sv////9LAHSUYksQSwiGlIwBQ5R0lFKULg=="
    },
    "_last_episode_starts": {
        ":type:": "<class 'numpy.ndarray'>",
        ":serialized:": "gAWVgwAAAAAAAACMEm51bXB5LmNvcmUubnVtZXJpY5SMC19mcm9tYnVmZmVylJOUKJYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUjAVudW1weZSMBWR0eXBllJOUjAJiMZSJiIeUUpQoSwOMAXyUTk5OSv////9K/////0sAdJRiSxCFlIwBQ5R0lFKULg=="
    },
    "_last_original_obs": null,
    "_episode_num": 0,
    "use_sde": false,
    "sde_sample_freq": -1,
    "_current_progress_remaining": -0.015808000000000044,
    "_stats_window_size": 100,
    "ep_info_buffer": {
        ":type:": "<class 'collections.deque'>",
        ":serialized:": "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"
    },
    "ep_success_buffer": {
        ":type:": "<class 'collections.deque'>",
        ":serialized:": "gAWVIAAAAAAAAACMC2NvbGxlY3Rpb25zlIwFZGVxdWWUk5QpS2SGlFKULg=="
    },
    "_n_updates": 248,
    "observation_space": {
        ":type:": "<class 'gymnasium.spaces.box.Box'>",
        ":serialized:": "gAWVcAIAAAAAAACMFGd5bW5hc2l1bS5zcGFjZXMuYm94lIwDQm94lJOUKYGUfZQojAVkdHlwZZSMBW51bXB5lGgFk5SMAmY0lImIh5RSlChLA4wBPJROTk5K/////0r/////SwB0lGKMDWJvdW5kZWRfYmVsb3eUjBJudW1weS5jb3JlLm51bWVyaWOUjAtfZnJvbWJ1ZmZlcpSTlCiWCAAAAAAAAAABAQEBAQEBAZRoB4wCYjGUiYiHlFKUKEsDjAF8lE5OTkr/////Sv////9LAHSUYksIhZSMAUOUdJRSlIwNYm91bmRlZF9hYm92ZZRoECiWCAAAAAAAAAABAQEBAQEBAZRoFEsIhZRoGHSUUpSMBl9zaGFwZZRLCIWUjANsb3eUaBAoliAAAAAAAAAAAAC0wgAAtMIAAKDAAACgwNsPScAAAKDAAAAAgAAAAICUaApLCIWUaBh0lFKUjARoaWdolGgQKJYgAAAAAAAAAAAAtEIAALRCAACgQAAAoEDbD0lAAACgQAAAgD8AAIA/lGgKSwiFlGgYdJRSlIwIbG93X3JlcHKUjFtbLTkwLiAgICAgICAgLTkwLiAgICAgICAgIC01LiAgICAgICAgIC01LiAgICAgICAgIC0zLjE0MTU5MjcgIC01LgogIC0wLiAgICAgICAgIC0wLiAgICAgICBdlIwJaGlnaF9yZXBylIxTWzkwLiAgICAgICAgOTAuICAgICAgICAgNS4gICAgICAgICA1LiAgICAgICAgIDMuMTQxNTkyNyAgNS4KICAxLiAgICAgICAgIDEuICAgICAgIF2UjApfbnBfcmFuZG9tlE51Yi4=",
        "dtype": "float32",
        "bounded_below": "[ True  True  True  True  True  True  True  True]",
        "bounded_above": "[ True  True  True  True  True  True  True  True]",
        "_shape": [
            8
        ],
        "low": "[-90.        -90.         -5.         -5.         -3.1415927  -5.\n  -0.         -0.       ]",
        "high": "[90.        90.         5.         5.         3.1415927  5.\n  1.         1.       ]",
        "low_repr": "[-90.        -90.         -5.         -5.         -3.1415927  -5.\n  -0.         -0.       ]",
        "high_repr": "[90.        90.         5.         5.         3.1415927  5.\n  1.         1.       ]",
        "_np_random": null
    },
    "action_space": {
        ":type:": "<class 'gymnasium.spaces.discrete.Discrete'>",
        ":serialized:": "gAWV1QAAAAAAAACMGWd5bW5hc2l1bS5zcGFjZXMuZGlzY3JldGWUjAhEaXNjcmV0ZZSTlCmBlH2UKIwBbpSMFW51bXB5LmNvcmUubXVsdGlhcnJheZSMBnNjYWxhcpSTlIwFbnVtcHmUjAVkdHlwZZSTlIwCaTiUiYiHlFKUKEsDjAE8lE5OTkr/////Sv////9LAHSUYkMIBAAAAAAAAACUhpRSlIwFc3RhcnSUaAhoDkMIAAAAAAAAAACUhpRSlIwGX3NoYXBllCloCmgOjApfbnBfcmFuZG9tlE51Yi4=",
        "n": "4",
        "start": "0",
        "_shape": [],
        "dtype": "int64",
        "_np_random": null
    },
    "n_envs": 16,
    "n_steps": 1024,
    "gamma": 0.999,
    "gae_lambda": 0.98,
    "ent_coef": 0.01,
    "vf_coef": 0.5,
    "max_grad_norm": 0.5,
    "batch_size": 64,
    "n_epochs": 4,
    "clip_range": {
        ":type:": "<class 'function'>",
        ":serialized:": "gAWVxQIAAAAAAACMF2Nsb3VkcGlja2xlLmNsb3VkcGlja2xllIwOX21ha2VfZnVuY3Rpb26Uk5QoaACMDV9idWlsdGluX3R5cGWUk5SMCENvZGVUeXBllIWUUpQoSwFLAEsASwFLAUsTQwSIAFMAlE6FlCmMAV+UhZSMSS91c3IvbG9jYWwvbGliL3B5dGhvbjMuMTAvZGlzdC1wYWNrYWdlcy9zdGFibGVfYmFzZWxpbmVzMy9jb21tb24vdXRpbHMucHmUjARmdW5jlEuEQwIEAZSMA3ZhbJSFlCl0lFKUfZQojAtfX3BhY2thZ2VfX5SMGHN0YWJsZV9iYXNlbGluZXMzLmNvbW1vbpSMCF9fbmFtZV9flIwec3RhYmxlX2Jhc2VsaW5lczMuY29tbW9uLnV0aWxzlIwIX19maWxlX1+UjEkvdXNyL2xvY2FsL2xpYi9weXRob24zLjEwL2Rpc3QtcGFja2FnZXMvc3RhYmxlX2Jhc2VsaW5lczMvY29tbW9uL3V0aWxzLnB5lHVOTmgAjBBfbWFrZV9lbXB0eV9jZWxslJOUKVKUhZR0lFKUjBxjbG91ZHBpY2tsZS5jbG91ZHBpY2tsZV9mYXN0lIwSX2Z1bmN0aW9uX3NldHN0YXRllJOUaB99lH2UKGgWaA2MDF9fcXVhbG5hbWVfX5SMGWNvbnN0YW50X2ZuLjxsb2NhbHM+LmZ1bmOUjA9fX2Fubm90YXRpb25zX1+UfZSMDl9fa3dkZWZhdWx0c19flE6MDF9fZGVmYXVsdHNfX5ROjApfX21vZHVsZV9flGgXjAdfX2RvY19flE6MC19fY2xvc3VyZV9flGgAjApfbWFrZV9jZWxslJOURz/JmZmZmZmahZRSlIWUjBdfY2xvdWRwaWNrbGVfc3VibW9kdWxlc5RdlIwLX19nbG9iYWxzX1+UfZR1hpSGUjAu"
    },
    "clip_range_vf": null,
    "normalize_advantage": true,
    "target_kl": null,
    "lr_schedule": {
        ":type:": "<class 'function'>",
        ":serialized:": "gAWVxQIAAAAAAACMF2Nsb3VkcGlja2xlLmNsb3VkcGlja2xllIwOX21ha2VfZnVuY3Rpb26Uk5QoaACMDV9idWlsdGluX3R5cGWUk5SMCENvZGVUeXBllIWUUpQoSwFLAEsASwFLAUsTQwSIAFMAlE6FlCmMAV+UhZSMSS91c3IvbG9jYWwvbGliL3B5dGhvbjMuMTAvZGlzdC1wYWNrYWdlcy9zdGFibGVfYmFzZWxpbmVzMy9jb21tb24vdXRpbHMucHmUjARmdW5jlEuEQwIEAZSMA3ZhbJSFlCl0lFKUfZQojAtfX3BhY2thZ2VfX5SMGHN0YWJsZV9iYXNlbGluZXMzLmNvbW1vbpSMCF9fbmFtZV9flIwec3RhYmxlX2Jhc2VsaW5lczMuY29tbW9uLnV0aWxzlIwIX19maWxlX1+UjEkvdXNyL2xvY2FsL2xpYi9weXRob24zLjEwL2Rpc3QtcGFja2FnZXMvc3RhYmxlX2Jhc2VsaW5lczMvY29tbW9uL3V0aWxzLnB5lHVOTmgAjBBfbWFrZV9lbXB0eV9jZWxslJOUKVKUhZR0lFKUjBxjbG91ZHBpY2tsZS5jbG91ZHBpY2tsZV9mYXN0lIwSX2Z1bmN0aW9uX3NldHN0YXRllJOUaB99lH2UKGgWaA2MDF9fcXVhbG5hbWVfX5SMGWNvbnN0YW50X2ZuLjxsb2NhbHM+LmZ1bmOUjA9fX2Fubm90YXRpb25zX1+UfZSMDl9fa3dkZWZhdWx0c19flE6MDF9fZGVmYXVsdHNfX5ROjApfX21vZHVsZV9flGgXjAdfX2RvY19flE6MC19fY2xvc3VyZV9flGgAjApfbWFrZV9jZWxslJOURz8zqSowVTJhhZRSlIWUjBdfY2xvdWRwaWNrbGVfc3VibW9kdWxlc5RdlIwLX19nbG9iYWxzX1+UfZR1hpSGUjAu"
    }
}