|
{ |
|
"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 0x7f7d9b568860>", |
|
"_get_constructor_parameters": "<function ActorCriticPolicy._get_constructor_parameters at 0x7f7d9b568900>", |
|
"reset_noise": "<function ActorCriticPolicy.reset_noise at 0x7f7d9b5689a0>", |
|
"_build_mlp_extractor": "<function ActorCriticPolicy._build_mlp_extractor at 0x7f7d9b568a40>", |
|
"_build": "<function ActorCriticPolicy._build at 0x7f7d9b568ae0>", |
|
"forward": "<function ActorCriticPolicy.forward at 0x7f7d9b568b80>", |
|
"extract_features": "<function ActorCriticPolicy.extract_features at 0x7f7d9b568c20>", |
|
"_get_action_dist_from_latent": "<function ActorCriticPolicy._get_action_dist_from_latent at 0x7f7d9b568cc0>", |
|
"_predict": "<function ActorCriticPolicy._predict at 0x7f7d9b568d60>", |
|
"evaluate_actions": "<function ActorCriticPolicy.evaluate_actions at 0x7f7d9b568e00>", |
|
"get_distribution": "<function ActorCriticPolicy.get_distribution at 0x7f7d9b568ea0>", |
|
"predict_values": "<function ActorCriticPolicy.predict_values at 0x7f7d9b568f40>", |
|
"__abstractmethods__": "frozenset()", |
|
"_abc_impl": "<_abc._abc_data object at 0x7f7d9b53c340>" |
|
}, |
|
"verbose": 1, |
|
"policy_kwargs": {}, |
|
"num_timesteps": 1001472, |
|
"_total_timesteps": 1000000, |
|
"_num_timesteps_at_start": 0, |
|
"seed": null, |
|
"action_noise": null, |
|
"start_time": 1711457577194726713, |
|
"learning_rate": 0.0003, |
|
"tensorboard_log": null, |
|
"_last_obs": { |
|
":type:": "<class 'numpy.ndarray'>", |
|
":serialized:": "gAWVlQAAAAAAAACMEm51bXB5LmNvcmUubnVtZXJpY5SMC19mcm9tYnVmZmVylJOUKJYgAAAAAAAAAGaCjT3IsYK8MuUIvlfUK7xcgKQ8+V6TvQAAgD8AAIA/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.0014719999999999178, |
|
"_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": 4890, |
|
"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:": "gAWV2wAAAAAAAACMGWd5bW5hc2l1bS5zcGFjZXMuZGlzY3JldGWUjAhEaXNjcmV0ZZSTlCmBlH2UKIwBbpSMFW51bXB5LmNvcmUubXVsdGlhcnJheZSMBnNjYWxhcpSTlIwFbnVtcHmUjAVkdHlwZZSTlIwCaTiUiYiHlFKUKEsDjAE8lE5OTkr/////Sv////9LAHSUYkMIBAAAAAAAAACUhpRSlIwFc3RhcnSUaAhoDkMIAAAAAAAAAACUhpRSlIwGX3NoYXBllCmMBWR0eXBllGgOjApfbnBfcmFuZG9tlE51Yi4=", |
|
"n": "4", |
|
"start": "0", |
|
"_shape": [], |
|
"dtype": "int64", |
|
"_np_random": null |
|
}, |
|
"n_envs": 1, |
|
"n_steps": 2048, |
|
"gamma": 0.999, |
|
"gae_lambda": 0.98, |
|
"ent_coef": 0.01, |
|
"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 0x7f7d9b862200>", |
|
"reset": "<function RolloutBuffer.reset at 0x7f7d9b8622a0>", |
|
"compute_returns_and_advantage": "<function RolloutBuffer.compute_returns_and_advantage at 0x7f7d9b862340>", |
|
"add": "<function RolloutBuffer.add at 0x7f7d9b8623e0>", |
|
"get": "<function RolloutBuffer.get at 0x7f7d9b862480>", |
|
"_get_samples": "<function RolloutBuffer._get_samples at 0x7f7d9b862520>", |
|
"__abstractmethods__": "frozenset()", |
|
"_abc_impl": "<_abc._abc_data object at 0x7f7da1a85fc0>" |
|
}, |
|
"rollout_buffer_kwargs": {}, |
|
"batch_size": 64, |
|
"n_epochs": 10, |
|
"clip_range": { |
|
":type:": "<class 'function'>", |
|
":serialized:": "gAWVywIAAAAAAACMF2Nsb3VkcGlja2xlLmNsb3VkcGlja2xllIwOX21ha2VfZnVuY3Rpb26Uk5QoaACMDV9idWlsdGluX3R5cGWUk5SMCENvZGVUeXBllIWUUpQoSwFLAEsASwFLAUsTQwiVAZcAiQFTAJROhZQpjAFflIWUjKcvcnVuL21lZGlhL2NhcmRvc28vNzE0M2UyMDAtZGVkNy00ZmFlLTg1YmEtM2NkYjU2NzYyMTBhL0RvY3VtZW50cy93b3Jrc3BhY2Uvc3R1ZGllcy9kZWVwIFJMIGNvdXJzZS8udmVudi9saWIvcHl0aG9uMy4xMS9zaXRlLXBhY2thZ2VzL3N0YWJsZV9iYXNlbGluZXMzL2NvbW1vbi91dGlscy5weZSMBGZ1bmOUjBljb25zdGFudF9mbi48bG9jYWxzPi5mdW5jlEuDQwj4gADYDxKICpRDAJSMA3ZhbJSFlCl0lFKUfZQojAtfX3BhY2thZ2VfX5SMGHN0YWJsZV9iYXNlbGluZXMzLmNvbW1vbpSMCF9fbmFtZV9flIwec3RhYmxlX2Jhc2VsaW5lczMuY29tbW9uLnV0aWxzlIwIX19maWxlX1+UaAx1Tk5oAIwQX21ha2VfZW1wdHlfY2VsbJSTlClSlIWUdJRSlGgAjBJfZnVuY3Rpb25fc2V0c3RhdGWUk5RoIH2UfZQoaBhoDYwMX19xdWFsbmFtZV9flGgOjA9fX2Fubm90YXRpb25zX1+UfZSMDl9fa3dkZWZhdWx0c19flE6MDF9fZGVmYXVsdHNfX5ROjApfX21vZHVsZV9flGgZjAdfX2RvY19flE6MC19fY2xvc3VyZV9flGgAjApfbWFrZV9jZWxslJOURz/JmZmZmZmahZRSlIWUjBdfY2xvdWRwaWNrbGVfc3VibW9kdWxlc5RdlIwLX19nbG9iYWxzX1+UfZR1hpSGUjAu" |
|
}, |
|
"clip_range_vf": null, |
|
"normalize_advantage": true, |
|
"target_kl": null, |
|
"lr_schedule": { |
|
":type:": "<class 'function'>", |
|
":serialized:": "gAWVywIAAAAAAACMF2Nsb3VkcGlja2xlLmNsb3VkcGlja2xllIwOX21ha2VfZnVuY3Rpb26Uk5QoaACMDV9idWlsdGluX3R5cGWUk5SMCENvZGVUeXBllIWUUpQoSwFLAEsASwFLAUsTQwiVAZcAiQFTAJROhZQpjAFflIWUjKcvcnVuL21lZGlhL2NhcmRvc28vNzE0M2UyMDAtZGVkNy00ZmFlLTg1YmEtM2NkYjU2NzYyMTBhL0RvY3VtZW50cy93b3Jrc3BhY2Uvc3R1ZGllcy9kZWVwIFJMIGNvdXJzZS8udmVudi9saWIvcHl0aG9uMy4xMS9zaXRlLXBhY2thZ2VzL3N0YWJsZV9iYXNlbGluZXMzL2NvbW1vbi91dGlscy5weZSMBGZ1bmOUjBljb25zdGFudF9mbi48bG9jYWxzPi5mdW5jlEuDQwj4gADYDxKICpRDAJSMA3ZhbJSFlCl0lFKUfZQojAtfX3BhY2thZ2VfX5SMGHN0YWJsZV9iYXNlbGluZXMzLmNvbW1vbpSMCF9fbmFtZV9flIwec3RhYmxlX2Jhc2VsaW5lczMuY29tbW9uLnV0aWxzlIwIX19maWxlX1+UaAx1Tk5oAIwQX21ha2VfZW1wdHlfY2VsbJSTlClSlIWUdJRSlGgAjBJfZnVuY3Rpb25fc2V0c3RhdGWUk5RoIH2UfZQoaBhoDYwMX19xdWFsbmFtZV9flGgOjA9fX2Fubm90YXRpb25zX1+UfZSMDl9fa3dkZWZhdWx0c19flE6MDF9fZGVmYXVsdHNfX5ROjApfX21vZHVsZV9flGgZjAdfX2RvY19flE6MC19fY2xvc3VyZV9flGgAjApfbWFrZV9jZWxslJOURz8zqSowVTJhhZRSlIWUjBdfY2xvdWRwaWNrbGVfc3VibW9kdWxlc5RdlIwLX19nbG9iYWxzX1+UfZR1hpSGUjAu" |
|
} |
|
} |