Made tensorboard aggregator and changed slightly scripts
This commit is contained in:
parent
dd3c7c814b
commit
0c54298746
13 changed files with 62 additions and 13 deletions
0
LICENSE
Normal file → Executable file
0
LICENSE
Normal file → Executable file
0
README.md
Normal file → Executable file
0
README.md
Normal file → Executable file
0
agent.py
Normal file → Executable file
0
agent.py
Normal file → Executable file
39
aggregator.py
Normal file
39
aggregator.py
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
from glob import glob
|
||||||
|
|
||||||
|
import tensorboard_reducer as tbr
|
||||||
|
|
||||||
|
from policy import policies
|
||||||
|
|
||||||
|
strict_steps=False
|
||||||
|
overwrite = True
|
||||||
|
reduce_ops = ("mean", "min", "max")
|
||||||
|
|
||||||
|
for policy_name in policies:
|
||||||
|
print(f"Calculating {policy_name}")
|
||||||
|
|
||||||
|
# Define glob pattern to find the directories
|
||||||
|
input_event_dirs = sorted(glob(f"tnsrbrd/sb3/{policy_name}_[0-9]"))
|
||||||
|
print(f"Found {input_event_dirs}")
|
||||||
|
|
||||||
|
# Define output dir
|
||||||
|
events_output_dir = f"tnsrbrd/results/{policy_name}"
|
||||||
|
|
||||||
|
# Load TB events
|
||||||
|
events_dict = tbr.load_tb_events(input_event_dirs, strict_steps=False, verbose=True)
|
||||||
|
|
||||||
|
# Get number of steps and other params
|
||||||
|
n_scalars = len(events_dict)
|
||||||
|
n_steps, n_events = list(events_dict.values())[0].shape
|
||||||
|
|
||||||
|
print(f"Loaded {n_events} TensorBoard runs with {n_scalars} scalars and {n_steps} steps each")
|
||||||
|
print(", ".join(events_dict))
|
||||||
|
|
||||||
|
# Reduce events
|
||||||
|
reduced_events = tbr.reduce_events(events_dict, reduce_ops, verbose=True)
|
||||||
|
|
||||||
|
for op in reduce_ops:
|
||||||
|
print(f"Writing '{op}' reduction to '{events_output_dir}-{op}'")
|
||||||
|
|
||||||
|
tbr.write_tb_events(reduced_events, events_output_dir, overwrite)
|
||||||
|
|
||||||
|
print(f"Reduction of {policy_name} done.")
|
0
args.py
Normal file → Executable file
0
args.py
Normal file → Executable file
0
default_bus_layout.tres
Normal file → Executable file
0
default_bus_layout.tres
Normal file → Executable file
0
icon.svg
Normal file → Executable file
0
icon.svg
Normal file → Executable file
Before Width: | Height: | Size: 9.1 KiB After Width: | Height: | Size: 9.1 KiB |
0
main.py
Normal file → Executable file
0
main.py
Normal file → Executable file
23
poetry.lock
generated
Normal file → Executable file
23
poetry.lock
generated
Normal file → Executable file
|
@ -1990,6 +1990,27 @@ files = [
|
||||||
{file = "tensorboard_data_server-0.7.2-py3-none-manylinux_2_31_x86_64.whl", hash = "sha256:ef687163c24185ae9754ed5650eb5bc4d84ff257aabdc33f0cc6f74d8ba54530"},
|
{file = "tensorboard_data_server-0.7.2-py3-none-manylinux_2_31_x86_64.whl", hash = "sha256:ef687163c24185ae9754ed5650eb5bc4d84ff257aabdc33f0cc6f74d8ba54530"},
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "tensorboard-reducer"
|
||||||
|
version = "0.3.1"
|
||||||
|
description = "Reduce multiple TensorBoard runs to new event (or CSV) files"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.8"
|
||||||
|
files = [
|
||||||
|
{file = "tensorboard-reducer-0.3.1.tar.gz", hash = "sha256:4e414d2c84c330e837c0acd728a2f74317d086003e87cb76429a24f082dbf66b"},
|
||||||
|
{file = "tensorboard_reducer-0.3.1-py2.py3-none-any.whl", hash = "sha256:0196a8ec49b3c4535fe42a13dd5407953622e169985fc0ad5f7528bdfba5afbf"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
numpy = ">=1.19"
|
||||||
|
pandas = ">=1.0.0"
|
||||||
|
tensorboard = ">=2.0"
|
||||||
|
tqdm = ">=4.0"
|
||||||
|
|
||||||
|
[package.extras]
|
||||||
|
excel = ["openpyxl"]
|
||||||
|
test = ["pytest", "pytest-cov", "torch (>=1.6)"]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tifffile"
|
name = "tifffile"
|
||||||
version = "2024.5.10"
|
version = "2024.5.10"
|
||||||
|
@ -2204,4 +2225,4 @@ files = [
|
||||||
[metadata]
|
[metadata]
|
||||||
lock-version = "2.0"
|
lock-version = "2.0"
|
||||||
python-versions = "^3.11"
|
python-versions = "^3.11"
|
||||||
content-hash = "2d575ca622be4eb61953716f1811accd9330cdbd4ad0ceee31700058e486e7e6"
|
content-hash = "130e4f2fe889802eb5d4d17d949cced5e88a8248c0fe9f25faabd232c2647259"
|
||||||
|
|
0
policy.py
Normal file → Executable file
0
policy.py
Normal file → Executable file
2
pyproject.toml
Normal file → Executable file
2
pyproject.toml
Normal file → Executable file
|
@ -4,7 +4,6 @@ version = "0.1.0"
|
||||||
description = "Godot training env for MARL"
|
description = "Godot training env for MARL"
|
||||||
authors = ["Vasilis Valatsos <vasilvalat@gmail.com>"]
|
authors = ["Vasilis Valatsos <vasilvalat@gmail.com>"]
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
package-mode = false
|
|
||||||
|
|
||||||
[tool.poetry.dependencies]
|
[tool.poetry.dependencies]
|
||||||
python = "^3.11"
|
python = "^3.11"
|
||||||
|
@ -15,6 +14,7 @@ lz4 = "^4.3.3"
|
||||||
godot-rl = {url = "https://github.com/edbeeching/godot_rl_agents/archive/refs/heads/main.zip"}
|
godot-rl = {url = "https://github.com/edbeeching/godot_rl_agents/archive/refs/heads/main.zip"}
|
||||||
pettingzoo = "^1.24.3"
|
pettingzoo = "^1.24.3"
|
||||||
tensorboard = "^2.16.2"
|
tensorboard = "^2.16.2"
|
||||||
|
tensorboard-reducer = "^0.3.1"
|
||||||
|
|
||||||
|
|
||||||
[build-system]
|
[build-system]
|
||||||
|
|
11
shell.nix
11
shell.nix
|
@ -1,11 +0,0 @@
|
||||||
with import <nixpkgs> {};
|
|
||||||
|
|
||||||
mkShell {
|
|
||||||
NIX_LD_LIBRARY_PATH = lib.makeLibraryPath [
|
|
||||||
stdenv.cc.cc
|
|
||||||
];
|
|
||||||
NIX_LD = lib.fileContents "${stdenv.cc}/nix-support/dynamic-linker";
|
|
||||||
shellHook = ''
|
|
||||||
export LD_LIBRARY_PATH=$NIX_LD_LIBRARY_PATH
|
|
||||||
'';
|
|
||||||
}
|
|
0
stable_baselines3_example.py
Normal file → Executable file
0
stable_baselines3_example.py
Normal file → Executable file
Loading…
Reference in a new issue