File size: 14,019 Bytes
80da88a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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 0x7c2a1a2d5cf0>",
        "_get_constructor_parameters": "<function ActorCriticPolicy._get_constructor_parameters at 0x7c2a1a2d5d80>",
        "reset_noise": "<function ActorCriticPolicy.reset_noise at 0x7c2a1a2d5e10>",
        "_build_mlp_extractor": "<function ActorCriticPolicy._build_mlp_extractor at 0x7c2a1a2d5ea0>",
        "_build": "<function ActorCriticPolicy._build at 0x7c2a1a2d5f30>",
        "forward": "<function ActorCriticPolicy.forward at 0x7c2a1a2d5fc0>",
        "extract_features": "<function ActorCriticPolicy.extract_features at 0x7c2a1a2d6050>",
        "_get_action_dist_from_latent": "<function ActorCriticPolicy._get_action_dist_from_latent at 0x7c2a1a2d60e0>",
        "_predict": "<function ActorCriticPolicy._predict at 0x7c2a1a2d6170>",
        "evaluate_actions": "<function ActorCriticPolicy.evaluate_actions at 0x7c2a1a2d6200>",
        "get_distribution": "<function ActorCriticPolicy.get_distribution at 0x7c2a1a2d6290>",
        "predict_values": "<function ActorCriticPolicy.predict_values at 0x7c2a1a2d6320>",
        "__abstractmethods__": "frozenset()",
        "_abc_impl": "<_abc._abc_data object at 0x7c2a237bad00>"
    },
    "verbose": 1,
    "policy_kwargs": {},
    "num_timesteps": 1015808,
    "_total_timesteps": 1000000,
    "_num_timesteps_at_start": 0,
    "seed": null,
    "action_noise": null,
    "start_time": 1692118038875788998,
    "learning_rate": 0.0003,
    "tensorboard_log": null,
    "_last_obs": {
        ":type:": "<class 'numpy.ndarray'>",
        ":serialized:": "gAWVdQIAAAAAAACMEm51bXB5LmNvcmUubnVtZXJpY5SMC19mcm9tYnVmZmVylJOUKJYAAgAAAAAAADqFKT4pejC8HhgMO8y4MLnoZ5+9K4khugAAgD8AAIA/M7PLPNotrj9PRpQ+lUy+vo2uRTxao989AAAAAAAAAAAAzC49j0Zdur2w6DmSZhu5GtSwOtPa77gAAIA/AACAPz1Bcb5sQrE+TbFIPusPwb7BaJq95Kw6PQAAAAAAAAAAzczKOylGMzuOSjU+M5cCvnvSfTwBEwg8AAAAAAAAAACa3jQ9jzZAuiWqpD2GLSyzbAmTu38sTLMAAIA/AACAPzPWcL1tGIo/ujA1vu9pA7/5wW+9QtRRvQAAAAAAAAAARnBNPoby/z5oq5Y8y9rOvv0UqD26W8y9AAAAAAAAAABmVyC9VEQ1P0ePqzuFPwK/2MyRvKXAebsAAAAAAAAAAO0TZz5DpAW8N4GbOkAgL7ieFXS91WG4uQAAgD8AAIA/oCYRvj3bObvlDSC4k1EjtdrmiTy6Gzk3AACAPwAAgD/GVHU++JTkPO7i3b3WJoy9hzQ7Pp5aaL4AAIA/AAAAALpBhj5Mvqg+5QWYPNAno7699LM91UHivAAAAAAAAAAAgDZmPlIwkDwSAhc7sR93OeV6FT5NEUG6AACAPwAAgD+tgYw+qordPtMNf73uQpi+llWgPelVN70AAAAAAAAAAIAyV72fYQ8+RiuUPYS1X75PPge9e+igvAAAAAAAAAAAlIwFbnVtcHmUjAVkdHlwZZSTlIwCZjSUiYiHlFKUKEsDjAE8lE5OTkr/////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": 310,
    "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": 2048,
    "gamma": 0.99,
    "gae_lambda": 0.95,
    "ent_coef": 0.0,
    "vf_coef": 0.5,
    "max_grad_norm": 0.5,
    "batch_size": 64,
    "n_epochs": 10,
    "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"
    }
}