ledmands commited on
Commit
baeb5f8
1 Parent(s): 678953c

Renamed pull_config to get_config. Updated get_config script, working as I'd like

Browse files
agents/configtest.json DELETED
@@ -1,105 +0,0 @@
1
- {
2
- "policy_class": {
3
- ":type:": "<class 'abc.ABCMeta'>",
4
- "__module__": "stable_baselines3.dqn.policies",
5
- "__doc__": "\n Policy class for DQN when using images as input.\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 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 ",
6
- "__init__": "<function CnnPolicy.__init__ at 0x7a562f785c60>",
7
- "__abstractmethods__": "frozenset()",
8
- "_abc_impl": "<_abc._abc_data object at 0x7a562f798540>"
9
- },
10
- "verbose": 1,
11
- "policy_kwargs": {},
12
- "num_timesteps": 6500000,
13
- "_total_timesteps": 6500000,
14
- "_num_timesteps_at_start": 5500000,
15
- "seed": null,
16
- "action_noise": null,
17
- "start_time": 1715714815567229137,
18
- "learning_rate": 5e-05,
19
- "tensorboard_log": "./",
20
- "_last_obs": {
21
- ":type:": "<class 'numpy.ndarray'>"
22
- },
23
- "_last_episode_starts": {
24
- ":type:": "<class 'numpy.ndarray'>"
25
- },
26
- "_last_original_obs": {
27
- ":type:": "<class 'numpy.ndarray'>"
28
- },
29
- "_episode_num": 6118,
30
- "use_sde": false,
31
- "sde_sample_freq": -1,
32
- "_current_progress_remaining": 0.0,
33
- "_stats_window_size": 100,
34
- "ep_info_buffer": {
35
- ":type:": "<class 'collections.deque'>"
36
- },
37
- "ep_success_buffer": {
38
- ":type:": "<class 'collections.deque'>"
39
- },
40
- "_n_updates": 1612500,
41
- "observation_space": {
42
- ":type:": "<class 'gymnasium.spaces.box.Box'>",
43
- "dtype": "uint8",
44
- "bounded_below": "[[[ True True True ... True True True]\n [ True True True ... True True True]\n [ True True True ... True True True]\n ...\n [ True True True ... True True True]\n [ True True True ... True True True]\n [ True True True ... True True True]]\n\n [[ True True True ... True True True]\n [ True True True ... True True True]\n [ True True True ... True True True]\n ...\n [ True True True ... True True True]\n [ True True True ... True True True]\n [ True True True ... True True True]]\n\n [[ True True True ... True True True]\n [ True True True ... True True True]\n [ True True True ... True True True]\n ...\n [ True True True ... True True True]\n [ True True True ... True True True]\n [ True True True ... True True True]]]",
45
- "bounded_above": "[[[ True True True ... True True True]\n [ True True True ... True True True]\n [ True True True ... True True True]\n ...\n [ True True True ... True True True]\n [ True True True ... True True True]\n [ True True True ... True True True]]\n\n [[ True True True ... True True True]\n [ True True True ... True True True]\n [ True True True ... True True True]\n ...\n [ True True True ... True True True]\n [ True True True ... True True True]\n [ True True True ... True True True]]\n\n [[ True True True ... True True True]\n [ True True True ... True True True]\n [ True True True ... True True True]\n ...\n [ True True True ... True True True]\n [ True True True ... True True True]\n [ True True True ... True True True]]]",
46
- "_shape": [
47
- 3,
48
- 250,
49
- 160
50
- ],
51
- "low": "[[[0 0 0 ... 0 0 0]\n [0 0 0 ... 0 0 0]\n [0 0 0 ... 0 0 0]\n ...\n [0 0 0 ... 0 0 0]\n [0 0 0 ... 0 0 0]\n [0 0 0 ... 0 0 0]]\n\n [[0 0 0 ... 0 0 0]\n [0 0 0 ... 0 0 0]\n [0 0 0 ... 0 0 0]\n ...\n [0 0 0 ... 0 0 0]\n [0 0 0 ... 0 0 0]\n [0 0 0 ... 0 0 0]]\n\n [[0 0 0 ... 0 0 0]\n [0 0 0 ... 0 0 0]\n [0 0 0 ... 0 0 0]\n ...\n [0 0 0 ... 0 0 0]\n [0 0 0 ... 0 0 0]\n [0 0 0 ... 0 0 0]]]",
52
- "high": "[[[255 255 255 ... 255 255 255]\n [255 255 255 ... 255 255 255]\n [255 255 255 ... 255 255 255]\n ...\n [255 255 255 ... 255 255 255]\n [255 255 255 ... 255 255 255]\n [255 255 255 ... 255 255 255]]\n\n [[255 255 255 ... 255 255 255]\n [255 255 255 ... 255 255 255]\n [255 255 255 ... 255 255 255]\n ...\n [255 255 255 ... 255 255 255]\n [255 255 255 ... 255 255 255]\n [255 255 255 ... 255 255 255]]\n\n [[255 255 255 ... 255 255 255]\n [255 255 255 ... 255 255 255]\n [255 255 255 ... 255 255 255]\n ...\n [255 255 255 ... 255 255 255]\n [255 255 255 ... 255 255 255]\n [255 255 255 ... 255 255 255]]]",
53
- "low_repr": "0",
54
- "high_repr": "255",
55
- "_np_random": "Generator(PCG64)"
56
- },
57
- "action_space": {
58
- ":type:": "<class 'gymnasium.spaces.discrete.Discrete'>",
59
- "n": "5",
60
- "start": "0",
61
- "_shape": [],
62
- "dtype": "int64",
63
- "_np_random": "Generator(PCG64)"
64
- },
65
- "n_envs": 1,
66
- "buffer_size": 70000,
67
- "batch_size": 64,
68
- "learning_starts": 50000,
69
- "tau": 1.0,
70
- "gamma": 0.999,
71
- "gradient_steps": 1,
72
- "optimize_memory_usage": false,
73
- "replay_buffer_class": {
74
- ":type:": "<class 'abc.ABCMeta'>",
75
- "__module__": "stable_baselines3.common.buffers",
76
- "__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 ",
77
- "__init__": "<function ReplayBuffer.__init__ at 0x7a562f95dc60>",
78
- "add": "<function ReplayBuffer.add at 0x7a562f95dcf0>",
79
- "sample": "<function ReplayBuffer.sample at 0x7a562f95dd80>",
80
- "_get_samples": "<function ReplayBuffer._get_samples at 0x7a562f95de10>",
81
- "_maybe_cast_dtype": "<staticmethod(<function ReplayBuffer._maybe_cast_dtype at 0x7a562f95dea0>)>",
82
- "__abstractmethods__": "frozenset()",
83
- "_abc_impl": "<_abc._abc_data object at 0x7a562f962200>"
84
- },
85
- "replay_buffer_kwargs": {},
86
- "train_freq": {
87
- ":type:": "<class 'stable_baselines3.common.type_aliases.TrainFreq'>"
88
- },
89
- "use_sde_at_warmup": false,
90
- "exploration_initial_eps": 1.0,
91
- "exploration_final_eps": 0.05,
92
- "exploration_fraction": 0.3,
93
- "target_update_interval": 5000,
94
- "_n_calls": 6500000,
95
- "max_grad_norm": 10,
96
- "exploration_rate": 0.05,
97
- "lr_schedule": {
98
- ":type:": "<class 'function'>"
99
- },
100
- "batch_norm_stats": [],
101
- "batch_norm_stats_target": [],
102
- "exploration_schedule": {
103
- ":type:": "<class 'function'>"
104
- }
105
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
agents/pull_config.py → get_config.py RENAMED
@@ -1,11 +1,17 @@
1
  import zipfile
2
  import json
3
- # Need to add option flags to specify the file path to the agent
 
 
 
 
4
 
5
- archive = zipfile.ZipFile("dqn_v2-5/ALE-Pacman-v5.zip", "r")
 
 
 
6
  file = archive.open("data")
7
- byte_file = file.read()
8
- json_file = json.loads(byte_file.decode("utf-8"))
9
 
10
  # Only want to remove serialized objects from dictionary
11
  val_to_remove = ":serialized:"
@@ -16,8 +22,8 @@ for key in json_file.keys():
16
  if val_to_remove in json_file[key].keys():
17
  json_file[key].pop(val_to_remove)
18
 
19
- outfile = open("configtest.json", "w")
20
- json.dump(json_file, outfile, indent=2,)
21
 
22
  file.close()
23
  outfile.close()
 
1
  import zipfile
2
  import json
3
+ import argparse
4
+ parser = argparse.ArgumentParser()
5
+ parser.add_argument("-f", "--filepath", help="Specify a filepath to an agent's zip file, .zip extension required.", type=str, required=True)
6
+ parser.add_argument("-s", "--savefile", help="Specify a name and location for the saved configuration file. Will be saved in .json format.", default="config")
7
+ args = parser.parse_args()
8
 
9
+ filepath = args.filepath
10
+ savefile = args.savefile
11
+
12
+ archive = zipfile.ZipFile(filepath, "r")
13
  file = archive.open("data")
14
+ json_file = json.loads(file.read().decode("utf-8"))
 
15
 
16
  # Only want to remove serialized objects from dictionary
17
  val_to_remove = ":serialized:"
 
22
  if val_to_remove in json_file[key].keys():
23
  json_file[key].pop(val_to_remove)
24
 
25
+ outfile = open(f"{savefile}.json", "w")
26
+ outfile.write(json.dumps(json_file, indent=2))
27
 
28
  file.close()
29
  outfile.close()