| { | |
| "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 0x78a29d774ee0>", | |
| "_get_constructor_parameters": "<function ActorCriticPolicy._get_constructor_parameters at 0x78a29d774f70>", | |
| "reset_noise": "<function ActorCriticPolicy.reset_noise at 0x78a29d775000>", | |
| "_build_mlp_extractor": "<function ActorCriticPolicy._build_mlp_extractor at 0x78a29d775090>", | |
| "_build": "<function ActorCriticPolicy._build at 0x78a29d775120>", | |
| "forward": "<function ActorCriticPolicy.forward at 0x78a29d7751b0>", | |
| "extract_features": "<function ActorCriticPolicy.extract_features at 0x78a29d775240>", | |
| "_get_action_dist_from_latent": "<function ActorCriticPolicy._get_action_dist_from_latent at 0x78a29d7752d0>", | |
| "_predict": "<function ActorCriticPolicy._predict at 0x78a29d775360>", | |
| "evaluate_actions": "<function ActorCriticPolicy.evaluate_actions at 0x78a29d7753f0>", | |
| "get_distribution": "<function ActorCriticPolicy.get_distribution at 0x78a29d775480>", | |
| "predict_values": "<function ActorCriticPolicy.predict_values at 0x78a29d775510>", | |
| "__abstractmethods__": "frozenset()", | |
| "_abc_impl": "<_abc._abc_data object at 0x78a29e22e300>" | |
| }, | |
| "verbose": 1, | |
| "policy_kwargs": {}, | |
| "num_timesteps": 1015808, | |
| "_total_timesteps": 1000000, | |
| "_num_timesteps_at_start": 0, | |
| "seed": null, | |
| "action_noise": null, | |
| "start_time": 1724018081631932558, | |
| "learning_rate": 0.0003, | |
| "tensorboard_log": null, | |
| "_last_obs": { | |
| ":type:": "<class 'numpy.ndarray'>", | |
| ":serialized:": "gAWVdQIAAAAAAACMEm51bXB5LmNvcmUubnVtZXJpY5SMC19mcm9tYnVmZmVylJOUKJYAAgAAAAAAAJqhfjyjIhU/9phEPH3S474GT9A8yu9GvAAAAAAAAAAAZpbLPJzoFryjZhC8kimkPPEvcj0Zs4e9AACAPwAAgD/wCl6+NIzaPqJmrT6Rm9y+pu21vYrUgj4AAAAAAAAAAGZW8DpxQnO7rryrPedZWTyavrq8HdI8PQAAgD8AAIA/gDYBvY/6e7ruCS09zOXouBcKartmYeK3AACAPwAAgD+AwjU9FIKXuqiAYDPzrjYvCKAdO+rPr7MAAIA/AACAP1PXKT5zBaU+xvzKvjk7y75AN6W9BV9cvgAAAAAAAAAAmkG+u0R9sz/Pjha//g/FvnGu3DsPagg+AAAAAAAAAACaEwi9cQNwuzK9i7ygcqg8bQucPGaWj70AAIA/AACAPzOJFDxci326xNIZOPNtDTMm38q6Y7YztwAAgD8AAIA/c7G+vcNFpj9grvu+jO8AvzA/AL5CN1q+AAAAAAAAAACgKC2+L/mEP7CSpL4Dtwa/VyyTvj3fIr4AAAAAAAAAAADeKTypvxs9XnhwvU4dur6WloW9BpPlPAAAAAAAAAAAANznOwPEAbwu3hA8tvNKPE+uSz2Sci29AACAPwAAgD8zB8G8j/ZnutiYSrMMUhAwk/dUO3G4xjMAAIA/AACAP1rasT1Ii4y68EPlOr03eTbdf066pgwaugAAAAAAAIA/lIwFbnVtcHmUjAVkdHlwZZSTlIwCZjSUiYiHlFKUKEsDjAE8lE5OTkr/////Sv////9LAHSUYksQSwiGlIwBQ5R0lFKULg==" | |
| }, | |
| "_last_episode_starts": { | |
| ":type:": "<class 'numpy.ndarray'>", | |
| ":serialized:": "gAWVgwAAAAAAAACMEm51bXB5LmNvcmUubnVtZXJpY5SMC19mcm9tYnVmZmVylJOUKJYQAAAAAAAAAAAAAAAAAAABAAAAAAAAAACUjAVudW1weZSMBWR0eXBllJOUjAJiMZSJiIeUUpQoSwOMAXyUTk5OSv////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": 744, | |
| "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:": "gAWVqAIAAAAAAACMF2Nsb3VkcGlja2xlLmNsb3VkcGlja2xllIwOX21ha2VfZnVuY3Rpb26Uk5QoaACMDV9idWlsdGluX3R5cGWUk5SMCENvZGVUeXBllIWUUpQoSwFLAEsASwFLAUsTQwSIAFMAlE6FlCmMAV+UhZSMSS9vcHQvY29uZGEvbGliL3B5dGhvbjMuMTAvc2l0ZS1wYWNrYWdlcy9zdGFibGVfYmFzZWxpbmVzMy9jb21tb24vdXRpbHMucHmUjARmdW5jlEuEQwIEAZSMA3ZhbJSFlCl0lFKUfZQojAtfX3BhY2thZ2VfX5SMGHN0YWJsZV9iYXNlbGluZXMzLmNvbW1vbpSMCF9fbmFtZV9flIwec3RhYmxlX2Jhc2VsaW5lczMuY29tbW9uLnV0aWxzlIwIX19maWxlX1+UjEkvb3B0L2NvbmRhL2xpYi9weXRob24zLjEwL3NpdGUtcGFja2FnZXMvc3RhYmxlX2Jhc2VsaW5lczMvY29tbW9uL3V0aWxzLnB5lHVOTmgAjBBfbWFrZV9lbXB0eV9jZWxslJOUKVKUhZR0lFKUaACMEl9mdW5jdGlvbl9zZXRzdGF0ZZSTlGgffZR9lChoFmgNjAxfX3F1YWxuYW1lX1+UjBljb25zdGFudF9mbi48bG9jYWxzPi5mdW5jlIwPX19hbm5vdGF0aW9uc19flH2UjA5fX2t3ZGVmYXVsdHNfX5ROjAxfX2RlZmF1bHRzX1+UTowKX19tb2R1bGVfX5RoF4wHX19kb2NfX5ROjAtfX2Nsb3N1cmVfX5RoAIwKX21ha2VfY2VsbJSTlEc/yZmZmZmZmoWUUpSFlIwXX2Nsb3VkcGlja2xlX3N1Ym1vZHVsZXOUXZSMC19fZ2xvYmFsc19flH2UdYaUhlIwLg==" | |
| }, | |
| "clip_range_vf": null, | |
| "normalize_advantage": true, | |
| "target_kl": null, | |
| "lr_schedule": { | |
| ":type:": "<class 'function'>", | |
| ":serialized:": "gAWVqAIAAAAAAACMF2Nsb3VkcGlja2xlLmNsb3VkcGlja2xllIwOX21ha2VfZnVuY3Rpb26Uk5QoaACMDV9idWlsdGluX3R5cGWUk5SMCENvZGVUeXBllIWUUpQoSwFLAEsASwFLAUsTQwSIAFMAlE6FlCmMAV+UhZSMSS9vcHQvY29uZGEvbGliL3B5dGhvbjMuMTAvc2l0ZS1wYWNrYWdlcy9zdGFibGVfYmFzZWxpbmVzMy9jb21tb24vdXRpbHMucHmUjARmdW5jlEuEQwIEAZSMA3ZhbJSFlCl0lFKUfZQojAtfX3BhY2thZ2VfX5SMGHN0YWJsZV9iYXNlbGluZXMzLmNvbW1vbpSMCF9fbmFtZV9flIwec3RhYmxlX2Jhc2VsaW5lczMuY29tbW9uLnV0aWxzlIwIX19maWxlX1+UjEkvb3B0L2NvbmRhL2xpYi9weXRob24zLjEwL3NpdGUtcGFja2FnZXMvc3RhYmxlX2Jhc2VsaW5lczMvY29tbW9uL3V0aWxzLnB5lHVOTmgAjBBfbWFrZV9lbXB0eV9jZWxslJOUKVKUhZR0lFKUaACMEl9mdW5jdGlvbl9zZXRzdGF0ZZSTlGgffZR9lChoFmgNjAxfX3F1YWxuYW1lX1+UjBljb25zdGFudF9mbi48bG9jYWxzPi5mdW5jlIwPX19hbm5vdGF0aW9uc19flH2UjA5fX2t3ZGVmYXVsdHNfX5ROjAxfX2RlZmF1bHRzX1+UTowKX19tb2R1bGVfX5RoF4wHX19kb2NfX5ROjAtfX2Nsb3N1cmVfX5RoAIwKX21ha2VfY2VsbJSTlEc/M6kqMFUyYYWUUpSFlIwXX2Nsb3VkcGlja2xlX3N1Ym1vZHVsZXOUXZSMC19fZ2xvYmFsc19flH2UdYaUhlIwLg==" | |
| } | |
| } |