File size: 14,096 Bytes
fb82552
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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 0x7b6921803010>",
        "_get_constructor_parameters": "<function ActorCriticPolicy._get_constructor_parameters at 0x7b69218030a0>",
        "reset_noise": "<function ActorCriticPolicy.reset_noise at 0x7b6921803130>",
        "_build_mlp_extractor": "<function ActorCriticPolicy._build_mlp_extractor at 0x7b69218031c0>",
        "_build": "<function ActorCriticPolicy._build at 0x7b6921803250>",
        "forward": "<function ActorCriticPolicy.forward at 0x7b69218032e0>",
        "extract_features": "<function ActorCriticPolicy.extract_features at 0x7b6921803370>",
        "_get_action_dist_from_latent": "<function ActorCriticPolicy._get_action_dist_from_latent at 0x7b6921803400>",
        "_predict": "<function ActorCriticPolicy._predict at 0x7b6921803490>",
        "evaluate_actions": "<function ActorCriticPolicy.evaluate_actions at 0x7b6921803520>",
        "get_distribution": "<function ActorCriticPolicy.get_distribution at 0x7b69218035b0>",
        "predict_values": "<function ActorCriticPolicy.predict_values at 0x7b6921803640>",
        "__abstractmethods__": "frozenset()",
        "_abc_impl": "<_abc._abc_data object at 0x7b692198e3c0>"
    },
    "verbose": 1,
    "policy_kwargs": {},
    "num_timesteps": 1015808,
    "_total_timesteps": 1000000,
    "_num_timesteps_at_start": 0,
    "seed": null,
    "action_noise": null,
    "start_time": 1711278034482252893,
    "learning_rate": 0.0003,
    "tensorboard_log": null,
    "_last_obs": {
        ":type:": "<class 'numpy.ndarray'>",
        ":serialized:": "gAWVdQIAAAAAAACMEm51bXB5LmNvcmUubnVtZXJpY5SMC19mcm9tYnVmZmVylJOUKJYAAgAAAAAAADOzvzwpWHC6o8rwuiKw47War0O6MgkNOgAAgD8AAIA/Zu+1vcPZBLoHs4i6JKENNkLt+LkWpaM5AAAAAAAAgD+ABlU9OU9tPu6F1jwrbyK+t2ZtPf458bwAAAAAAAAAAG3bTT6AJZs+SojNvV/jUb4sNXs99+ISvQAAAAAAAAAAerEwvhzRMrwtU3C6AEYXuNqLkz3SlWc5AACAPwAAgD9tOhq+7YsyP8IhVz1JqFa+bFdbvK48qz0AAAAAAAAAABoEhr2Plk+6198dO8ug4DatTb+6pWkZugAAgD8AAIA/AHLlvXSe4j7CpYo9HDB7vu0bP71PcMW9AAAAAAAAAABmF9K84RSLuuKCNjtW9bU34ew4u4BNAroAAIA/AACAPwC0qLwptHq6bjFFuj78KLW0KAy7Jo5mOQAAgD8AAIA/yl2CPg7mgD9dX2Q+4KOlvt4HWz49Z2y8AAAAAAAAAABN8kK9jzZtuo1RZrjmokOz5IqMOkIGhzcAAIA/AACAP02Lyj06Iow+GudAvvbuGb4umlm9m1U+vQAAAAAAAAAAmsHrPI+WUrpTuIy5mvpotMkfCrq9w6U4AACAPwAAgD8aeri9cieLP2sR2L0+/Ii+1SHMvX6UPj0AAAAAAAAAAGaATbxcJ1e6GOrsOvHCrDUhf+a6c40LugAAgD8AAIA/lIwFbnVtcHmUjAVkdHlwZZSTlIwCZjSUiYiHlFKUKEsDjAE8lE5OTkr/////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": 280,
    "observation_space": {
        ":type:": "<class 'gymnasium.spaces.box.Box'>",
        ":serialized:": "gAWVdgIAAAAAAACMFGd5bW5hc2l1bS5zcGFjZXMuYm94lIwDQm94lJOUKYGUfZQojAVkdHlwZZSMBW51bXB5lIwFZHR5cGWUk5SMAmY0lImIh5RSlChLA4wBPJROTk5K/////0r/////SwB0lGKMDWJvdW5kZWRfYmVsb3eUjBJudW1weS5jb3JlLm51bWVyaWOUjAtfZnJvbWJ1ZmZlcpSTlCiWCAAAAAAAAAABAQEBAQEBAZRoCIwCYjGUiYiHlFKUKEsDjAF8lE5OTkr/////Sv////9LAHSUYksIhZSMAUOUdJRSlIwNYm91bmRlZF9hYm92ZZRoESiWCAAAAAAAAAABAQEBAQEBAZRoFUsIhZRoGXSUUpSMBl9zaGFwZZRLCIWUjANsb3eUaBEoliAAAAAAAAAAAAC0wgAAtMIAAKDAAACgwNsPScAAAKDAAAAAgAAAAICUaAtLCIWUaBl0lFKUjARoaWdolGgRKJYgAAAAAAAAAAAAtEIAALRCAACgQAAAoEDbD0lAAACgQAAAgD8AAIA/lGgLSwiFlGgZdJRSlIwIbG93X3JlcHKUjFtbLTkwLiAgICAgICAgLTkwLiAgICAgICAgIC01LiAgICAgICAgIC01LiAgICAgICAgIC0zLjE0MTU5MjcgIC01LgogIC0wLiAgICAgICAgIC0wLiAgICAgICBdlIwJaGlnaF9yZXBylIxTWzkwLiAgICAgICAgOTAuICAgICAgICAgNS4gICAgICAgICA1LiAgICAgICAgIDMuMTQxNTkyNyAgNS4KICAxLiAgICAgICAgIDEuICAgICAgIF2UjApfbnBfcmFuZG9tlE51Yi4=",
        "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:": "gAWV2wAAAAAAAACMGWd5bW5hc2l1bS5zcGFjZXMuZGlzY3JldGWUjAhEaXNjcmV0ZZSTlCmBlH2UKIwBbpSMFW51bXB5LmNvcmUubXVsdGlhcnJheZSMBnNjYWxhcpSTlIwFbnVtcHmUjAVkdHlwZZSTlIwCaTiUiYiHlFKUKEsDjAE8lE5OTkr/////Sv////9LAHSUYkMIBAAAAAAAAACUhpRSlIwFc3RhcnSUaAhoDkMIAAAAAAAAAACUhpRSlIwGX3NoYXBllCmMBWR0eXBllGgOjApfbnBfcmFuZG9tlE51Yi4=",
        "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"
    }
}