File size: 15,227 Bytes
022dd62 bf5d3fd 022dd62 bf5d3fd 022dd62 bf5d3fd 022dd62 bf5d3fd 022dd62 bf5d3fd 022dd62 bf5d3fd 022dd62 bf5d3fd 022dd62 bf5d3fd 022dd62 bf5d3fd 022dd62 bf5d3fd 022dd62 |
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 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 |
{
"policy_class": {
":type:": "<class 'abc.ABCMeta'>",
":serialized:": "gAWVMAAAAAAAAACMHnN0YWJsZV9iYXNlbGluZXMzLmRxbi5wb2xpY2llc5SMCURRTlBvbGljeZSTlC4=",
"__module__": "stable_baselines3.dqn.policies",
"__annotations__": "{'q_net': <class 'stable_baselines3.dqn.policies.QNetwork'>, 'q_net_target': <class 'stable_baselines3.dqn.policies.QNetwork'>}",
"__doc__": "\n Policy class with Q-Value Net and target net for DQN\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 features_extractor_class: Features extractor to use.\n :param features_extractor_kwargs: Keyword arguments\n to pass to the features extractor.\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 DQNPolicy.__init__ at 0x3237bb5e0>",
"_build": "<function DQNPolicy._build at 0x3237bb670>",
"make_q_net": "<function DQNPolicy.make_q_net at 0x3237bb700>",
"forward": "<function DQNPolicy.forward at 0x3237bb790>",
"_predict": "<function DQNPolicy._predict at 0x3237bb820>",
"_get_constructor_parameters": "<function DQNPolicy._get_constructor_parameters at 0x3237bb8b0>",
"set_training_mode": "<function DQNPolicy.set_training_mode at 0x3237bb940>",
"__abstractmethods__": "frozenset()",
"_abc_impl": "<_abc._abc_data object at 0x3237bfcc0>"
},
"verbose": 1,
"policy_kwargs": {
":type:": "<class 'dict'>",
":serialized:": "gAWVUQAAAAAAAAB9lCiMDWFjdGl2YXRpb25fZm6UjBt0b3JjaC5ubi5tb2R1bGVzLmFjdGl2YXRpb26UjARSZUxVlJOUjAhuZXRfYXJjaJRdlChNAAFNAAFldS4=",
"activation_fn": "<class 'torch.nn.modules.activation.ReLU'>",
"net_arch": [
256,
256
]
},
"num_timesteps": 100000,
"_total_timesteps": 100000.0,
"_num_timesteps_at_start": 0,
"seed": null,
"action_noise": null,
"start_time": 1713087975250453000,
"learning_rate": 0.0001,
"tensorboard_log": null,
"_last_obs": {
":type:": "<class 'numpy.ndarray'>",
":serialized:": "gAWVhQAAAAAAAACMEm51bXB5LmNvcmUubnVtZXJpY5SMC19mcm9tYnVmZmVylJOUKJYQAAAAAAAAAD5zEr0qVn28mzeyPAriZryUjAVudW1weZSMBWR0eXBllJOUjAJmNJSJiIeUUpQoSwOMATyUTk5OSv////9K/////0sAdJRiSwFLBIaUjAFDlHSUUpQu"
},
"_last_episode_starts": {
":type:": "<class 'numpy.ndarray'>",
":serialized:": "gAWVdAAAAAAAAACMEm51bXB5LmNvcmUubnVtZXJpY5SMC19mcm9tYnVmZmVylJOUKJYBAAAAAAAAAAGUjAVudW1weZSMBWR0eXBllJOUjAJiMZSJiIeUUpQoSwOMAXyUTk5OSv////9K/////0sAdJRiSwGFlIwBQ5R0lFKULg=="
},
"_last_original_obs": {
":type:": "<class 'numpy.ndarray'>",
":serialized:": "gAWVhQAAAAAAAACMEm51bXB5LmNvcmUubnVtZXJpY5SMC19mcm9tYnVmZmVylJOUKJYQAAAAAAAAAOs3Ab2JZVe+92uFPGH8iz6UjAVudW1weZSMBWR0eXBllJOUjAJmNJSJiIeUUpQoSwOMATyUTk5OSv////9K/////0sAdJRiSwFLBIaUjAFDlHSUUpQu"
},
"_episode_num": 3870,
"use_sde": false,
"sde_sample_freq": -1,
"_current_progress_remaining": 0.0,
"_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": 12500,
"observation_space": {
":type:": "<class 'gymnasium.spaces.box.Box'>",
":serialized:": "gAWVFgIAAAAAAACMFGd5bW5hc2l1bS5zcGFjZXMuYm94lIwDQm94lJOUKYGUfZQojAVkdHlwZZSMBW51bXB5lIwFZHR5cGWUk5SMAmY0lImIh5RSlChLA4wBPJROTk5K/////0r/////SwB0lGKMDWJvdW5kZWRfYmVsb3eUjBJudW1weS5jb3JlLm51bWVyaWOUjAtfZnJvbWJ1ZmZlcpSTlCiWBAAAAAAAAAABAQEBlGgIjAJiMZSJiIeUUpQoSwOMAXyUTk5OSv////9K/////0sAdJRiSwSFlIwBQ5R0lFKUjA1ib3VuZGVkX2Fib3ZllGgRKJYEAAAAAAAAAAEBAQGUaBVLBIWUaBl0lFKUjAZfc2hhcGWUSwSFlIwDbG93lGgRKJYQAAAAAAAAAJqZmcD//3//UHfWvv//f/+UaAtLBIWUaBl0lFKUjARoaWdolGgRKJYQAAAAAAAAAJqZmUD//39/UHfWPv//f3+UaAtLBIWUaBl0lFKUjAhsb3dfcmVwcpSMPVstNC44MDAwMDAyZSswMCAtMy40MDI4MjM1ZSszOCAtNC4xODg3OTAzZS0wMSAtMy40MDI4MjM1ZSszOF2UjAloaWdoX3JlcHKUjDlbNC44MDAwMDAyZSswMCAzLjQwMjgyMzVlKzM4IDQuMTg4NzkwM2UtMDEgMy40MDI4MjM1ZSszOF2UjApfbnBfcmFuZG9tlE51Yi4=",
"dtype": "float32",
"bounded_below": "[ True True True True]",
"bounded_above": "[ True True True True]",
"_shape": [
4
],
"low": "[-4.8000002e+00 -3.4028235e+38 -4.1887903e-01 -3.4028235e+38]",
"high": "[4.8000002e+00 3.4028235e+38 4.1887903e-01 3.4028235e+38]",
"low_repr": "[-4.8000002e+00 -3.4028235e+38 -4.1887903e-01 -3.4028235e+38]",
"high_repr": "[4.8000002e+00 3.4028235e+38 4.1887903e-01 3.4028235e+38]",
"_np_random": null
},
"action_space": {
":type:": "<class 'gymnasium.spaces.discrete.Discrete'>",
":serialized:": "gAWVpAEAAAAAAACMGWd5bW5hc2l1bS5zcGFjZXMuZGlzY3JldGWUjAhEaXNjcmV0ZZSTlCmBlH2UKIwBbpSMFW51bXB5LmNvcmUubXVsdGlhcnJheZSMBnNjYWxhcpSTlIwFbnVtcHmUjAVkdHlwZZSTlIwCaTiUiYiHlFKUKEsDjAE8lE5OTkr/////Sv////9LAHSUYkMIAgAAAAAAAACUhpRSlIwFc3RhcnSUaAhoDkMIAAAAAAAAAACUhpRSlIwGX3NoYXBllCmMBWR0eXBllGgOjApfbnBfcmFuZG9tlIwUbnVtcHkucmFuZG9tLl9waWNrbGWUjBBfX2dlbmVyYXRvcl9jdG9ylJOUjAVQQ0c2NJRoG4wUX19iaXRfZ2VuZXJhdG9yX2N0b3KUk5SGlFKUfZQojA1iaXRfZ2VuZXJhdG9ylIwFUENHNjSUjAVzdGF0ZZR9lChoJooQDnWcOQbNSf8IXpIt/BgeJowDaW5jlIoRbS2nfyIeZJ+nBuvILybEggB1jApoYXNfdWludDMylEsBjAh1aW50ZWdlcpSKBeqrbIMAdWJ1Yi4=",
"n": "2",
"start": "0",
"_shape": [],
"dtype": "int64",
"_np_random": "Generator(PCG64)"
},
"n_envs": 1,
"buffer_size": 1000000,
"batch_size": 32,
"learning_starts": 50000,
"tau": 1.0,
"gamma": 0.99,
"gradient_steps": 1,
"optimize_memory_usage": false,
"replay_buffer_class": {
":type:": "<class 'abc.ABCMeta'>",
":serialized:": "gAWVNQAAAAAAAACMIHN0YWJsZV9iYXNlbGluZXMzLmNvbW1vbi5idWZmZXJzlIwMUmVwbGF5QnVmZmVylJOULg==",
"__module__": "stable_baselines3.common.buffers",
"__doc__": "\n Replay buffer used in off-policy algorithms like SAC/TD3.\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 n_envs: Number of parallel environments\n :param optimize_memory_usage: Enable a memory efficient variant\n of the replay buffer which reduces by almost a factor two the memory used,\n at a cost of more complexity.\n See https://github.com/DLR-RM/stable-baselines3/issues/37#issuecomment-637501195\n and https://github.com/DLR-RM/stable-baselines3/pull/28#issuecomment-637559274\n Cannot be used in combination with handle_timeout_termination.\n :param handle_timeout_termination: Handle timeout termination (due to timelimit)\n separately and treat the task as infinite horizon task.\n https://github.com/DLR-RM/stable-baselines3/issues/284\n ",
"__init__": "<function ReplayBuffer.__init__ at 0x323793e50>",
"add": "<function ReplayBuffer.add at 0x323793ee0>",
"sample": "<function ReplayBuffer.sample at 0x323793f70>",
"_get_samples": "<function ReplayBuffer._get_samples at 0x3237a0040>",
"_maybe_cast_dtype": "<staticmethod object at 0x32379f250>",
"__abstractmethods__": "frozenset()",
"_abc_impl": "<_abc._abc_data object at 0x3237a1080>"
},
"replay_buffer_kwargs": {},
"train_freq": {
":type:": "<class 'stable_baselines3.common.type_aliases.TrainFreq'>",
":serialized:": "gAWVYQAAAAAAAACMJXN0YWJsZV9iYXNlbGluZXMzLmNvbW1vbi50eXBlX2FsaWFzZXOUjAlUcmFpbkZyZXGUk5RLBGgAjBJUcmFpbkZyZXF1ZW5jeVVuaXSUk5SMBHN0ZXCUhZRSlIaUgZQu"
},
"use_sde_at_warmup": false,
"exploration_initial_eps": 1.0,
"exploration_final_eps": 0.05,
"exploration_fraction": 0.1,
"target_update_interval": 10000,
"_n_calls": 100000,
"max_grad_norm": 10,
"exploration_rate": 0.05,
"lr_schedule": {
":type:": "<class 'function'>",
":serialized:": "gAWVIgMAAAAAAACMF2Nsb3VkcGlja2xlLmNsb3VkcGlja2xllIwOX21ha2VfZnVuY3Rpb26Uk5QoaACMDV9idWlsdGluX3R5cGWUk5SMCENvZGVUeXBllIWUUpQoSwFLAEsASwFLAUsTQwSIAFMAlE6FlCmMAV+UhZSMhi9Vc2Vycy9zdWJoYXNpc2gvRG9jdW1lbnRzL2lOZXVyb24vUmVpbmZvcmNlbWVudC1MZWFybmluZy9kcmwtMmVkL3JsX2RybC9saWIvcHl0aG9uMy45L3NpdGUtcGFja2FnZXMvc3RhYmxlX2Jhc2VsaW5lczMvY29tbW9uL3V0aWxzLnB5lIwEZnVuY5RLg0MCAAGUjAN2YWyUhZQpdJRSlH2UKIwLX19wYWNrYWdlX1+UjBhzdGFibGVfYmFzZWxpbmVzMy5jb21tb26UjAhfX25hbWVfX5SMHnN0YWJsZV9iYXNlbGluZXMzLmNvbW1vbi51dGlsc5SMCF9fZmlsZV9flIyGL1VzZXJzL3N1Ymhhc2lzaC9Eb2N1bWVudHMvaU5ldXJvbi9SZWluZm9yY2VtZW50LUxlYXJuaW5nL2RybC0yZWQvcmxfZHJsL2xpYi9weXRob24zLjkvc2l0ZS1wYWNrYWdlcy9zdGFibGVfYmFzZWxpbmVzMy9jb21tb24vdXRpbHMucHmUdU5OaACMEF9tYWtlX2VtcHR5X2NlbGyUk5QpUpSFlHSUUpRoAIwSX2Z1bmN0aW9uX3NldHN0YXRllJOUaB99lH2UKGgWaA2MDF9fcXVhbG5hbWVfX5SMGWNvbnN0YW50X2ZuLjxsb2NhbHM+LmZ1bmOUjA9fX2Fubm90YXRpb25zX1+UfZSMDl9fa3dkZWZhdWx0c19flE6MDF9fZGVmYXVsdHNfX5ROjApfX21vZHVsZV9flGgXjAdfX2RvY19flE6MC19fY2xvc3VyZV9flGgAjApfbWFrZV9jZWxslJOURz8aNuLrHEMthZRSlIWUjBdfY2xvdWRwaWNrbGVfc3VibW9kdWxlc5RdlIwLX19nbG9iYWxzX1+UfZR1hpSGUjAu"
},
"batch_norm_stats": [],
"batch_norm_stats_target": [],
"exploration_schedule": {
":type:": "<class 'function'>",
":serialized:": "gAWVxgMAAAAAAACMF2Nsb3VkcGlja2xlLmNsb3VkcGlja2xllIwOX21ha2VfZnVuY3Rpb26Uk5QoaACMDV9idWlsdGluX3R5cGWUk5SMCENvZGVUeXBllIWUUpQoSwFLAEsASwFLBEsTQyxkAXwAGACIAWsEchCIAFMAiAJkAXwAGACIAIgCGAAUAIgBGwAXAFMAZABTAJROSwGGlCmMEnByb2dyZXNzX3JlbWFpbmluZ5SFlIyGL1VzZXJzL3N1Ymhhc2lzaC9Eb2N1bWVudHMvaU5ldXJvbi9SZWluZm9yY2VtZW50LUxlYXJuaW5nL2RybC0yZWQvcmxfZHJsL2xpYi9weXRob24zLjkvc2l0ZS1wYWNrYWdlcy9zdGFibGVfYmFzZWxpbmVzMy9jb21tb24vdXRpbHMucHmUjARmdW5jlEtxQwYAAQwBBAKUjANlbmSUjAxlbmRfZnJhY3Rpb26UjAVzdGFydJSHlCl0lFKUfZQojAtfX3BhY2thZ2VfX5SMGHN0YWJsZV9iYXNlbGluZXMzLmNvbW1vbpSMCF9fbmFtZV9flIwec3RhYmxlX2Jhc2VsaW5lczMuY29tbW9uLnV0aWxzlIwIX19maWxlX1+UjIYvVXNlcnMvc3ViaGFzaXNoL0RvY3VtZW50cy9pTmV1cm9uL1JlaW5mb3JjZW1lbnQtTGVhcm5pbmcvZHJsLTJlZC9ybF9kcmwvbGliL3B5dGhvbjMuOS9zaXRlLXBhY2thZ2VzL3N0YWJsZV9iYXNlbGluZXMzL2NvbW1vbi91dGlscy5weZR1Tk5oAIwQX21ha2VfZW1wdHlfY2VsbJSTlClSlGgdKVKUaB0pUpSHlHSUUpRoAIwSX2Z1bmN0aW9uX3NldHN0YXRllJOUaCN9lH2UKGgYaA2MDF9fcXVhbG5hbWVfX5SMG2dldF9saW5lYXJfZm4uPGxvY2Fscz4uZnVuY5SMD19fYW5ub3RhdGlvbnNfX5R9lChoCowIYnVpbHRpbnOUjAVmbG9hdJSTlIwGcmV0dXJulGgudYwOX19rd2RlZmF1bHRzX1+UTowMX19kZWZhdWx0c19flE6MCl9fbW9kdWxlX1+UaBmMB19fZG9jX1+UTowLX19jbG9zdXJlX1+UaACMCl9tYWtlX2NlbGyUk5RHP6mZmZmZmZqFlFKUaDZHP7mZmZmZmZqFlFKUaDZHP/AAAAAAAACFlFKUh5SMF19jbG91ZHBpY2tsZV9zdWJtb2R1bGVzlF2UjAtfX2dsb2JhbHNfX5R9lHWGlIZSMC4="
}
} |