File size: 13,700 Bytes
cd67e6f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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 0x7f7f5a2cc5e0>",
        "_get_constructor_parameters": "<function ActorCriticPolicy._get_constructor_parameters at 0x7f7f5a2cc670>",
        "reset_noise": "<function ActorCriticPolicy.reset_noise at 0x7f7f5a2cc700>",
        "_build_mlp_extractor": "<function ActorCriticPolicy._build_mlp_extractor at 0x7f7f5a2cc790>",
        "_build": "<function ActorCriticPolicy._build at 0x7f7f5a2cc820>",
        "forward": "<function ActorCriticPolicy.forward at 0x7f7f5a2cc8b0>",
        "extract_features": "<function ActorCriticPolicy.extract_features at 0x7f7f5a2cc940>",
        "_get_action_dist_from_latent": "<function ActorCriticPolicy._get_action_dist_from_latent at 0x7f7f5a2cc9d0>",
        "_predict": "<function ActorCriticPolicy._predict at 0x7f7f5a2cca60>",
        "evaluate_actions": "<function ActorCriticPolicy.evaluate_actions at 0x7f7f5a2ccaf0>",
        "get_distribution": "<function ActorCriticPolicy.get_distribution at 0x7f7f5a2ccb80>",
        "predict_values": "<function ActorCriticPolicy.predict_values at 0x7f7f5a2ccc10>",
        "__abstractmethods__": "frozenset()",
        "_abc_impl": "<_abc._abc_data object at 0x7f7f5a261880>"
    },
    "verbose": 1,
    "policy_kwargs": {},
    "num_timesteps": 1000448,
    "_total_timesteps": 1000000,
    "_num_timesteps_at_start": 0,
    "seed": null,
    "action_noise": null,
    "start_time": 1712958841733460749,
    "learning_rate": 0.0003,
    "tensorboard_log": null,
    "_last_obs": {
        ":type:": "<class 'numpy.ndarray'>",
        ":serialized:": "gAWVlQAAAAAAAACMEm51bXB5LmNvcmUubnVtZXJpY5SMC19mcm9tYnVmZmVylJOUKJYgAAAAAAAAAIDpKz4Kbh67dTOoOnHZ77av4Ae84X7BuQAAgD8AAIA/lIwFbnVtcHmUjAVkdHlwZZSTlIwCZjSUiYiHlFKUKEsDjAE8lE5OTkr/////Sv////9LAHSUYksBSwiGlIwBQ5R0lFKULg=="
    },
    "_last_episode_starts": {
        ":type:": "<class 'numpy.ndarray'>",
        ":serialized:": "gAWVdAAAAAAAAACMEm51bXB5LmNvcmUubnVtZXJpY5SMC19mcm9tYnVmZmVylJOUKJYBAAAAAAAAAACUjAVudW1weZSMBWR0eXBllJOUjAJiMZSJiIeUUpQoSwOMAXyUTk5OSv////9K/////0sAdJRiSwGFlIwBQ5R0lFKULg=="
    },
    "_last_original_obs": null,
    "_episode_num": 0,
    "use_sde": false,
    "sde_sample_freq": -1,
    "_current_progress_remaining": -0.00044800000000000395,
    "_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": 3908,
    "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:": "gAWVoQEAAAAAAACMGWd5bW5hc2l1bS5zcGFjZXMuZGlzY3JldGWUjAhEaXNjcmV0ZZSTlCmBlH2UKIwBbpSMFW51bXB5LmNvcmUubXVsdGlhcnJheZSMBnNjYWxhcpSTlIwFbnVtcHmUjAVkdHlwZZSTlIwCaTiUiYiHlFKUKEsDjAE8lE5OTkr/////Sv////9LAHSUYkMIBAAAAAAAAACUhpRSlIwFc3RhcnSUaAhoDkMIAAAAAAAAAACUhpRSlIwGX3NoYXBllCmMBWR0eXBllGgOjApfbnBfcmFuZG9tlIwUbnVtcHkucmFuZG9tLl9waWNrbGWUjBBfX2dlbmVyYXRvcl9jdG9ylJOUjAVQQ0c2NJRoG4wUX19iaXRfZ2VuZXJhdG9yX2N0b3KUk5SGlFKUfZQojA1iaXRfZ2VuZXJhdG9ylIwFUENHNjSUjAVzdGF0ZZR9lChoJooQtZjo0UlpI6aXZ9ks+8dvSIwDaW5jlIoQvy+8eNhsYtOoU54NDG56S3WMCmhhc191aW50MzKUSwCMCHVpbnRlZ2VylEqTu8h/dWJ1Yi4=",
        "n": "4",
        "start": "0",
        "_shape": [],
        "dtype": "int64",
        "_np_random": "Generator(PCG64)"
    },
    "n_envs": 1,
    "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"
    }
}