File size: 15,576 Bytes
8c25bb3 |
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 100 101 102 103 104 105 106 107 108 109 110 111 112 |
{
"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 0x0000014E8AAD6EE0>",
"_get_constructor_parameters": "<function ActorCriticPolicy._get_constructor_parameters at 0x0000014E8AAD6F70>",
"reset_noise": "<function ActorCriticPolicy.reset_noise at 0x0000014E8AACA040>",
"_build_mlp_extractor": "<function ActorCriticPolicy._build_mlp_extractor at 0x0000014E8AACA0D0>",
"_build": "<function ActorCriticPolicy._build at 0x0000014E8AACA160>",
"forward": "<function ActorCriticPolicy.forward at 0x0000014E8AACA1F0>",
"extract_features": "<function ActorCriticPolicy.extract_features at 0x0000014E8AACA280>",
"_get_action_dist_from_latent": "<function ActorCriticPolicy._get_action_dist_from_latent at 0x0000014E8AACA310>",
"_predict": "<function ActorCriticPolicy._predict at 0x0000014E8AACA3A0>",
"evaluate_actions": "<function ActorCriticPolicy.evaluate_actions at 0x0000014E8AACA430>",
"get_distribution": "<function ActorCriticPolicy.get_distribution at 0x0000014E8AACA4C0>",
"predict_values": "<function ActorCriticPolicy.predict_values at 0x0000014E8AACA550>",
"__abstractmethods__": "frozenset()",
"_abc_impl": "<_abc._abc_data object at 0x0000014E8AAD4B00>"
},
"verbose": 1,
"policy_kwargs": {},
"num_timesteps": 8905984,
"_total_timesteps": 20000000,
"_num_timesteps_at_start": 0,
"seed": 42,
"action_noise": null,
"start_time": 1704688772374466300,
"learning_rate": 0.0003,
"tensorboard_log": null,
"_last_obs": null,
"_last_episode_starts": {
":type:": "<class 'numpy.ndarray'>",
":serialized:": "gAWVkwAAAAAAAACMEm51bXB5LmNvcmUubnVtZXJpY5SMC19mcm9tYnVmZmVylJOUKJYgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlIwFbnVtcHmUjAVkdHlwZZSTlIwCYjGUiYiHlFKUKEsDjAF8lE5OTkr/////Sv////9LAHSUYksghZSMAUOUdJRSlC4="
},
"_last_original_obs": null,
"_episode_num": 0,
"use_sde": false,
"sde_sample_freq": -1,
"_current_progress_remaining": 0.5609088,
"_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": 793,
"observation_space": {
":type:": "<class 'gymnasium.spaces.box.Box'>",
":serialized:": "gAWVZgIAAAAAAACMFGd5bW5hc2l1bS5zcGFjZXMuYm94lIwDQm94lJOUKYGUfZQojAVkdHlwZZSMBW51bXB5lIwFZHR5cGWUk5SMAmY0lImIh5RSlChLA4wBPJROTk5K/////0r/////SwB0lGKMDWJvdW5kZWRfYmVsb3eUjBJudW1weS5jb3JlLm51bWVyaWOUjAtfZnJvbWJ1ZmZlcpSTlCiWCAAAAAAAAAABAQEBAQEBAZRoCIwCYjGUiYiHlFKUKEsDjAF8lE5OTkr/////Sv////9LAHSUYksIhZSMAUOUdJRSlIwNYm91bmRlZF9hYm92ZZRoESiWCAAAAAAAAAABAQEBAQEBAZRoFUsIhZRoGXSUUpSMBl9zaGFwZZRLCIWUjANsb3eUaBEoliAAAAAAAAAAAADAvwAAwL8AAKDAAACgwNsPScAAAKDAAAAAgAAAAICUaAtLCIWUaBl0lFKUjARoaWdolGgRKJYgAAAAAAAAAAAAwD8AAMA/AACgQAAAoEDbD0lAAACgQAAAgD8AAIA/lGgLSwiFlGgZdJRSlIwIbG93X3JlcHKUjFNbLTEuNSAgICAgICAtMS41ICAgICAgIC01LiAgICAgICAgLTUuICAgICAgICAtMy4xNDE1OTI3IC01LgogLTAuICAgICAgICAtMC4gICAgICAgXZSMCWhpZ2hfcmVwcpSMS1sxLjUgICAgICAgMS41ICAgICAgIDUuICAgICAgICA1LiAgICAgICAgMy4xNDE1OTI3IDUuICAgICAgICAxLgogMS4gICAgICAgXZSMCl9ucF9yYW5kb22UTnViLg==",
"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": "[-1.5 -1.5 -5. -5. -3.1415927 -5.\n -0. -0. ]",
"high": "[1.5 1.5 5. 5. 3.1415927 5. 1.\n 1. ]",
"low_repr": "[-1.5 -1.5 -5. -5. -3.1415927 -5.\n -0. -0. ]",
"high_repr": "[1.5 1.5 5. 5. 3.1415927 5. 1.\n 1. ]",
"_np_random": null
},
"action_space": {
":type:": "<class 'gymnasium.spaces.discrete.Discrete'>",
":serialized:": "gAWVwgEAAAAAAACMGWd5bW5hc2l1bS5zcGFjZXMuZGlzY3JldGWUjAhEaXNjcmV0ZZSTlCmBlH2UKIwBbpSMFW51bXB5LmNvcmUubXVsdGlhcnJheZSMBnNjYWxhcpSTlIwFbnVtcHmUjAVkdHlwZZSTlIwCaTiUiYiHlFKUKEsDjAE8lE5OTkr/////Sv////9LAHSUYkMIBAAAAAAAAACUhpRSlIwFc3RhcnSUaAhoDkMIAAAAAAAAAACUhpRSlIwGX3NoYXBllCmMBWR0eXBllGgLjAJpOJSJiIeUUpQoSwNoD05OTkr/////Sv////9LAHSUYowKX25wX3JhbmRvbZSMFG51bXB5LnJhbmRvbS5fcGlja2xllIwQX19nZW5lcmF0b3JfY3RvcpSTlIwFUENHNjSUaB+MFF9fYml0X2dlbmVyYXRvcl9jdG9ylJOUhpRSlH2UKIwNYml0X2dlbmVyYXRvcpSMBVBDRzY0lIwFc3RhdGWUfZQoaCqKEcgKhmidfLysKo95mGdPpM4AjANpbmOUihH/qyWN4vLKZm5BqMk2VFD6AHWMCmhhc191aW50MzKUSwCMCHVpbnRlZ2VylEsAdWJ1Yi4=",
"n": "4",
"start": "0",
"_shape": [],
"dtype": "int64",
"_np_random": "Generator(PCG64)"
},
"n_envs": 32,
"n_steps": 4096,
"gamma": 0.997,
"gae_lambda": 0.9349999999999999,
"ent_coef": 0.16,
"vf_coef": 0.5,
"max_grad_norm": 0.5,
"rollout_buffer_class": {
":type:": "<class 'abc.ABCMeta'>",
":serialized:": "gAWVNgAAAAAAAACMIHN0YWJsZV9iYXNlbGluZXMzLmNvbW1vbi5idWZmZXJzlIwNUm9sbG91dEJ1ZmZlcpSTlC4=",
"__module__": "stable_baselines3.common.buffers",
"__annotations__": "{'observations': <class 'numpy.ndarray'>, 'actions': <class 'numpy.ndarray'>, 'rewards': <class 'numpy.ndarray'>, 'advantages': <class 'numpy.ndarray'>, 'returns': <class 'numpy.ndarray'>, 'episode_starts': <class 'numpy.ndarray'>, 'log_probs': <class 'numpy.ndarray'>, 'values': <class 'numpy.ndarray'>}",
"__doc__": "\n Rollout buffer used in on-policy algorithms like A2C/PPO.\n It corresponds to ``buffer_size`` transitions collected\n using the current policy.\n This experience will be discarded after the policy update.\n In order to use PPO objective, we also store the current value of each state\n and the log probability of each taken action.\n\n The term rollout here refers to the model-free notion and should not\n be used with the concept of rollout used in model-based RL or planning.\n Hence, it is only involved in policy and value function training but not action selection.\n\n :param buffer_size: Max number of element in the buffer\n :param observation_space: Observation space\n :param action_space: Action space\n :param device: PyTorch device\n :param gae_lambda: Factor for trade-off of bias vs variance for Generalized Advantage Estimator\n Equivalent to classic advantage when set to 1.\n :param gamma: Discount factor\n :param n_envs: Number of parallel environments\n ",
"__init__": "<function RolloutBuffer.__init__ at 0x0000014E8A7E9CA0>",
"reset": "<function RolloutBuffer.reset at 0x0000014E8A7E9D30>",
"compute_returns_and_advantage": "<function RolloutBuffer.compute_returns_and_advantage at 0x0000014E8A7E9DC0>",
"add": "<function RolloutBuffer.add at 0x0000014E8A7E9E50>",
"get": "<function RolloutBuffer.get at 0x0000014E8A7E9EE0>",
"_get_samples": "<function RolloutBuffer._get_samples at 0x0000014E8A7E9F70>",
"__abstractmethods__": "frozenset()",
"_abc_impl": "<_abc._abc_data object at 0x0000014E8A7EB6C0>"
},
"rollout_buffer_kwargs": {},
"batch_size": 128,
"n_epochs": 6,
"clip_range": {
":type:": "<class 'function'>",
":serialized:": "gAWVcAIAAAAAAACMF2Nsb3VkcGlja2xlLmNsb3VkcGlja2xllIwOX21ha2VfZnVuY3Rpb26Uk5QoaACMDV9idWlsdGluX3R5cGWUk5SMCENvZGVUeXBllIWUUpQoSwFLAEsASwFLAUsTQwSIAFMAlE6FlCmMAV+UhZSMW2M6XFVzZXJzXHpoaXdlaVxhbmFjb25kYTNcZW52c1x0b3JjaGVudlxsaWJcc2l0ZS1wYWNrYWdlc1xzdGFibGVfYmFzZWxpbmVzM1xjb21tb25cdXRpbHMucHmUjARmdW5jlEuDQwIAAZSMA3ZhbJSFlCl0lFKUfZQojAtfX3BhY2thZ2VfX5SMGHN0YWJsZV9iYXNlbGluZXMzLmNvbW1vbpSMCF9fbmFtZV9flIwec3RhYmxlX2Jhc2VsaW5lczMuY29tbW9uLnV0aWxzlIwIX19maWxlX1+UaAx1Tk5oAIwQX21ha2VfZW1wdHlfY2VsbJSTlClSlIWUdJRSlGgAjBJfZnVuY3Rpb25fc2V0c3RhdGWUk5RoHn2UfZQoaBZoDYwMX19xdWFsbmFtZV9flIwZY29uc3RhbnRfZm4uPGxvY2Fscz4uZnVuY5SMD19fYW5ub3RhdGlvbnNfX5R9lIwOX19rd2RlZmF1bHRzX1+UTowMX19kZWZhdWx0c19flE6MCl9fbW9kdWxlX1+UaBeMB19fZG9jX1+UTowLX19jbG9zdXJlX1+UaACMCl9tYWtlX2NlbGyUk5RHP9AxJul41P6FlFKUhZSMF19jbG91ZHBpY2tsZV9zdWJtb2R1bGVzlF2UjAtfX2dsb2JhbHNfX5R9lHWGlIZSMC4="
},
"clip_range_vf": null,
"normalize_advantage": true,
"target_kl": null,
"lr_schedule": {
":type:": "<class 'function'>",
":serialized:": "gAWVcAIAAAAAAACMF2Nsb3VkcGlja2xlLmNsb3VkcGlja2xllIwOX21ha2VfZnVuY3Rpb26Uk5QoaACMDV9idWlsdGluX3R5cGWUk5SMCENvZGVUeXBllIWUUpQoSwFLAEsASwFLAUsTQwSIAFMAlE6FlCmMAV+UhZSMW2M6XFVzZXJzXHpoaXdlaVxhbmFjb25kYTNcZW52c1x0b3JjaGVudlxsaWJcc2l0ZS1wYWNrYWdlc1xzdGFibGVfYmFzZWxpbmVzM1xjb21tb25cdXRpbHMucHmUjARmdW5jlEuDQwIAAZSMA3ZhbJSFlCl0lFKUfZQojAtfX3BhY2thZ2VfX5SMGHN0YWJsZV9iYXNlbGluZXMzLmNvbW1vbpSMCF9fbmFtZV9flIwec3RhYmxlX2Jhc2VsaW5lczMuY29tbW9uLnV0aWxzlIwIX19maWxlX1+UaAx1Tk5oAIwQX21ha2VfZW1wdHlfY2VsbJSTlClSlIWUdJRSlGgAjBJfZnVuY3Rpb25fc2V0c3RhdGWUk5RoHn2UfZQoaBZoDYwMX19xdWFsbmFtZV9flIwZY29uc3RhbnRfZm4uPGxvY2Fscz4uZnVuY5SMD19fYW5ub3RhdGlvbnNfX5R9lIwOX19rd2RlZmF1bHRzX1+UTowMX19kZWZhdWx0c19flE6MCl9fbW9kdWxlX1+UaBeMB19fZG9jX1+UTowLX19jbG9zdXJlX1+UaACMCl9tYWtlX2NlbGyUk5RHPzOpKjBVMmGFlFKUhZSMF19jbG91ZHBpY2tsZV9zdWJtb2R1bGVzlF2UjAtfX2dsb2JhbHNfX5R9lHWGlIZSMC4="
}
} |