Skip to content

Commit 07d6401

Browse files
authored
Argparse defaults with defaults specifier (#84)
* Defaults for _base * Defaults for gan * Defaults for image * Periods * Update READMEs
1 parent a6098b6 commit 07d6401

File tree

5 files changed

+140
-145
lines changed

5 files changed

+140
-145
lines changed

templates/_base/_argparse.py

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -6,123 +6,123 @@
66
DEFAULTS = {
77
"use_amp": {
88
"action": "store_true",
9-
"help": "use torch.cuda.amp for automatic mixed precision"
9+
"help": "use torch.cuda.amp for automatic mixed precision. Default: %(default)s"
1010
},
1111
"resume_from": {
1212
"default": None,
1313
"type": str,
14-
"help": "path to the checkpoint file to resume, can also url starting with https (None)"
14+
"help": "path to the checkpoint file to resume, can also url starting with https. Default: %(default)s"
1515
},
1616
"seed": {
1717
"default": 666,
1818
"type": int,
19-
"help": "seed to use in ignite.utils.manual_seed() (666)"
19+
"help": "seed to use in ignite.utils.manual_seed(). Default: %(default)s"
2020
},
2121
"verbose": {
2222
"action": "store_true",
23-
"help": "use logging.INFO in ignite.utils.setup_logger",
23+
"help": "use logging.INFO in ignite.utils.setup_logger. Default: %(default)s",
2424
},
2525

2626
# distributed training options
2727
"backend": {
2828
"default": None,
2929
"type": str,
30-
"help": "backend to use for distributed training (None)",
30+
"help": "backend to use for distributed training. Default: %(default)s",
3131
},
3232
"nproc_per_node": {
3333
"default": {{nproc_per_node}},
3434
"type": int,
3535
"help": """number of processes to launch on each node, for GPU training
3636
this is recommended to be set to the number of GPUs in your system
37-
so that each process can be bound to a single GPU ({{ nproc_per_node }})""",
37+
so that each process can be bound to a single GPU. Default: %(default)s""",
3838
},
3939
"node_rank": {
4040
"default": {{node_rank}},
4141
"type": int,
42-
"help": "rank of the node for multi-node distributed training ({{ node_rank }})",
42+
"help": "rank of the node for multi-node distributed training. Default: %(default)s",
4343
},
4444
"nnodes": {
4545
"default": {{nnodes}},
4646
"type": int,
47-
"help": "number of nodes to use for distributed training ({{ nnodes }})",
47+
"help": "number of nodes to use for distributed training. Default: %(default)s",
4848
},
4949
"master_addr": {
5050
"default": {{master_addr}},
5151
"type": str,
52-
"help": "master node TCP/IP address for torch native backends ({{ master_addr }})",
52+
"help": "master node TCP/IP address for torch native backends. Default: %(default)s",
5353
},
5454
"master_port": {
5555
"default": {{master_port}},
5656
"type": int,
57-
"help": "master node port for torch native backends ({{ master_port }})",
57+
"help": "master node port for torch native backends. Default: %(default)s",
5858
},
5959
"epoch_length": {
6060
"default": None,
6161
"type": int,
62-
"help": "epoch_length of Engine.run()"
62+
"help": "epoch_length of Engine.run(). Default: %(default)s"
6363
},
6464
# ignite handlers options
6565
"save_every_iters": {
6666
"default": {{save_every_iters}},
6767
"type": int,
68-
"help": "Saving iteration interval ({{save_every_iters}})",
68+
"help": "Saving iteration interval. Default: %(default)s",
6969
},
7070
"n_saved": {
7171
"default": {{n_saved}},
7272
"type": int,
73-
"help": "number of best models to store ({{ n_saved }})",
73+
"help": "number of best models to store. Default: %(default)s",
7474
},
7575
"log_every_iters": {
7676
"default": {{log_every_iters}},
7777
"type": int,
78-
"help": "logging interval for iteration progress bar ({{log_every_iters}})",
78+
"help": "logging interval for iteration progress bar. Default: %(default)s",
7979
},
8080
"with_pbars": {
8181
"default": {{with_pbars}},
8282
"type": bool,
83-
"help": "show epoch-wise and iteration-wise progress bars ({{with_pbars}})",
83+
"help": "show epoch-wise and iteration-wise progress bars. Default: %(default)s",
8484
},
8585
"with_pbar_on_iters": {
8686
"default": {{with_pbar_on_iters}},
8787
"type": bool,
88-
"help": "show iteration progress bar or not ({{with_pbar_on_iters}})",
88+
"help": "show iteration progress bar or not. Default: %(default)s",
8989
},
9090
"stop_on_nan": {
9191
"default": {{stop_on_nan}},
9292
"type": bool,
93-
"help": "stop the training if engine output contains NaN/inf values ({{stop_on_nan}})",
93+
"help": "stop the training if engine output contains NaN/inf values. Default: %(default)s",
9494
},
9595
"clear_cuda_cache": {
9696
"default": {{clear_cuda_cache}},
9797
"type": bool,
98-
"help": "clear cuda cache every end of epoch ({{clear_cuda_cache}})",
98+
"help": "clear cuda cache every end of epoch. Default: %(default)s",
9999
},
100100
"with_gpu_stats": {
101101
"default": {{with_gpu_stats}},
102102
"type": bool,
103-
"help": "show gpu information, requires pynvml ({{with_gpu_stats}})",
103+
"help": "show gpu information, requires pynvml. Default: %(default)s",
104104
},
105105
"patience": {
106106
"default": {{patience}},
107107
"type": int,
108-
"help": "number of events to wait if no improvement and then stop the training ({{patience}})"
108+
"help": "number of events to wait if no improvement and then stop the training. Default: %(default)s"
109109
},
110110
"limit_sec": {
111111
"default": {{limit_sec}},
112112
"type": int,
113-
"help": "maximum time before training terminates in seconds ({{limit_sec}})"
113+
"help": "maximum time before training terminates in seconds. Default: %(default)s"
114114
},
115115

116116
# ignite logger options
117117
"output_dir": {
118118
"default": "{{ output_dir }}",
119119
"type": str,
120-
"help": "directory to save all outputs ({{ output_dir }})",
120+
"help": "directory to save all outputs. Default: %(default)s",
121121
},
122122
"logger_log_every_iters": {
123123
"default": {{logger_log_every_iters}},
124124
"type": int,
125-
"help": "logging interval for experiment tracking system ({{logger_log_every_iters}})",
125+
"help": "logging interval for experiment tracking system. Default: %(default)s",
126126
},
127127
}
128128
{% endblock %}

templates/gan/README.md

Lines changed: 48 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -130,92 +130,77 @@ Let's start training on {{nnodes}} nodes with {{nproc_per_node}} gpus each:
130130
## Configurations
131131

132132
```sh
133-
usage: main.py [-h] [--use_amp] [--resume_from RESUME_FROM] [--seed SEED]
134-
[--verbose] [--backend BACKEND]
135-
[--nproc_per_node NPROC_PER_NODE] [--nnodes NNODES]
136-
[--node_rank NODE_RANK] [--master_addr MASTER_ADDR]
137-
[--master_port MASTER_PORT]
138-
[--save_every_iters SAVE_EVERY_ITERS] [--n_saved N_SAVED]
139-
[--log_every_iters LOG_EVERY_ITERS] [--with_pbars WITH_PBARS]
140-
[--with_pbar_on_iters WITH_PBAR_ON_ITERS]
141-
[--stop_on_nan STOP_ON_NAN]
142-
[--clear_cuda_cache CLEAR_CUDA_CACHE]
143-
[--with_gpu_stats WITH_GPU_STATS] [--patience PATIENCE]
144-
[--limit_sec LIMIT_SEC] [--output_dir OUTPUT_DIR]
145-
[--logger_log_every_iters LOGGER_LOG_EVERY_ITERS]
146-
[--dataset {cifar10,lsun,imagenet,folder,lfw,fake,mnist}]
147-
[--data_path DATA_PATH] [--batch_size BATCH_SIZE]
148-
[--num_workers NUM_WORKERS] [--beta_1 BETA_1] [--lr LR]
149-
[--max_epochs MAX_EPOCHS] [--z_dim Z_DIM]
150-
[--g_filters G_FILTERS] [--d_filters D_FILTERS]
133+
usage: main.py [-h] [--use_amp] [--resume_from RESUME_FROM] [--seed SEED] [--verbose] [--backend BACKEND]
134+
[--nproc_per_node NPROC_PER_NODE] [--node_rank NODE_RANK] [--nnodes NNODES]
135+
[--master_addr MASTER_ADDR] [--master_port MASTER_PORT] [--epoch_length EPOCH_LENGTH]
136+
[--save_every_iters SAVE_EVERY_ITERS] [--n_saved N_SAVED] [--log_every_iters LOG_EVERY_ITERS]
137+
[--with_pbars WITH_PBARS] [--with_pbar_on_iters WITH_PBAR_ON_ITERS]
138+
[--stop_on_nan STOP_ON_NAN] [--clear_cuda_cache CLEAR_CUDA_CACHE]
139+
[--with_gpu_stats WITH_GPU_STATS] [--patience PATIENCE] [--limit_sec LIMIT_SEC]
140+
[--output_dir OUTPUT_DIR] [--logger_log_every_iters LOGGER_LOG_EVERY_ITERS]
141+
[--dataset {cifar10,lsun,imagenet,folder,lfw,fake,mnist}] [--data_path DATA_PATH]
142+
[--batch_size BATCH_SIZE] [--num_workers NUM_WORKERS] [--beta_1 BETA_1] [--lr LR]
143+
[--max_epochs MAX_EPOCHS] [--z_dim Z_DIM] [--g_filters G_FILTERS] [--d_filters D_FILTERS]
151144

152145
optional arguments:
153146
-h, --help show this help message and exit
154-
--use_amp use torch.cuda.amp for automatic mixed precision
147+
--use_amp use torch.cuda.amp for automatic mixed precision. Default: False
155148
--resume_from RESUME_FROM
156-
path to the checkpoint file to resume, can also url
157-
starting with https (None)
158-
--seed SEED seed to use in ignite.utils.manual_seed() (666)
159-
--verbose use logging.INFO in ignite.utils.setup_logger
160-
--backend BACKEND backend to use for distributed training (None)
149+
path to the checkpoint file to resume, can also url starting with https. Default:
150+
None
151+
--seed SEED seed to use in ignite.utils.manual_seed(). Default: 666
152+
--verbose use logging.INFO in ignite.utils.setup_logger. Default: False
153+
--backend BACKEND backend to use for distributed training. Default: None
161154
--nproc_per_node NPROC_PER_NODE
162-
number of processes to launch on each node, for GPU
163-
training this is recommended to be set to the number
164-
of GPUs in your system so that each process can be
165-
bound to a single GPU (None)
166-
--nnodes NNODES number of nodes to use for distributed training (None)
155+
number of processes to launch on each node, for GPU training this is recommended to
156+
be set to the number of GPUs in your system so that each process can be bound to a
157+
single GPU. Default: None
167158
--node_rank NODE_RANK
168-
rank of the node for multi-node distributed training
169-
(None)
159+
rank of the node for multi-node distributed training. Default: None
160+
--nnodes NNODES number of nodes to use for distributed training. Default: None
170161
--master_addr MASTER_ADDR
171-
master node TCP/IP address for torch native backends
172-
(None)
162+
master node TCP/IP address for torch native backends. Default: None
173163
--master_port MASTER_PORT
174-
master node port for torch native backends (None)
164+
master node port for torch native backends. Default: None
165+
--epoch_length EPOCH_LENGTH
166+
epoch_length of Engine.run(). Default: None
175167
--save_every_iters SAVE_EVERY_ITERS
176-
Saving iteration interval (1000)
177-
--n_saved N_SAVED number of best models to store (2)
168+
Saving iteration interval. Default: 1000
169+
--n_saved N_SAVED number of best models to store. Default: 2
178170
--log_every_iters LOG_EVERY_ITERS
179-
logging interval for iteration progress bar (100)
171+
logging interval for iteration progress bar. Default: 100
180172
--with_pbars WITH_PBARS
181-
show epoch-wise and iteration-wise progress bars
182-
(True)
173+
show epoch-wise and iteration-wise progress bars. Default: False
183174
--with_pbar_on_iters WITH_PBAR_ON_ITERS
184-
show iteration progress bar or not (True)
175+
show iteration progress bar or not. Default: True
185176
--stop_on_nan STOP_ON_NAN
186-
stop the training if engine output contains NaN/inf
187-
values (True)
177+
stop the training if engine output contains NaN/inf values. Default: True
188178
--clear_cuda_cache CLEAR_CUDA_CACHE
189-
clear cuda cache every end of epoch (True)
179+
clear cuda cache every end of epoch. Default: True
190180
--with_gpu_stats WITH_GPU_STATS
191-
show gpu information, requires pynvml (False)
192-
--patience PATIENCE number of events to wait if no improvement and then
193-
stop the training (None)
181+
show gpu information, requires pynvml. Default: False
182+
--patience PATIENCE number of events to wait if no improvement and then stop the training. Default: None
194183
--limit_sec LIMIT_SEC
195-
maximum time before training terminates in seconds
196-
(None)
184+
maximum time before training terminates in seconds. Default: None
197185
--output_dir OUTPUT_DIR
198-
directory to save all outputs (./logs)
186+
directory to save all outputs. Default: ./logs
199187
--logger_log_every_iters LOGGER_LOG_EVERY_ITERS
200-
logging interval for experiment tracking system (100)
188+
logging interval for experiment tracking system. Default: 100
201189
--dataset {cifar10,lsun,imagenet,folder,lfw,fake,mnist}
202-
dataset to use (cifar10)
190+
dataset to use. Default: cifar10
203191
--data_path DATA_PATH
204-
datasets path (./)
192+
datasets path. Default: ./
205193
--batch_size BATCH_SIZE
206-
will be equally divided by number of GPUs if in
207-
distributed (4)
194+
will be equally divided by number of GPUs if in distributed. Default: 16
208195
--num_workers NUM_WORKERS
209-
num_workers for DataLoader (2)
210-
--beta_1 BETA_1 beta_1 for Adam optimizer (0.5)
211-
--lr LR learning rate used by torch.optim.* (0.001)
196+
num_workers for DataLoader. Default: 2
197+
--beta_1 BETA_1 beta_1 for Adam optimizer. Default: 0.5
198+
--lr LR learning rate used by torch.optim.*. Default: 0.001
212199
--max_epochs MAX_EPOCHS
213-
max_epochs of ignite.Engine.run() for training (2)
214-
--z_dim Z_DIM size of the latent z vector (100)
200+
max_epochs of ignite.Engine.run() for training. Default: 5
201+
--z_dim Z_DIM size of the latent z vector. Default: 100
215202
--g_filters G_FILTERS
216-
number of filters in the second-to-last generator
217-
deconv layer (64)
203+
number of filters in the second-to-last generator deconv layer. Default: 64
218204
--d_filters D_FILTERS
219-
number of filters in first discriminator conv layer
220-
(64)
205+
number of filters in first discriminator conv layer. Default: 64
221206
```

templates/gan/config.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,56 +6,56 @@
66
"default": "{{ dataset }}",
77
"type": str,
88
"choices": ["cifar10", "lsun", "imagenet", "folder", "lfw", "fake", "mnist"],
9-
"help": "dataset to use ({{ dataset }})",
9+
"help": "dataset to use. Default: %(default)s",
1010
},
1111
"data_path": {
1212
"default": "{{ data_path }}",
1313
"type": str,
14-
"help": "datasets path ({{ data_path }})",
14+
"help": "datasets path. Default: %(default)s",
1515
},
1616
# dataloader options
1717
"batch_size": {
1818
"default": {{batch_size}},
1919
"type": int,
20-
"help": "will be equally divided by number of GPUs if in distributed ({{ batch_size }})",
20+
"help": "will be equally divided by number of GPUs if in distributed. Default: %(default)s",
2121
},
2222
"num_workers": {
2323
"default": {{num_workers}},
2424
"type": int,
25-
"help": "num_workers for DataLoader ({{ num_workers }})",
25+
"help": "num_workers for DataLoader. Default: %(default)s",
2626
},
2727
# optimizer options
2828
"beta_1": {
2929
"default": {{beta_1}},
3030
"type": float,
31-
"help": "beta_1 for Adam optimizer ({{ beta_1 }})",
31+
"help": "beta_1 for Adam optimizer. Default: %(default)s",
3232
},
3333
"lr": {
3434
"default": {{lr}},
3535
"type": float,
36-
"help": "learning rate used by torch.optim.* ({{ lr }})",
36+
"help": "learning rate used by torch.optim.*. Default: %(default)s",
3737
},
3838
# training options
3939
"max_epochs": {
4040
"default": {{max_epochs}},
4141
"type": int,
42-
"help": "max_epochs of ignite.Engine.run() for training ({{ max_epochs }})",
42+
"help": "max_epochs of ignite.Engine.run() for training. Default: %(default)s",
4343
},
4444
# model options
4545
"z_dim": {
4646
"default": {{z_dim}},
4747
"type": int,
48-
"help": "size of the latent z vector ({{ z_dim }})",
48+
"help": "size of the latent z vector. Default: %(default)s",
4949
},
5050
"g_filters": {
5151
"default": {{g_filters}},
5252
"type": int,
53-
"help": "number of filters in the second-to-last generator deconv layer ({{ g_filters }})",
53+
"help": "number of filters in the second-to-last generator deconv layer. Default: %(default)s",
5454
},
5555
"d_filters": {
5656
"default": {{d_filters}},
5757
"type": int,
58-
"help": "number of filters in first discriminator conv layer ({{ d_filters }})",
58+
"help": "number of filters in first discriminator conv layer. Default: %(default)s",
5959
},
6060
}
6161

0 commit comments

Comments
 (0)