Agent training resumed from the checkpoint.
Browse files- SoccerTwos.onnx +1 -1
- SoccerTwos/SoccerTwos-62706.onnx +3 -0
- SoccerTwos/SoccerTwos-62706.pt +3 -0
- SoccerTwos/checkpoint.pt +1 -1
- SoccerTwos/events.out.tfevents.1734349455.27e73ea84d89.1006.0 +3 -0
- config.json +1 -1
- configuration.yaml +2 -2
- run_logs/Player-0.log +16 -20
- run_logs/timers.json +122 -194
- run_logs/training_status.json +14 -5
SoccerTwos.onnx
CHANGED
@@ -1,3 +1,3 @@
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:
|
3 |
size 1768747
|
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:abb90393f0daa23837236b71c41bcefef312b0d72ec7513cdf2970ab0075f7cc
|
3 |
size 1768747
|
SoccerTwos/SoccerTwos-62706.onnx
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:abb90393f0daa23837236b71c41bcefef312b0d72ec7513cdf2970ab0075f7cc
|
3 |
+
size 1768747
|
SoccerTwos/SoccerTwos-62706.pt
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:1563a90bcaaef590f20710c33d8e7562b79b496d9a530ab68996f79f7a3d4c3e
|
3 |
+
size 28430110
|
SoccerTwos/checkpoint.pt
CHANGED
@@ -1,3 +1,3 @@
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:
|
3 |
size 28429366
|
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:139243f02946be512a3cc41298a01b49b38338c7985ee27ae33d24b90c0598c3
|
3 |
size 28429366
|
SoccerTwos/events.out.tfevents.1734349455.27e73ea84d89.1006.0
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:e549e3f41fa939f520967180b69f7f38c4287974ba7c5071dc8cccbb4b0cc820
|
3 |
+
size 22050
|
config.json
CHANGED
@@ -1 +1 @@
|
|
1 |
-
{"default_settings": null, "behaviors": {"SoccerTwos": {"trainer_type": "poca", "hyperparameters": {"batch_size": 2048, "buffer_size": 20480, "learning_rate": 0.0003, "beta": 0.005, "epsilon": 0.2, "lambd": 0.95, "num_epoch": 3, "learning_rate_schedule": "constant", "beta_schedule": "constant", "epsilon_schedule": "constant"}, "checkpoint_interval": 500000, "network_settings": {"normalize": false, "hidden_units": 512, "num_layers": 2, "vis_encode_type": "simple", "memory": null, "goal_conditioning_type": "hyper", "deterministic": false}, "reward_signals": {"extrinsic": {"gamma": 0.99, "strength": 1.0, "network_settings": {"normalize": false, "hidden_units": 128, "num_layers": 2, "vis_encode_type": "simple", "memory": null, "goal_conditioning_type": "hyper", "deterministic": false}}}, "init_path": null, "keep_checkpoints": 5, "even_checkpoints": false, "max_steps": 5000000, "time_horizon": 1000, "summary_freq": 10000, "threaded": false, "self_play": {"save_steps": 50000, "team_change": 200000, "swap_steps": 2000, "window": 10, "play_against_latest_model_ratio": 0.5, "initial_elo": 1200.0}, "behavioral_cloning": null}}, "env_settings": {"env_path": "train-soccer/SoccerTwos/SoccerTwos.x86_64", "env_args": null, "base_port": 5005, "num_envs": 1, "num_areas": 1, "timeout_wait": 60, "seed": -1, "max_lifetime_restarts": 10, "restarts_rate_limit_n": 1, "restarts_rate_limit_period_s": 60}, "engine_settings": {"width": 84, "height": 84, "quality_level": 5, "time_scale": 20, "target_frame_rate": -1, "capture_frame_rate": 60, "no_graphics": true, "no_graphics_monitor": false}, "environment_parameters": null, "checkpoint_settings": {"run_id": "SoccerTwosNew", "initialize_from": null, "load_model": false, "resume":
|
|
|
1 |
+
{"default_settings": null, "behaviors": {"SoccerTwos": {"trainer_type": "poca", "hyperparameters": {"batch_size": 2048, "buffer_size": 20480, "learning_rate": 0.0003, "beta": 0.005, "epsilon": 0.2, "lambd": 0.95, "num_epoch": 3, "learning_rate_schedule": "constant", "beta_schedule": "constant", "epsilon_schedule": "constant"}, "checkpoint_interval": 500000, "network_settings": {"normalize": false, "hidden_units": 512, "num_layers": 2, "vis_encode_type": "simple", "memory": null, "goal_conditioning_type": "hyper", "deterministic": false}, "reward_signals": {"extrinsic": {"gamma": 0.99, "strength": 1.0, "network_settings": {"normalize": false, "hidden_units": 128, "num_layers": 2, "vis_encode_type": "simple", "memory": null, "goal_conditioning_type": "hyper", "deterministic": false}}}, "init_path": null, "keep_checkpoints": 5, "even_checkpoints": false, "max_steps": 5000000, "time_horizon": 1000, "summary_freq": 10000, "threaded": false, "self_play": {"save_steps": 50000, "team_change": 200000, "swap_steps": 2000, "window": 10, "play_against_latest_model_ratio": 0.5, "initial_elo": 1200.0}, "behavioral_cloning": null}}, "env_settings": {"env_path": "train-soccer/SoccerTwos/SoccerTwos.x86_64", "env_args": null, "base_port": 5005, "num_envs": 1, "num_areas": 1, "timeout_wait": 60, "seed": -1, "max_lifetime_restarts": 10, "restarts_rate_limit_n": 1, "restarts_rate_limit_period_s": 60}, "engine_settings": {"width": 84, "height": 84, "quality_level": 5, "time_scale": 20.0, "target_frame_rate": -1, "capture_frame_rate": 60, "no_graphics": true, "no_graphics_monitor": false}, "environment_parameters": null, "checkpoint_settings": {"run_id": "SoccerTwosNew", "initialize_from": null, "load_model": false, "resume": true, "force": true, "train_model": false, "inference": false, "results_dir": "results"}, "torch_settings": {"device": null}, "debug": false}
|
configuration.yaml
CHANGED
@@ -64,7 +64,7 @@ engine_settings:
|
|
64 |
width: 84
|
65 |
height: 84
|
66 |
quality_level: 5
|
67 |
-
time_scale: 20
|
68 |
target_frame_rate: -1
|
69 |
capture_frame_rate: 60
|
70 |
no_graphics: true
|
@@ -74,7 +74,7 @@ checkpoint_settings:
|
|
74 |
run_id: SoccerTwosNew
|
75 |
initialize_from: null
|
76 |
load_model: false
|
77 |
-
resume:
|
78 |
force: true
|
79 |
train_model: false
|
80 |
inference: false
|
|
|
64 |
width: 84
|
65 |
height: 84
|
66 |
quality_level: 5
|
67 |
+
time_scale: 20.0
|
68 |
target_frame_rate: -1
|
69 |
capture_frame_rate: 60
|
70 |
no_graphics: true
|
|
|
74 |
run_id: SoccerTwosNew
|
75 |
initialize_from: null
|
76 |
load_model: false
|
77 |
+
resume: true
|
78 |
force: true
|
79 |
train_model: false
|
80 |
inference: false
|
run_logs/Player-0.log
CHANGED
@@ -34,7 +34,7 @@ ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM default
|
|
34 |
FMOD failed to initialize the output device.: "Error initializing output device. " (60)
|
35 |
FMOD initialized on nosound output
|
36 |
Begin MonoManager ReloadAssembly
|
37 |
-
- Completed reload, in 0.
|
38 |
ERROR: Shader Sprites/Default shader is not supported on this GPU (none of subshaders/fallbacks are suitable)
|
39 |
ERROR: Shader Sprites/Mask shader is not supported on this GPU (none of subshaders/fallbacks are suitable)
|
40 |
ERROR: Shader Legacy Shaders/VertexLit shader is not supported on this GPU (none of subshaders/fallbacks are suitable)
|
@@ -59,7 +59,7 @@ ERROR: Shader Standard shader is not supported on this GPU (none of subshaders/f
|
|
59 |
WARNING: Shader Unsupported: 'Standard' - All subshaders removed
|
60 |
WARNING: Shader Did you use #pragma only_renderers and omit this platform?
|
61 |
WARNING: Shader If subshaders removal was intentional, you may have forgotten turning Fallback off?
|
62 |
-
UnloadTime: 1.
|
63 |
Registered Communicator in Agent.
|
64 |
ERROR: Shader UI/Default shader is not supported on this GPU (none of subshaders/fallbacks are suitable)
|
65 |
requesting resize 84 x 84
|
@@ -74,16 +74,12 @@ TOO LONG
|
|
74 |
TOO LONG
|
75 |
TOO LONG
|
76 |
TOO LONG
|
77 |
-
TOO LONG
|
78 |
-
TOO LONG
|
79 |
-
TOO LONG
|
80 |
-
TOO LONG
|
81 |
Setting up 1 worker threads for Enlighten.
|
82 |
Memory Statistics:
|
83 |
[ALLOC_TEMP_TLS] TLS Allocator
|
84 |
StackAllocators :
|
85 |
[ALLOC_TEMP_MAIN]
|
86 |
-
Peak usage frame count: [8.0 KB-16.0 KB]:
|
87 |
Initial Block Size 4.0 MB
|
88 |
Current Block Size 4.0 MB
|
89 |
Peak Allocated Bytes 2.1 MB
|
@@ -199,23 +195,23 @@ Memory Statistics:
|
|
199 |
Peak Allocated Bytes 0 B
|
200 |
Overflow Count 0
|
201 |
[ALLOC_DEFAULT] Dual Thread Allocator
|
202 |
-
Peak main deferred allocation count
|
203 |
[ALLOC_BUCKET]
|
204 |
Large Block size 4.0 MB
|
205 |
Used Block count 1
|
206 |
Peak Allocated bytes 1.0 MB
|
207 |
[ALLOC_DEFAULT_MAIN]
|
208 |
-
Peak usage frame count: [
|
209 |
Requested Block Size 16.0 MB
|
210 |
Peak Block count 1
|
211 |
-
Peak Allocated memory
|
212 |
-
Peak Large allocation bytes 0
|
213 |
[ALLOC_DEFAULT_THREAD]
|
214 |
-
Peak usage frame count: [
|
215 |
Requested Block Size 16.0 MB
|
216 |
Peak Block count 1
|
217 |
-
Peak Allocated memory
|
218 |
-
Peak Large allocation bytes
|
219 |
[ALLOC_TEMP_JOB_1_FRAME]
|
220 |
Initial Block Size 2.0 MB
|
221 |
Used Block Count 1
|
@@ -243,13 +239,13 @@ Memory Statistics:
|
|
243 |
Used Block count 1
|
244 |
Peak Allocated bytes 1.0 MB
|
245 |
[ALLOC_GFX_MAIN]
|
246 |
-
Peak usage frame count: [32.0 KB-64.0 KB]:
|
247 |
Requested Block Size 16.0 MB
|
248 |
Peak Block count 1
|
249 |
Peak Allocated memory 65.6 KB
|
250 |
Peak Large allocation bytes 0 B
|
251 |
[ALLOC_GFX_THREAD]
|
252 |
-
Peak usage frame count: [128.0 KB-256.0 KB]:
|
253 |
Requested Block Size 16.0 MB
|
254 |
Peak Block count 1
|
255 |
Peak Allocated memory 173.5 KB
|
@@ -261,13 +257,13 @@ Memory Statistics:
|
|
261 |
Used Block count 1
|
262 |
Peak Allocated bytes 1.0 MB
|
263 |
[ALLOC_CACHEOBJECTS_MAIN]
|
264 |
-
Peak usage frame count: [0.5 MB-1.0 MB]:
|
265 |
Requested Block Size 4.0 MB
|
266 |
Peak Block count 1
|
267 |
Peak Allocated memory 0.6 MB
|
268 |
Peak Large allocation bytes 0 B
|
269 |
[ALLOC_CACHEOBJECTS_THREAD]
|
270 |
-
Peak usage frame count: [0.5 MB-1.0 MB]:
|
271 |
Requested Block Size 4.0 MB
|
272 |
Peak Block count 2
|
273 |
Peak Allocated memory 4.5 MB
|
@@ -279,13 +275,13 @@ Memory Statistics:
|
|
279 |
Used Block count 1
|
280 |
Peak Allocated bytes 1.0 MB
|
281 |
[ALLOC_TYPETREE_MAIN]
|
282 |
-
Peak usage frame count: [0-1.0 KB]:
|
283 |
Requested Block Size 2.0 MB
|
284 |
Peak Block count 1
|
285 |
Peak Allocated memory 1.0 KB
|
286 |
Peak Large allocation bytes 0 B
|
287 |
[ALLOC_TYPETREE_THREAD]
|
288 |
-
Peak usage frame count: [1.0 KB-2.0 KB]:
|
289 |
Requested Block Size 2.0 MB
|
290 |
Peak Block count 1
|
291 |
Peak Allocated memory 2.2 KB
|
|
|
34 |
FMOD failed to initialize the output device.: "Error initializing output device. " (60)
|
35 |
FMOD initialized on nosound output
|
36 |
Begin MonoManager ReloadAssembly
|
37 |
+
- Completed reload, in 0.140 seconds
|
38 |
ERROR: Shader Sprites/Default shader is not supported on this GPU (none of subshaders/fallbacks are suitable)
|
39 |
ERROR: Shader Sprites/Mask shader is not supported on this GPU (none of subshaders/fallbacks are suitable)
|
40 |
ERROR: Shader Legacy Shaders/VertexLit shader is not supported on this GPU (none of subshaders/fallbacks are suitable)
|
|
|
59 |
WARNING: Shader Unsupported: 'Standard' - All subshaders removed
|
60 |
WARNING: Shader Did you use #pragma only_renderers and omit this platform?
|
61 |
WARNING: Shader If subshaders removal was intentional, you may have forgotten turning Fallback off?
|
62 |
+
UnloadTime: 1.010630 ms
|
63 |
Registered Communicator in Agent.
|
64 |
ERROR: Shader UI/Default shader is not supported on this GPU (none of subshaders/fallbacks are suitable)
|
65 |
requesting resize 84 x 84
|
|
|
74 |
TOO LONG
|
75 |
TOO LONG
|
76 |
TOO LONG
|
|
|
|
|
|
|
|
|
77 |
Setting up 1 worker threads for Enlighten.
|
78 |
Memory Statistics:
|
79 |
[ALLOC_TEMP_TLS] TLS Allocator
|
80 |
StackAllocators :
|
81 |
[ALLOC_TEMP_MAIN]
|
82 |
+
Peak usage frame count: [8.0 KB-16.0 KB]: 599 frames, [2.0 MB-4.0 MB]: 1 frames
|
83 |
Initial Block Size 4.0 MB
|
84 |
Current Block Size 4.0 MB
|
85 |
Peak Allocated Bytes 2.1 MB
|
|
|
195 |
Peak Allocated Bytes 0 B
|
196 |
Overflow Count 0
|
197 |
[ALLOC_DEFAULT] Dual Thread Allocator
|
198 |
+
Peak main deferred allocation count 2
|
199 |
[ALLOC_BUCKET]
|
200 |
Large Block size 4.0 MB
|
201 |
Used Block count 1
|
202 |
Peak Allocated bytes 1.0 MB
|
203 |
[ALLOC_DEFAULT_MAIN]
|
204 |
+
Peak usage frame count: [16.0 MB-32.0 MB]: 600 frames
|
205 |
Requested Block Size 16.0 MB
|
206 |
Peak Block count 1
|
207 |
+
Peak Allocated memory 20.6 MB
|
208 |
+
Peak Large allocation bytes 16.0 MB
|
209 |
[ALLOC_DEFAULT_THREAD]
|
210 |
+
Peak usage frame count: [1.0 MB-2.0 MB]: 600 frames
|
211 |
Requested Block Size 16.0 MB
|
212 |
Peak Block count 1
|
213 |
+
Peak Allocated memory 1.6 MB
|
214 |
+
Peak Large allocation bytes 0 B
|
215 |
[ALLOC_TEMP_JOB_1_FRAME]
|
216 |
Initial Block Size 2.0 MB
|
217 |
Used Block Count 1
|
|
|
239 |
Used Block count 1
|
240 |
Peak Allocated bytes 1.0 MB
|
241 |
[ALLOC_GFX_MAIN]
|
242 |
+
Peak usage frame count: [32.0 KB-64.0 KB]: 599 frames, [64.0 KB-128.0 KB]: 1 frames
|
243 |
Requested Block Size 16.0 MB
|
244 |
Peak Block count 1
|
245 |
Peak Allocated memory 65.6 KB
|
246 |
Peak Large allocation bytes 0 B
|
247 |
[ALLOC_GFX_THREAD]
|
248 |
+
Peak usage frame count: [128.0 KB-256.0 KB]: 600 frames
|
249 |
Requested Block Size 16.0 MB
|
250 |
Peak Block count 1
|
251 |
Peak Allocated memory 173.5 KB
|
|
|
257 |
Used Block count 1
|
258 |
Peak Allocated bytes 1.0 MB
|
259 |
[ALLOC_CACHEOBJECTS_MAIN]
|
260 |
+
Peak usage frame count: [0.5 MB-1.0 MB]: 600 frames
|
261 |
Requested Block Size 4.0 MB
|
262 |
Peak Block count 1
|
263 |
Peak Allocated memory 0.6 MB
|
264 |
Peak Large allocation bytes 0 B
|
265 |
[ALLOC_CACHEOBJECTS_THREAD]
|
266 |
+
Peak usage frame count: [0.5 MB-1.0 MB]: 599 frames, [4.0 MB-8.0 MB]: 1 frames
|
267 |
Requested Block Size 4.0 MB
|
268 |
Peak Block count 2
|
269 |
Peak Allocated memory 4.5 MB
|
|
|
275 |
Used Block count 1
|
276 |
Peak Allocated bytes 1.0 MB
|
277 |
[ALLOC_TYPETREE_MAIN]
|
278 |
+
Peak usage frame count: [0-1.0 KB]: 600 frames
|
279 |
Requested Block Size 2.0 MB
|
280 |
Peak Block count 1
|
281 |
Peak Allocated memory 1.0 KB
|
282 |
Peak Large allocation bytes 0 B
|
283 |
[ALLOC_TYPETREE_THREAD]
|
284 |
+
Peak usage frame count: [1.0 KB-2.0 KB]: 599 frames, [2.0 KB-4.0 KB]: 1 frames
|
285 |
Requested Block Size 2.0 MB
|
286 |
Peak Block count 1
|
287 |
Peak Allocated memory 2.2 KB
|
run_logs/timers.json
CHANGED
@@ -2,75 +2,75 @@
|
|
2 |
"name": "root",
|
3 |
"gauges": {
|
4 |
"SoccerTwos.Policy.Entropy.mean": {
|
5 |
-
"value": 3.
|
6 |
-
"min": 3.
|
7 |
-
"max": 3.
|
8 |
"count": 3
|
9 |
},
|
10 |
"SoccerTwos.Policy.Entropy.sum": {
|
11 |
-
"value":
|
12 |
-
"min":
|
13 |
-
"max":
|
14 |
"count": 3
|
15 |
},
|
16 |
"SoccerTwos.Environment.EpisodeLength.mean": {
|
17 |
-
"value":
|
18 |
-
"min":
|
19 |
-
"max":
|
20 |
"count": 3
|
21 |
},
|
22 |
"SoccerTwos.Environment.EpisodeLength.sum": {
|
23 |
-
"value":
|
24 |
-
"min":
|
25 |
-
"max":
|
26 |
"count": 3
|
27 |
},
|
28 |
"SoccerTwos.Self-play.ELO.mean": {
|
29 |
-
"value":
|
30 |
-
"min":
|
31 |
-
"max":
|
32 |
"count": 3
|
33 |
},
|
34 |
"SoccerTwos.Self-play.ELO.sum": {
|
35 |
-
"value":
|
36 |
-
"min":
|
37 |
-
"max":
|
38 |
"count": 3
|
39 |
},
|
40 |
"SoccerTwos.Step.mean": {
|
41 |
-
"value":
|
42 |
-
"min":
|
43 |
-
"max":
|
44 |
"count": 3
|
45 |
},
|
46 |
"SoccerTwos.Step.sum": {
|
47 |
-
"value":
|
48 |
-
"min":
|
49 |
-
"max":
|
50 |
"count": 3
|
51 |
},
|
52 |
"SoccerTwos.Policy.ExtrinsicBaselineEstimate.mean": {
|
53 |
-
"value": 0.
|
54 |
-
"min": 0.
|
55 |
-
"max": 0.
|
56 |
"count": 3
|
57 |
},
|
58 |
"SoccerTwos.Policy.ExtrinsicBaselineEstimate.sum": {
|
59 |
-
"value": 0.
|
60 |
-
"min": 0.
|
61 |
-
"max": 0.
|
62 |
"count": 3
|
63 |
},
|
64 |
"SoccerTwos.Policy.ExtrinsicValueEstimate.mean": {
|
65 |
-
"value": 0.
|
66 |
-
"min": 0.
|
67 |
-
"max": 0.
|
68 |
"count": 3
|
69 |
},
|
70 |
"SoccerTwos.Policy.ExtrinsicValueEstimate.sum": {
|
71 |
-
"value": 0.
|
72 |
-
"min": 0.
|
73 |
-
"max": 0.
|
74 |
"count": 3
|
75 |
},
|
76 |
"SoccerTwos.Environment.CumulativeReward.mean": {
|
@@ -86,27 +86,27 @@
|
|
86 |
"count": 3
|
87 |
},
|
88 |
"SoccerTwos.Policy.ExtrinsicReward.mean": {
|
89 |
-
"value": 0.
|
90 |
-
"min": -0.
|
91 |
-
"max": 0.
|
92 |
"count": 3
|
93 |
},
|
94 |
"SoccerTwos.Policy.ExtrinsicReward.sum": {
|
95 |
-
"value":
|
96 |
-
"min": -
|
97 |
-
"max": 1.
|
98 |
"count": 3
|
99 |
},
|
100 |
"SoccerTwos.Environment.GroupCumulativeReward.mean": {
|
101 |
-
"value": 0.
|
102 |
-
"min": -0.
|
103 |
-
"max": 0.
|
104 |
"count": 3
|
105 |
},
|
106 |
"SoccerTwos.Environment.GroupCumulativeReward.sum": {
|
107 |
-
"value":
|
108 |
-
"min": -
|
109 |
-
"max": 1.
|
110 |
"count": 3
|
111 |
},
|
112 |
"SoccerTwos.IsTraining.mean": {
|
@@ -120,143 +120,71 @@
|
|
120 |
"min": 1.0,
|
121 |
"max": 1.0,
|
122 |
"count": 3
|
123 |
-
},
|
124 |
-
"SoccerTwos.Losses.PolicyLoss.mean": {
|
125 |
-
"value": 0.014585809665265678,
|
126 |
-
"min": 0.014585809665265678,
|
127 |
-
"max": 0.014585809665265678,
|
128 |
-
"count": 1
|
129 |
-
},
|
130 |
-
"SoccerTwos.Losses.PolicyLoss.sum": {
|
131 |
-
"value": 0.014585809665265678,
|
132 |
-
"min": 0.014585809665265678,
|
133 |
-
"max": 0.014585809665265678,
|
134 |
-
"count": 1
|
135 |
-
},
|
136 |
-
"SoccerTwos.Losses.ValueLoss.mean": {
|
137 |
-
"value": 0.00283233120959873,
|
138 |
-
"min": 0.00283233120959873,
|
139 |
-
"max": 0.00283233120959873,
|
140 |
-
"count": 1
|
141 |
-
},
|
142 |
-
"SoccerTwos.Losses.ValueLoss.sum": {
|
143 |
-
"value": 0.00283233120959873,
|
144 |
-
"min": 0.00283233120959873,
|
145 |
-
"max": 0.00283233120959873,
|
146 |
-
"count": 1
|
147 |
-
},
|
148 |
-
"SoccerTwos.Losses.BaselineLoss.mean": {
|
149 |
-
"value": 0.0025416993885301054,
|
150 |
-
"min": 0.0025416993885301054,
|
151 |
-
"max": 0.0025416993885301054,
|
152 |
-
"count": 1
|
153 |
-
},
|
154 |
-
"SoccerTwos.Losses.BaselineLoss.sum": {
|
155 |
-
"value": 0.0025416993885301054,
|
156 |
-
"min": 0.0025416993885301054,
|
157 |
-
"max": 0.0025416993885301054,
|
158 |
-
"count": 1
|
159 |
-
},
|
160 |
-
"SoccerTwos.Policy.LearningRate.mean": {
|
161 |
-
"value": 0.0003,
|
162 |
-
"min": 0.0003,
|
163 |
-
"max": 0.0003,
|
164 |
-
"count": 1
|
165 |
-
},
|
166 |
-
"SoccerTwos.Policy.LearningRate.sum": {
|
167 |
-
"value": 0.0003,
|
168 |
-
"min": 0.0003,
|
169 |
-
"max": 0.0003,
|
170 |
-
"count": 1
|
171 |
-
},
|
172 |
-
"SoccerTwos.Policy.Epsilon.mean": {
|
173 |
-
"value": 0.20000000000000004,
|
174 |
-
"min": 0.20000000000000004,
|
175 |
-
"max": 0.20000000000000004,
|
176 |
-
"count": 1
|
177 |
-
},
|
178 |
-
"SoccerTwos.Policy.Epsilon.sum": {
|
179 |
-
"value": 0.20000000000000004,
|
180 |
-
"min": 0.20000000000000004,
|
181 |
-
"max": 0.20000000000000004,
|
182 |
-
"count": 1
|
183 |
-
},
|
184 |
-
"SoccerTwos.Policy.Beta.mean": {
|
185 |
-
"value": 0.005000000000000001,
|
186 |
-
"min": 0.005000000000000001,
|
187 |
-
"max": 0.005000000000000001,
|
188 |
-
"count": 1
|
189 |
-
},
|
190 |
-
"SoccerTwos.Policy.Beta.sum": {
|
191 |
-
"value": 0.005000000000000001,
|
192 |
-
"min": 0.005000000000000001,
|
193 |
-
"max": 0.005000000000000001,
|
194 |
-
"count": 1
|
195 |
}
|
196 |
},
|
197 |
"metadata": {
|
198 |
"timer_format_version": "0.1.0",
|
199 |
-
"start_time_seconds": "
|
200 |
"python_version": "3.10.12 (main, Nov 6 2024, 20:22:13) [GCC 11.4.0]",
|
201 |
-
"command_line_arguments": "/usr/local/bin/mlagents-learn ./
|
202 |
"mlagents_version": "1.2.0.dev0",
|
203 |
"mlagents_envs_version": "1.2.0.dev0",
|
204 |
"communication_protocol_version": "1.5.0",
|
205 |
"pytorch_version": "2.5.1+cu121",
|
206 |
"numpy_version": "1.23.5",
|
207 |
-
"end_time_seconds": "
|
208 |
},
|
209 |
-
"total":
|
210 |
"count": 1,
|
211 |
-
"self": 0.
|
212 |
"children": {
|
213 |
"run_training.setup": {
|
214 |
-
"total": 0.
|
215 |
"count": 1,
|
216 |
-
"self": 0.
|
217 |
},
|
218 |
"TrainerController.start_learning": {
|
219 |
-
"total":
|
220 |
"count": 1,
|
221 |
-
"self": 0.
|
222 |
"children": {
|
223 |
"TrainerController._reset_env": {
|
224 |
-
"total": 6.
|
225 |
"count": 1,
|
226 |
-
"self": 6.
|
227 |
},
|
228 |
"TrainerController.advance": {
|
229 |
-
"total":
|
230 |
-
"count":
|
231 |
-
"self": 0.
|
232 |
"children": {
|
233 |
"env_step": {
|
234 |
-
"total":
|
235 |
-
"count":
|
236 |
-
"self":
|
237 |
"children": {
|
238 |
"SubprocessEnvManager._take_step": {
|
239 |
-
"total":
|
240 |
-
"count":
|
241 |
-
"self": 0.
|
242 |
"children": {
|
243 |
"TorchPolicy.evaluate": {
|
244 |
-
"total":
|
245 |
-
"count":
|
246 |
-
"self":
|
247 |
}
|
248 |
}
|
249 |
},
|
250 |
"workers": {
|
251 |
-
"total": 0.
|
252 |
-
"count":
|
253 |
"self": 0.0,
|
254 |
"children": {
|
255 |
"worker_root": {
|
256 |
-
"total":
|
257 |
-
"count":
|
258 |
"is_parallel": true,
|
259 |
-
"self":
|
260 |
"children": {
|
261 |
"run_training.setup": {
|
262 |
"total": 0.0,
|
@@ -265,48 +193,48 @@
|
|
265 |
"self": 0.0,
|
266 |
"children": {
|
267 |
"steps_from_proto": {
|
268 |
-
"total": 0.
|
269 |
"count": 2,
|
270 |
"is_parallel": true,
|
271 |
-
"self": 0.
|
272 |
"children": {
|
273 |
"_process_rank_one_or_two_observation": {
|
274 |
-
"total": 0.
|
275 |
"count": 8,
|
276 |
"is_parallel": true,
|
277 |
-
"self": 0.
|
278 |
}
|
279 |
}
|
280 |
},
|
281 |
"UnityEnvironment.step": {
|
282 |
-
"total": 0.
|
283 |
"count": 1,
|
284 |
"is_parallel": true,
|
285 |
-
"self": 0.
|
286 |
"children": {
|
287 |
"UnityEnvironment._generate_step_input": {
|
288 |
-
"total": 0.
|
289 |
"count": 1,
|
290 |
"is_parallel": true,
|
291 |
-
"self": 0.
|
292 |
},
|
293 |
"communicator.exchange": {
|
294 |
-
"total": 0.
|
295 |
"count": 1,
|
296 |
"is_parallel": true,
|
297 |
-
"self": 0.
|
298 |
},
|
299 |
"steps_from_proto": {
|
300 |
-
"total": 0.
|
301 |
"count": 2,
|
302 |
"is_parallel": true,
|
303 |
-
"self": 0.
|
304 |
"children": {
|
305 |
"_process_rank_one_or_two_observation": {
|
306 |
-
"total": 0.
|
307 |
"count": 8,
|
308 |
"is_parallel": true,
|
309 |
-
"self": 0.
|
310 |
}
|
311 |
}
|
312 |
}
|
@@ -315,34 +243,34 @@
|
|
315 |
}
|
316 |
},
|
317 |
"UnityEnvironment.step": {
|
318 |
-
"total":
|
319 |
-
"count":
|
320 |
"is_parallel": true,
|
321 |
-
"self":
|
322 |
"children": {
|
323 |
"UnityEnvironment._generate_step_input": {
|
324 |
-
"total":
|
325 |
-
"count":
|
326 |
"is_parallel": true,
|
327 |
-
"self":
|
328 |
},
|
329 |
"communicator.exchange": {
|
330 |
-
"total":
|
331 |
-
"count":
|
332 |
"is_parallel": true,
|
333 |
-
"self":
|
334 |
},
|
335 |
"steps_from_proto": {
|
336 |
-
"total":
|
337 |
-
"count":
|
338 |
"is_parallel": true,
|
339 |
-
"self":
|
340 |
"children": {
|
341 |
"_process_rank_one_or_two_observation": {
|
342 |
-
"total":
|
343 |
-
"count":
|
344 |
"is_parallel": true,
|
345 |
-
"self":
|
346 |
}
|
347 |
}
|
348 |
}
|
@@ -355,24 +283,24 @@
|
|
355 |
}
|
356 |
},
|
357 |
"trainer_advance": {
|
358 |
-
"total":
|
359 |
-
"count":
|
360 |
-
"self": 0.
|
361 |
"children": {
|
362 |
"process_trajectory": {
|
363 |
-
"total":
|
364 |
-
"count":
|
365 |
-
"self":
|
366 |
},
|
367 |
"_update_policy": {
|
368 |
-
"total":
|
369 |
"count": 1,
|
370 |
-
"self": 5.
|
371 |
"children": {
|
372 |
"TorchPOCAOptimizer.update": {
|
373 |
-
"total":
|
374 |
-
"count":
|
375 |
-
"self":
|
376 |
}
|
377 |
}
|
378 |
}
|
@@ -381,19 +309,19 @@
|
|
381 |
}
|
382 |
},
|
383 |
"trainer_threads": {
|
384 |
-
"total": 1.
|
385 |
"count": 1,
|
386 |
-
"self": 1.
|
387 |
},
|
388 |
"TrainerController._save_models": {
|
389 |
-
"total": 0.
|
390 |
"count": 1,
|
391 |
-
"self": 0.
|
392 |
"children": {
|
393 |
"RLTrainer._checkpoint": {
|
394 |
-
"total": 0.
|
395 |
"count": 1,
|
396 |
-
"self": 0.
|
397 |
}
|
398 |
}
|
399 |
}
|
|
|
2 |
"name": "root",
|
3 |
"gauges": {
|
4 |
"SoccerTwos.Policy.Entropy.mean": {
|
5 |
+
"value": 3.2813422679901123,
|
6 |
+
"min": 3.2797603607177734,
|
7 |
+
"max": 3.2813422679901123,
|
8 |
"count": 3
|
9 |
},
|
10 |
"SoccerTwos.Policy.Entropy.sum": {
|
11 |
+
"value": 69406.953125,
|
12 |
+
"min": 35578.83984375,
|
13 |
+
"max": 104975.2421875,
|
14 |
"count": 3
|
15 |
},
|
16 |
"SoccerTwos.Environment.EpisodeLength.mean": {
|
17 |
+
"value": 984.5,
|
18 |
+
"min": 459.0,
|
19 |
+
"max": 984.5,
|
20 |
"count": 3
|
21 |
},
|
22 |
"SoccerTwos.Environment.EpisodeLength.sum": {
|
23 |
+
"value": 23628.0,
|
24 |
+
"min": 3672.0,
|
25 |
+
"max": 28916.0,
|
26 |
"count": 3
|
27 |
},
|
28 |
"SoccerTwos.Self-play.ELO.mean": {
|
29 |
+
"value": 1201.222288407967,
|
30 |
+
"min": 1201.222288407967,
|
31 |
+
"max": 1202.4914404208353,
|
32 |
"count": 3
|
33 |
},
|
34 |
"SoccerTwos.Self-play.ELO.sum": {
|
35 |
+
"value": 2402.444576815934,
|
36 |
+
"min": 2402.444576815934,
|
37 |
+
"max": 7209.071703418774,
|
38 |
"count": 3
|
39 |
},
|
40 |
"SoccerTwos.Step.mean": {
|
41 |
+
"value": 59706.0,
|
42 |
+
"min": 39040.0,
|
43 |
+
"max": 59706.0,
|
44 |
"count": 3
|
45 |
},
|
46 |
"SoccerTwos.Step.sum": {
|
47 |
+
"value": 59706.0,
|
48 |
+
"min": 39040.0,
|
49 |
+
"max": 59706.0,
|
50 |
"count": 3
|
51 |
},
|
52 |
"SoccerTwos.Policy.ExtrinsicBaselineEstimate.mean": {
|
53 |
+
"value": 0.0251691285520792,
|
54 |
+
"min": 0.0251691285520792,
|
55 |
+
"max": 0.027628587558865547,
|
56 |
"count": 3
|
57 |
},
|
58 |
"SoccerTwos.Policy.ExtrinsicBaselineEstimate.sum": {
|
59 |
+
"value": 0.27686041593551636,
|
60 |
+
"min": 0.21094191074371338,
|
61 |
+
"max": 0.33154305815696716,
|
62 |
"count": 3
|
63 |
},
|
64 |
"SoccerTwos.Policy.ExtrinsicValueEstimate.mean": {
|
65 |
+
"value": 0.019476601853966713,
|
66 |
+
"min": 0.019476601853966713,
|
67 |
+
"max": 0.02308989316225052,
|
68 |
"count": 3
|
69 |
},
|
70 |
"SoccerTwos.Policy.ExtrinsicValueEstimate.sum": {
|
71 |
+
"value": 0.214242622256279,
|
72 |
+
"min": 0.1697760671377182,
|
73 |
+
"max": 0.2770787179470062,
|
74 |
"count": 3
|
75 |
},
|
76 |
"SoccerTwos.Environment.CumulativeReward.mean": {
|
|
|
86 |
"count": 3
|
87 |
},
|
88 |
"SoccerTwos.Policy.ExtrinsicReward.mean": {
|
89 |
+
"value": -0.36363636363636365,
|
90 |
+
"min": -0.36363636363636365,
|
91 |
+
"max": 0.11886666218439738,
|
92 |
"count": 3
|
93 |
},
|
94 |
"SoccerTwos.Policy.ExtrinsicReward.sum": {
|
95 |
+
"value": -4.0,
|
96 |
+
"min": -4.0,
|
97 |
+
"max": 1.4263999462127686,
|
98 |
"count": 3
|
99 |
},
|
100 |
"SoccerTwos.Environment.GroupCumulativeReward.mean": {
|
101 |
+
"value": -0.36363636363636365,
|
102 |
+
"min": -0.36363636363636365,
|
103 |
+
"max": 0.11886666218439738,
|
104 |
"count": 3
|
105 |
},
|
106 |
"SoccerTwos.Environment.GroupCumulativeReward.sum": {
|
107 |
+
"value": -4.0,
|
108 |
+
"min": -4.0,
|
109 |
+
"max": 1.4263999462127686,
|
110 |
"count": 3
|
111 |
},
|
112 |
"SoccerTwos.IsTraining.mean": {
|
|
|
120 |
"min": 1.0,
|
121 |
"max": 1.0,
|
122 |
"count": 3
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
123 |
}
|
124 |
},
|
125 |
"metadata": {
|
126 |
"timer_format_version": "0.1.0",
|
127 |
+
"start_time_seconds": "1734349453",
|
128 |
"python_version": "3.10.12 (main, Nov 6 2024, 20:22:13) [GCC 11.4.0]",
|
129 |
+
"command_line_arguments": "/usr/local/bin/mlagents-learn ./results/SoccerTwosNew/configuration.yaml --env=train-soccer/SoccerTwos/SoccerTwos.x86_64 --run-id=SoccerTwosNew --no-graphics --resume",
|
130 |
"mlagents_version": "1.2.0.dev0",
|
131 |
"mlagents_envs_version": "1.2.0.dev0",
|
132 |
"communication_protocol_version": "1.5.0",
|
133 |
"pytorch_version": "2.5.1+cu121",
|
134 |
"numpy_version": "1.23.5",
|
135 |
+
"end_time_seconds": "1734349617"
|
136 |
},
|
137 |
+
"total": 163.16620889400002,
|
138 |
"count": 1,
|
139 |
+
"self": 0.009594704000022602,
|
140 |
"children": {
|
141 |
"run_training.setup": {
|
142 |
+
"total": 0.10617190499999651,
|
143 |
"count": 1,
|
144 |
+
"self": 0.10617190499999651
|
145 |
},
|
146 |
"TrainerController.start_learning": {
|
147 |
+
"total": 163.050442285,
|
148 |
"count": 1,
|
149 |
+
"self": 0.08201455699901317,
|
150 |
"children": {
|
151 |
"TrainerController._reset_env": {
|
152 |
+
"total": 6.299881440000007,
|
153 |
"count": 1,
|
154 |
+
"self": 6.299881440000007
|
155 |
},
|
156 |
"TrainerController.advance": {
|
157 |
+
"total": 156.383009999001,
|
158 |
+
"count": 2004,
|
159 |
+
"self": 0.07024006500196833,
|
160 |
"children": {
|
161 |
"env_step": {
|
162 |
+
"total": 64.22660732399879,
|
163 |
+
"count": 2004,
|
164 |
+
"self": 52.391058236997,
|
165 |
"children": {
|
166 |
"SubprocessEnvManager._take_step": {
|
167 |
+
"total": 11.798904964001565,
|
168 |
+
"count": 2004,
|
169 |
+
"self": 0.38294599499960214,
|
170 |
"children": {
|
171 |
"TorchPolicy.evaluate": {
|
172 |
+
"total": 11.415958969001963,
|
173 |
+
"count": 4000,
|
174 |
+
"self": 11.415958969001963
|
175 |
}
|
176 |
}
|
177 |
},
|
178 |
"workers": {
|
179 |
+
"total": 0.036644123000229456,
|
180 |
+
"count": 2004,
|
181 |
"self": 0.0,
|
182 |
"children": {
|
183 |
"worker_root": {
|
184 |
+
"total": 80.18677688799966,
|
185 |
+
"count": 2004,
|
186 |
"is_parallel": true,
|
187 |
+
"self": 36.25111745799899,
|
188 |
"children": {
|
189 |
"run_training.setup": {
|
190 |
"total": 0.0,
|
|
|
193 |
"self": 0.0,
|
194 |
"children": {
|
195 |
"steps_from_proto": {
|
196 |
+
"total": 0.007672471999995878,
|
197 |
"count": 2,
|
198 |
"is_parallel": true,
|
199 |
+
"self": 0.0018231199999831915,
|
200 |
"children": {
|
201 |
"_process_rank_one_or_two_observation": {
|
202 |
+
"total": 0.005849352000012686,
|
203 |
"count": 8,
|
204 |
"is_parallel": true,
|
205 |
+
"self": 0.005849352000012686
|
206 |
}
|
207 |
}
|
208 |
},
|
209 |
"UnityEnvironment.step": {
|
210 |
+
"total": 0.0461561890000155,
|
211 |
"count": 1,
|
212 |
"is_parallel": true,
|
213 |
+
"self": 0.0013367729999913536,
|
214 |
"children": {
|
215 |
"UnityEnvironment._generate_step_input": {
|
216 |
+
"total": 0.0009743020000030356,
|
217 |
"count": 1,
|
218 |
"is_parallel": true,
|
219 |
+
"self": 0.0009743020000030356
|
220 |
},
|
221 |
"communicator.exchange": {
|
222 |
+
"total": 0.03982881500002122,
|
223 |
"count": 1,
|
224 |
"is_parallel": true,
|
225 |
+
"self": 0.03982881500002122
|
226 |
},
|
227 |
"steps_from_proto": {
|
228 |
+
"total": 0.00401629899999989,
|
229 |
"count": 2,
|
230 |
"is_parallel": true,
|
231 |
+
"self": 0.000687369999980092,
|
232 |
"children": {
|
233 |
"_process_rank_one_or_two_observation": {
|
234 |
+
"total": 0.003328929000019798,
|
235 |
"count": 8,
|
236 |
"is_parallel": true,
|
237 |
+
"self": 0.003328929000019798
|
238 |
}
|
239 |
}
|
240 |
}
|
|
|
243 |
}
|
244 |
},
|
245 |
"UnityEnvironment.step": {
|
246 |
+
"total": 43.93565943000067,
|
247 |
+
"count": 2003,
|
248 |
"is_parallel": true,
|
249 |
+
"self": 2.6245066150007403,
|
250 |
"children": {
|
251 |
"UnityEnvironment._generate_step_input": {
|
252 |
+
"total": 1.7792221570002482,
|
253 |
+
"count": 2003,
|
254 |
"is_parallel": true,
|
255 |
+
"self": 1.7792221570002482
|
256 |
},
|
257 |
"communicator.exchange": {
|
258 |
+
"total": 31.125804646999285,
|
259 |
+
"count": 2003,
|
260 |
"is_parallel": true,
|
261 |
+
"self": 31.125804646999285
|
262 |
},
|
263 |
"steps_from_proto": {
|
264 |
+
"total": 8.406126011000396,
|
265 |
+
"count": 4006,
|
266 |
"is_parallel": true,
|
267 |
+
"self": 1.4179039570013856,
|
268 |
"children": {
|
269 |
"_process_rank_one_or_two_observation": {
|
270 |
+
"total": 6.98822205399901,
|
271 |
+
"count": 16024,
|
272 |
"is_parallel": true,
|
273 |
+
"self": 6.98822205399901
|
274 |
}
|
275 |
}
|
276 |
}
|
|
|
283 |
}
|
284 |
},
|
285 |
"trainer_advance": {
|
286 |
+
"total": 92.08616261000023,
|
287 |
+
"count": 2004,
|
288 |
+
"self": 0.3026151499994967,
|
289 |
"children": {
|
290 |
"process_trajectory": {
|
291 |
+
"total": 13.09741929400073,
|
292 |
+
"count": 2004,
|
293 |
+
"self": 13.09741929400073
|
294 |
},
|
295 |
"_update_policy": {
|
296 |
+
"total": 78.686128166,
|
297 |
"count": 1,
|
298 |
+
"self": 5.072893774000022,
|
299 |
"children": {
|
300 |
"TorchPOCAOptimizer.update": {
|
301 |
+
"total": 73.61323439199998,
|
302 |
+
"count": 37,
|
303 |
+
"self": 73.61323439199998
|
304 |
}
|
305 |
}
|
306 |
}
|
|
|
309 |
}
|
310 |
},
|
311 |
"trainer_threads": {
|
312 |
+
"total": 1.5800000028320937e-06,
|
313 |
"count": 1,
|
314 |
+
"self": 1.5800000028320937e-06
|
315 |
},
|
316 |
"TrainerController._save_models": {
|
317 |
+
"total": 0.28553470899998956,
|
318 |
"count": 1,
|
319 |
+
"self": 0.0026438130000201454,
|
320 |
"children": {
|
321 |
"RLTrainer._checkpoint": {
|
322 |
+
"total": 0.2828908959999694,
|
323 |
"count": 1,
|
324 |
+
"self": 0.2828908959999694
|
325 |
}
|
326 |
}
|
327 |
}
|
run_logs/training_status.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
{
|
2 |
"SoccerTwos": {
|
3 |
-
"elo": 1200.
|
4 |
"checkpoints": [
|
5 |
{
|
6 |
"steps": 34564,
|
@@ -10,15 +10,24 @@
|
|
10 |
"auxillary_file_paths": [
|
11 |
"results/SoccerTwosNew/SoccerTwos/SoccerTwos-34564.pt"
|
12 |
]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13 |
}
|
14 |
],
|
15 |
"final_checkpoint": {
|
16 |
-
"steps":
|
17 |
"file_path": "results/SoccerTwosNew/SoccerTwos.onnx",
|
18 |
-
"reward":
|
19 |
-
"creation_time":
|
20 |
"auxillary_file_paths": [
|
21 |
-
"results/SoccerTwosNew/SoccerTwos/SoccerTwos-
|
22 |
]
|
23 |
}
|
24 |
},
|
|
|
1 |
{
|
2 |
"SoccerTwos": {
|
3 |
+
"elo": 1200.9701914251082,
|
4 |
"checkpoints": [
|
5 |
{
|
6 |
"steps": 34564,
|
|
|
10 |
"auxillary_file_paths": [
|
11 |
"results/SoccerTwosNew/SoccerTwos/SoccerTwos-34564.pt"
|
12 |
]
|
13 |
+
},
|
14 |
+
{
|
15 |
+
"steps": 62706,
|
16 |
+
"file_path": "results/SoccerTwosNew/SoccerTwos/SoccerTwos-62706.onnx",
|
17 |
+
"reward": null,
|
18 |
+
"creation_time": 1734349617.1518412,
|
19 |
+
"auxillary_file_paths": [
|
20 |
+
"results/SoccerTwosNew/SoccerTwos/SoccerTwos-62706.pt"
|
21 |
+
]
|
22 |
}
|
23 |
],
|
24 |
"final_checkpoint": {
|
25 |
+
"steps": 62706,
|
26 |
"file_path": "results/SoccerTwosNew/SoccerTwos.onnx",
|
27 |
+
"reward": null,
|
28 |
+
"creation_time": 1734349617.1518412,
|
29 |
"auxillary_file_paths": [
|
30 |
+
"results/SoccerTwosNew/SoccerTwos/SoccerTwos-62706.pt"
|
31 |
]
|
32 |
}
|
33 |
},
|