LunarLander-v2-2 / config.json
HunterLanier's picture
Upload PPO trained agent
a335f2e
{"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 0x7b9f2641cb80>", "_get_constructor_parameters": "<function ActorCriticPolicy._get_constructor_parameters at 0x7b9f2641cc10>", "reset_noise": "<function ActorCriticPolicy.reset_noise at 0x7b9f2641cca0>", "_build_mlp_extractor": "<function ActorCriticPolicy._build_mlp_extractor at 0x7b9f2641cd30>", "_build": "<function ActorCriticPolicy._build at 0x7b9f2641cdc0>", "forward": "<function ActorCriticPolicy.forward at 0x7b9f2641ce50>", "extract_features": "<function ActorCriticPolicy.extract_features at 0x7b9f2641cee0>", "_get_action_dist_from_latent": "<function ActorCriticPolicy._get_action_dist_from_latent at 0x7b9f2641cf70>", "_predict": "<function ActorCriticPolicy._predict at 0x7b9f2641d000>", "evaluate_actions": "<function ActorCriticPolicy.evaluate_actions at 0x7b9f2641d090>", "get_distribution": "<function ActorCriticPolicy.get_distribution at 0x7b9f2641d120>", "predict_values": "<function ActorCriticPolicy.predict_values at 0x7b9f2641d1b0>", "__abstractmethods__": "frozenset()", "_abc_impl": "<_abc._abc_data object at 0x7b9f26414c40>"}, "verbose": 1, "policy_kwargs": {}, "num_timesteps": 2015232, "_total_timesteps": 2000000, "_num_timesteps_at_start": 0, "seed": null, "action_noise": null, "start_time": 1690058600843298123, "learning_rate": 0.0003, "tensorboard_log": null, "_last_obs": {":type:": "<class 'numpy.ndarray'>", ":serialized:": "gAWVdQIAAAAAAACMEm51bXB5LmNvcmUubnVtZXJpY5SMC19mcm9tYnVmZmVylJOUKJYAAgAAAAAAAM0z5zzufse8O2Deu4EJjr33rKY9ZzWXPgAAgD8AAIA/s74AvYbqjz4HdBS9KkHFvtFcqr2dCdo8AAAAAAAAAABmtDC8mQcoPsN78T36Mbe+6iuUPWo3kj0AAAAAAAAAAKaRwb0IA1A/diZevFVD5L4vfRS9x2KYvAAAAAAAAAAA7aEmPlGSfD9ZYQ89h67gvoiesT6nnji+AAAAAAAAAACaoCq+X4nXPlsYQT66r7C+85Bwut3CeD0AAAAAAAAAAAAVK732tFG6S+TeO3L7O7YVV6w6Ipo1tQAAAAAAAIA/hvk3vjEbij+h7YS+4IoDv5Tplb6Kv529AAAAAAAAAACaqSI8YYi3PoMP4r7fheK+TMK7vsogJL4AAAAAAAAAAKAeGD6aOmA/ZzMOvrRd575/9WA+09ucvgAAAAAAAAAA2sqDvaqaQT6tAww9Vsiqvi4/i726K/M8AAAAAAAAAADmXFu+aepRPyogQrwBwOa+lMKxvpfKxjwAAAAAAAAAAHO3pL2h/1I/tYHTvRpe0L4dq4W95PSEvQAAAAAAAAAAmhogPRQuvrqU2AC7dfyXPJnF2zu1koO9AACAPwAAgD9NH7u9q1ZdP64sgr3bkdu+0SeVvUoz6DwAAAAAAAAAAIacbD49Ju8+QqysvpBiwL4nlqs87tFIvgAAAAAAAAAAlIwFbnVtcHmUjAVkdHlwZZSTlIwCZjSUiYiHlFKUKEsDjAE8lE5OTkr/////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.007616000000000067, "_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": 746, "observation_space": {":type:": "<class 'gymnasium.spaces.box.Box'>", ":serialized:": "gAWVcAIAAAAAAACMFGd5bW5hc2l1bS5zcGFjZXMuYm94lIwDQm94lJOUKYGUfZQojAVkdHlwZZSMBW51bXB5lGgFk5SMAmY0lImIh5RSlChLA4wBPJROTk5K/////0r/////SwB0lGKMDWJvdW5kZWRfYmVsb3eUjBJudW1weS5jb3JlLm51bWVyaWOUjAtfZnJvbWJ1ZmZlcpSTlCiWCAAAAAAAAAABAQEBAQEBAZRoB4wCYjGUiYiHlFKUKEsDjAF8lE5OTkr/////Sv////9LAHSUYksIhZSMAUOUdJRSlIwNYm91bmRlZF9hYm92ZZRoECiWCAAAAAAAAAABAQEBAQEBAZRoFEsIhZRoGHSUUpSMBl9zaGFwZZRLCIWUjANsb3eUaBAoliAAAAAAAAAAAAC0wgAAtMIAAKDAAACgwNsPScAAAKDAAAAAgAAAAICUaApLCIWUaBh0lFKUjARoaWdolGgQKJYgAAAAAAAAAAAAtEIAALRCAACgQAAAoEDbD0lAAACgQAAAgD8AAIA/lGgKSwiFlGgYdJRSlIwIbG93X3JlcHKUjFtbLTkwLiAgICAgICAgLTkwLiAgICAgICAgIC01LiAgICAgICAgIC01LiAgICAgICAgIC0zLjE0MTU5MjcgIC01LgogIC0wLiAgICAgICAgIC0wLiAgICAgICBdlIwJaGlnaF9yZXBylIxTWzkwLiAgICAgICAgOTAuICAgICAgICAgNS4gICAgICAgICA1LiAgICAgICAgIDMuMTQxNTkyNyAgNS4KICAxLiAgICAgICAgIDEuICAgICAgIF2UjApfbnBfcmFuZG9tlE51Yi4=", "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:": "gAWV1QAAAAAAAACMGWd5bW5hc2l1bS5zcGFjZXMuZGlzY3JldGWUjAhEaXNjcmV0ZZSTlCmBlH2UKIwBbpSMFW51bXB5LmNvcmUubXVsdGlhcnJheZSMBnNjYWxhcpSTlIwFbnVtcHmUjAVkdHlwZZSTlIwCaTiUiYiHlFKUKEsDjAE8lE5OTkr/////Sv////9LAHSUYkMIBAAAAAAAAACUhpRSlIwFc3RhcnSUaAhoDkMIAAAAAAAAAACUhpRSlIwGX3NoYXBllCloCmgOjApfbnBfcmFuZG9tlE51Yi4=", "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"}, "system_info": {"OS": "Linux-5.15.109+-x86_64-with-glibc2.35 # 1 SMP Fri Jun 9 10:57:30 UTC 2023", "Python": "3.10.6", "Stable-Baselines3": "2.0.0a5", "PyTorch": "2.0.1+cu118", "GPU Enabled": "True", "Numpy": "1.22.4", "Cloudpickle": "2.2.1", "Gymnasium": "0.28.1", "OpenAI Gym": "0.25.2"}}