File size: 14,262 Bytes
25cf054
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
{
    "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 0x7b8d265b7880>",
        "_build": "<function DQNPolicy._build at 0x7b8d265b7910>",
        "make_q_net": "<function DQNPolicy.make_q_net at 0x7b8d265b79a0>",
        "forward": "<function DQNPolicy.forward at 0x7b8d265b7a30>",
        "_predict": "<function DQNPolicy._predict at 0x7b8d265b7ac0>",
        "_get_constructor_parameters": "<function DQNPolicy._get_constructor_parameters at 0x7b8d265b7b50>",
        "set_training_mode": "<function DQNPolicy.set_training_mode at 0x7b8d265b7be0>",
        "__abstractmethods__": "frozenset()",
        "_abc_impl": "<_abc._abc_data object at 0x7b8d265c9bc0>"
    },
    "verbose": 1,
    "policy_kwargs": {
        "net_arch": [
            256,
            256
        ]
    },
    "num_timesteps": 120000,
    "_total_timesteps": 120000,
    "_num_timesteps_at_start": 0,
    "seed": null,
    "action_noise": null,
    "start_time": 1708485765879044861,
    "learning_rate": 0.004,
    "tensorboard_log": null,
    "_last_obs": {
        ":type:": "<class 'numpy.ndarray'>",
        ":serialized:": "gAWVfQAAAAAAAACMEm51bXB5LmNvcmUubnVtZXJpY5SMC19mcm9tYnVmZmVylJOUKJYIAAAAAAAAAID4a7/u3x89lIwFbnVtcHmUjAVkdHlwZZSTlIwCZjSUiYiHlFKUKEsDjAE8lE5OTkr/////Sv////9LAHSUYksBSwKGlIwBQ5R0lFKULg=="
    },
    "_last_episode_starts": {
        ":type:": "<class 'numpy.ndarray'>",
        ":serialized:": "gAWVdAAAAAAAAACMEm51bXB5LmNvcmUubnVtZXJpY5SMC19mcm9tYnVmZmVylJOUKJYBAAAAAAAAAAGUjAVudW1weZSMBWR0eXBllJOUjAJiMZSJiIeUUpQoSwOMAXyUTk5OSv////9K/////0sAdJRiSwGFlIwBQ5R0lFKULg=="
    },
    "_last_original_obs": {
        ":type:": "<class 'numpy.ndarray'>",
        ":serialized:": "gAWVfQAAAAAAAACMEm51bXB5LmNvcmUubnVtZXJpY5SMC19mcm9tYnVmZmVylJOUKJYIAAAAAAAAAH/2db9+4RE9lIwFbnVtcHmUjAVkdHlwZZSTlIwCZjSUiYiHlFKUKEsDjAE8lE5OTkr/////Sv////9LAHSUYksBSwKGlIwBQ5R0lFKULg=="
    },
    "_episode_num": 720,
    "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": 59504,
    "observation_space": {
        ":type:": "<class 'gymnasium.spaces.box.Box'>",
        ":serialized:": "gAWVpAEAAAAAAACMFGd5bW5hc2l1bS5zcGFjZXMuYm94lIwDQm94lJOUKYGUfZQojAVkdHlwZZSMBW51bXB5lIwFZHR5cGWUk5SMAmY0lImIh5RSlChLA4wBPJROTk5K/////0r/////SwB0lGKMDWJvdW5kZWRfYmVsb3eUjBJudW1weS5jb3JlLm51bWVyaWOUjAtfZnJvbWJ1ZmZlcpSTlCiWAgAAAAAAAAABAZRoCIwCYjGUiYiHlFKUKEsDjAF8lE5OTkr/////Sv////9LAHSUYksChZSMAUOUdJRSlIwNYm91bmRlZF9hYm92ZZRoESiWAgAAAAAAAAABAZRoFUsChZRoGXSUUpSMBl9zaGFwZZRLAoWUjANsb3eUaBEolggAAAAAAAAAmpmZvylcj72UaAtLAoWUaBl0lFKUjARoaWdolGgRKJYIAAAAAAAAAJqZGT8pXI89lGgLSwKFlGgZdJRSlIwIbG93X3JlcHKUjA1bLTEuMiAgLTAuMDddlIwJaGlnaF9yZXBylIwLWzAuNiAgMC4wN12UjApfbnBfcmFuZG9tlE51Yi4=",
        "dtype": "float32",
        "bounded_below": "[ True  True]",
        "bounded_above": "[ True  True]",
        "_shape": [
            2
        ],
        "low": "[-1.2  -0.07]",
        "high": "[0.6  0.07]",
        "low_repr": "[-1.2  -0.07]",
        "high_repr": "[0.6  0.07]",
        "_np_random": null
    },
    "action_space": {
        ":type:": "<class 'gymnasium.spaces.discrete.Discrete'>",
        ":serialized:": "gAWVowEAAAAAAACMGWd5bW5hc2l1bS5zcGFjZXMuZGlzY3JldGWUjAhEaXNjcmV0ZZSTlCmBlH2UKIwBbpSMFW51bXB5LmNvcmUubXVsdGlhcnJheZSMBnNjYWxhcpSTlIwFbnVtcHmUjAVkdHlwZZSTlIwCaTiUiYiHlFKUKEsDjAE8lE5OTkr/////Sv////9LAHSUYkMIAwAAAAAAAACUhpRSlIwFc3RhcnSUaAhoDkMIAAAAAAAAAACUhpRSlIwGX3NoYXBllCmMBWR0eXBllGgOjApfbnBfcmFuZG9tlIwUbnVtcHkucmFuZG9tLl9waWNrbGWUjBBfX2dlbmVyYXRvcl9jdG9ylJOUjAVQQ0c2NJRoG4wUX19iaXRfZ2VuZXJhdG9yX2N0b3KUk5SGlFKUfZQojA1iaXRfZ2VuZXJhdG9ylIwFUENHNjSUjAVzdGF0ZZR9lChoJooQk9aXLTU0T+puMPTU31/LSYwDaW5jlIoQlV5dRRqtFXWVH+u4dHM2aHWMCmhhc191aW50MzKUSwGMCHVpbnRlZ2VylIoF4Wi/+QB1YnViLg==",
        "n": "3",
        "start": "0",
        "_shape": [],
        "dtype": "int64",
        "_np_random": "Generator(PCG64)"
    },
    "n_envs": 1,
    "buffer_size": 10000,
    "batch_size": 128,
    "learning_starts": 1000,
    "tau": 1.0,
    "gamma": 0.98,
    "gradient_steps": 8,
    "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 0x7b8d265a3d00>",
        "add": "<function ReplayBuffer.add at 0x7b8d265a3d90>",
        "sample": "<function ReplayBuffer.sample at 0x7b8d265a3e20>",
        "_get_samples": "<function ReplayBuffer._get_samples at 0x7b8d265a3eb0>",
        "__abstractmethods__": "frozenset()",
        "_abc_impl": "<_abc._abc_data object at 0x7b8d30c17e00>"
    },
    "replay_buffer_kwargs": {},
    "train_freq": {
        ":type:": "<class 'stable_baselines3.common.type_aliases.TrainFreq'>",
        ":serialized:": "gAWVYQAAAAAAAACMJXN0YWJsZV9iYXNlbGluZXMzLmNvbW1vbi50eXBlX2FsaWFzZXOUjAlUcmFpbkZyZXGUk5RLEGgAjBJUcmFpbkZyZXF1ZW5jeVVuaXSUk5SMBHN0ZXCUhZRSlIaUgZQu"
    },
    "use_sde_at_warmup": false,
    "exploration_initial_eps": 1.0,
    "exploration_final_eps": 0.07,
    "exploration_fraction": 0.2,
    "target_update_interval": 600,
    "_n_calls": 120000,
    "max_grad_norm": 10,
    "exploration_rate": 0.07,
    "lr_schedule": {
        ":type:": "<class 'function'>",
        ":serialized:": "gAWVxQIAAAAAAACMF2Nsb3VkcGlja2xlLmNsb3VkcGlja2xllIwOX21ha2VfZnVuY3Rpb26Uk5QoaACMDV9idWlsdGluX3R5cGWUk5SMCENvZGVUeXBllIWUUpQoSwFLAEsASwFLAUsTQwSIAFMAlE6FlCmMAV+UhZSMSS91c3IvbG9jYWwvbGliL3B5dGhvbjMuMTAvZGlzdC1wYWNrYWdlcy9zdGFibGVfYmFzZWxpbmVzMy9jb21tb24vdXRpbHMucHmUjARmdW5jlEuEQwIEAZSMA3ZhbJSFlCl0lFKUfZQojAtfX3BhY2thZ2VfX5SMGHN0YWJsZV9iYXNlbGluZXMzLmNvbW1vbpSMCF9fbmFtZV9flIwec3RhYmxlX2Jhc2VsaW5lczMuY29tbW9uLnV0aWxzlIwIX19maWxlX1+UjEkvdXNyL2xvY2FsL2xpYi9weXRob24zLjEwL2Rpc3QtcGFja2FnZXMvc3RhYmxlX2Jhc2VsaW5lczMvY29tbW9uL3V0aWxzLnB5lHVOTmgAjBBfbWFrZV9lbXB0eV9jZWxslJOUKVKUhZR0lFKUjBxjbG91ZHBpY2tsZS5jbG91ZHBpY2tsZV9mYXN0lIwSX2Z1bmN0aW9uX3NldHN0YXRllJOUaB99lH2UKGgWaA2MDF9fcXVhbG5hbWVfX5SMGWNvbnN0YW50X2ZuLjxsb2NhbHM+LmZ1bmOUjA9fX2Fubm90YXRpb25zX1+UfZSMDl9fa3dkZWZhdWx0c19flE6MDF9fZGVmYXVsdHNfX5ROjApfX21vZHVsZV9flGgXjAdfX2RvY19flE6MC19fY2xvc3VyZV9flGgAjApfbWFrZV9jZWxslJOURz9wYk3S8an8hZRSlIWUjBdfY2xvdWRwaWNrbGVfc3VibW9kdWxlc5RdlIwLX19nbG9iYWxzX1+UfZR1hpSGUjAu"
    },
    "batch_norm_stats": [],
    "batch_norm_stats_target": [],
    "exploration_schedule": {
        ":type:": "<class 'function'>",
        ":serialized:": "gAWVZQMAAAAAAACMF2Nsb3VkcGlja2xlLmNsb3VkcGlja2xllIwOX21ha2VfZnVuY3Rpb26Uk5QoaACMDV9idWlsdGluX3R5cGWUk5SMCENvZGVUeXBllIWUUpQoSwFLAEsASwFLBEsTQyhkAXwAGACIAWsEcgiIAFMAiAJkAXwAGACIAIgCGAAUAIgBGwAXAFMAlE5LAYaUKYwScHJvZ3Jlc3NfcmVtYWluaW5nlIWUjEkvdXNyL2xvY2FsL2xpYi9weXRob24zLjEwL2Rpc3QtcGFja2FnZXMvc3RhYmxlX2Jhc2VsaW5lczMvY29tbW9uL3V0aWxzLnB5lIwEZnVuY5RLckMGDAEEARgClIwDZW5klIwMZW5kX2ZyYWN0aW9ulIwFc3RhcnSUh5QpdJRSlH2UKIwLX19wYWNrYWdlX1+UjBhzdGFibGVfYmFzZWxpbmVzMy5jb21tb26UjAhfX25hbWVfX5SMHnN0YWJsZV9iYXNlbGluZXMzLmNvbW1vbi51dGlsc5SMCF9fZmlsZV9flIxJL3Vzci9sb2NhbC9saWIvcHl0aG9uMy4xMC9kaXN0LXBhY2thZ2VzL3N0YWJsZV9iYXNlbGluZXMzL2NvbW1vbi91dGlscy5weZR1Tk5oAIwQX21ha2VfZW1wdHlfY2VsbJSTlClSlGgdKVKUaB0pUpSHlHSUUpSMHGNsb3VkcGlja2xlLmNsb3VkcGlja2xlX2Zhc3SUjBJfZnVuY3Rpb25fc2V0c3RhdGWUk5RoI32UfZQoaBhoDYwMX19xdWFsbmFtZV9flIwbZ2V0X2xpbmVhcl9mbi48bG9jYWxzPi5mdW5jlIwPX19hbm5vdGF0aW9uc19flH2UKGgKjAhidWlsdGluc5SMBWZsb2F0lJOUjAZyZXR1cm6UaC91jA5fX2t3ZGVmYXVsdHNfX5ROjAxfX2RlZmF1bHRzX1+UTowKX19tb2R1bGVfX5RoGYwHX19kb2NfX5ROjAtfX2Nsb3N1cmVfX5RoAIwKX21ha2VfY2VsbJSTlEc/seuFHrhR7IWUUpRoN0c/yZmZmZmZmoWUUpRoN0c/8AAAAAAAAIWUUpSHlIwXX2Nsb3VkcGlja2xlX3N1Ym1vZHVsZXOUXZSMC19fZ2xvYmFsc19flH2UdYaUhlIwLg=="
    }
}