Skip to content

Commit 78b0def

Browse files
author
Jeff Yang
authored
feat: add ignite loggers in sidebar [wip] (#29)
* feat: add ignite loggers in sidebar * add loggers handler in main.py * fix: tensorboard -> tb, define optimizers, evaluators * fix: missing arg in tb logging * fix: clear template variable name for requirements
1 parent 099d470 commit 78b0def

File tree

5 files changed

+104
-17
lines changed

5 files changed

+104
-17
lines changed

templates/_base/_handlers.pyi

+59-8
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,67 @@
44
trainer=trainer,
55
train_sampler=None,
66
to_save=to_save,
7-
output_path='{{ output_path }}',
8-
save_every_iters={{ save_every_iters }},
9-
n_saved={{ n_saved }},
10-
log_every_iters={{ log_every_iters }},
11-
with_pbars={{ with_pbars }},
12-
with_pbar_on_iters={{ with_pbar_on_iters }},
13-
stop_on_nan={{ stop_on_nan }},
14-
clear_cuda_cache={{ clear_cuda_cache }},
7+
output_path=config.output_path,
8+
save_every_iters=config.save_every_iters,
9+
n_saved=config.n_saved,
10+
log_every_iters=config.log_every_iters,
11+
with_pbars=config.with_pbars,
12+
with_pbar_on_iters=config.with_pbar_on_iters,
13+
stop_on_nan=config.stop_on_nan,
14+
clear_cuda_cache=config.clear_cuda_cache,
1515
lr_scheduler=None,
1616
with_gpu_stats=False,
1717
output_names=None,
1818
)
1919
{% endif %}
20+
{% if logger_deps == 'clearml' %}
21+
logger_handler = common.setup_clearml_logging(
22+
trainer=trainer,
23+
optimizers=optimizers,
24+
evaluators=evaluators,
25+
log_every_iters=config.logger_log_every_iters,
26+
)
27+
{% elif logger_deps == 'mlflow' %}
28+
logger_handler = common.setup_mlflow_logging(
29+
trainer=trainer,
30+
optimizers=optimizers,
31+
evaluators=evaluators,
32+
log_every_iters=config.logger_log_every_iters,
33+
)
34+
{% elif logger_deps == 'neptune-client' %}
35+
logger_handler = common.setup_neptune_logging(
36+
trainer=trainer,
37+
optimizers=optimizers,
38+
evaluators=evaluators,
39+
log_every_iters=config.logger_log_every_iters,
40+
)
41+
{% elif logger_deps == 'polyaxon' %}
42+
logger_handler = common.setup_plx_logging(
43+
trainer=trainer,
44+
optimizers=optimizers,
45+
evaluators=evaluators,
46+
log_every_iters=config.logger_log_every_iters,
47+
)
48+
{% elif logger_deps == 'tensorboard' %}
49+
logger_handler = common.setup_tb_logging(
50+
output_path=config.filepath,
51+
trainer=trainer,
52+
optimizers=optimizers,
53+
evaluators=evaluators,
54+
log_every_iters=config.logger_log_every_iters,
55+
)
56+
{% elif logger_deps == 'visdom' %}
57+
logger_handler = common.setup_visdom_logging(
58+
trainer=trainer,
59+
optimizers=optimizers,
60+
evaluators=evaluators,
61+
log_every_iters=config.logger_log_every_iters,
62+
)
63+
{% elif logger_deps == 'wandb' %}
64+
logger_handler = common.setup_wandb_logging(
65+
trainer=trainer,
66+
optimizers=optimizers,
67+
evaluators=evaluators,
68+
log_every_iters=config.logger_log_every_iters,
69+
)
70+
{% endif %}

templates/gan/_sidebar.py

+30-4
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,6 @@ def dataset_options(config):
88
["cifar10", "lsun", "imagenet", "folder", "lfw", "fake", "mnist"],
99
)
1010
config["data_path"] = st.text_input("Dataset path (data_path)", "./")
11-
12-
config["filepath"] = st.text_input("Logging file path (filepath)", "./logs")
1311
st.markdown("---")
1412

1513

@@ -79,10 +77,10 @@ def ignite_handlers_options(config):
7977
)
8078
config["n_saved"] = st.number_input("Number of best models to store (n_saved)", min_value=1, value=2)
8179
config["log_every_iters"] = st.number_input(
82-
"Logging interval for iteration progress bar",
80+
"Logging interval for iteration progress bar (log_every_iters)",
8381
min_value=1,
8482
value=100,
85-
help="Setting to a lower value can cause tqdm" " to fluch quickly for fast trainings",
83+
help="Setting to a lower value can cause `tqdm` to fluch quickly for fast trainings",
8684
)
8785
config["with_pbars"] = st.checkbox(
8886
"Show two progress bars",
@@ -106,6 +104,33 @@ def ignite_handlers_options(config):
106104
)
107105
st.markdown("---")
108106
config["setup_common_training_handlers"] = True
107+
if config["with_pbars"]:
108+
config["handler_deps"] = "tqdm"
109+
110+
111+
def ignite_loggers_options(config):
112+
st.markdown("## Ignite Loggers Options")
113+
config["filepath"] = st.text_input(
114+
"Logging file path (filepath)",
115+
"./logs",
116+
help="This option will be used by both python logging and ignite loggers if possible",
117+
)
118+
if st.checkbox("Use experiment tracking system ?", value=True):
119+
config["logger_deps"] = st.selectbox(
120+
"Select experiment eracking system",
121+
["ClearML", "MLflow", "Neptune", "Polyaxon", "TensorBoard", "Visdom", "WandB"],
122+
index=4,
123+
).lower()
124+
# for logger requirement
125+
if config["logger_deps"] in ("neptune", "polyaxon"):
126+
config["logger_deps"] += "-client"
127+
config["logger_log_every_iters"] = st.number_input(
128+
"Logging interval for experiment tracking system (logger_log_every_iters)",
129+
min_value=1,
130+
value=100,
131+
help="This logging interval is iteration based.",
132+
)
133+
st.markdown("---")
109134

110135

111136
def model_options(config):
@@ -143,6 +168,7 @@ def get_configs() -> dict:
143168
training_options(config)
144169
distributed_options(config)
145170
ignite_handlers_options(config)
171+
ignite_loggers_options(config)
146172
model_options(config)
147173

148174
return config

templates/gan/main.pyi

+2
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,8 @@ def run(
9191

9292
# attach ignite handlers
9393
to_save = {'netD': netD, 'netG': netG, 'optimizerD': optimizerD, 'optimizerG': optimizerG, 'trainer': trainer}
94+
optimizers = {'optimizerD': optimizerD, 'optimizerG': optimizerG}
95+
evaluators = None
9496
{% include "_handlers.pyi" %}
9597

9698
# attach progress bar

templates/gan/requirements.txt

+2
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,5 @@ torchvision
33
pytorch-ignite
44
matplotlib
55
pandas
6+
{{ handler_deps }}
7+
{{ logger_deps }}

templates/gan/utils.pyi

+11-5
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,6 @@ DEFAULTS = {
1313
"type": str,
1414
"help": "datasets path ({{ data_path }})",
1515
},
16-
"filepath": {
17-
"default": "{{ filepath }}",
18-
"type": str,
19-
"help": "logging file path ({{ filepath }})",
20-
},
2116
# dataloader options
2217
"batch_size": {
2318
"default": {{batch_size}},
@@ -134,6 +129,17 @@ DEFAULTS = {
134129
"type": bool,
135130
"help": "clear cuda cache every end of epoch",
136131
},
132+
# ignite logger options
133+
"logger_log_every_iters": {
134+
"default": {{logger_log_every_iters}},
135+
"type": int,
136+
"help": "logging interval for experiment tracking system ({{logger_log_every_iters}})",
137+
},
138+
"filepath": {
139+
"default": "{{ filepath }}",
140+
"type": str,
141+
"help": "logging file path ({{ filepath }})",
142+
},
137143
# model options
138144
"z_dim": {
139145
"default": {{z_dim}},

0 commit comments

Comments
 (0)