144 lines
4.2 KiB
Markdown
144 lines
4.2 KiB
Markdown
# Log Collector
|
||
|
||
## Function
|
||
|
||
Automatically collect logs and write the result in a json file or markdown file.
|
||
|
||
If there are several `.log.json` files in one folder, Log Collector assumes that the `.log.json` files other than the first one are resume from the preceding `.log.json` file. Log Collector returns the result considering all `.log.json` files.
|
||
|
||
## Usage:
|
||
|
||
To use log collector, you need to write a config file to configure the log collector first.
|
||
|
||
For example:
|
||
|
||
example_config.py:
|
||
|
||
```python
|
||
# The work directory that contains folders that contains .log.json files.
|
||
work_dir = '../../work_dirs'
|
||
# The metric used to find the best evaluation.
|
||
metric = 'mIoU'
|
||
|
||
# **Don't specify the log_items and ignore_keywords at the same time.**
|
||
# Specify the log files we would like to collect in `log_items`.
|
||
# The folders specified should be the subdirectories of `work_dir`.
|
||
log_items = [
|
||
'segformer_mit-b5_512x512_160k_ade20k_cnn_lr_with_warmup',
|
||
'segformer_mit-b5_512x512_160k_ade20k_cnn_no_warmup_lr',
|
||
'segformer_mit-b5_512x512_160k_ade20k_mit_trans_lr',
|
||
'segformer_mit-b5_512x512_160k_ade20k_swin_trans_lr'
|
||
]
|
||
# Or specify `ignore_keywords`. The folders whose name contain one
|
||
# of the keywords in the `ignore_keywords` list(e.g., `'segformer'`)
|
||
# won't be collected.
|
||
# ignore_keywords = ['segformer']
|
||
|
||
# Other log items in .log.json that you want to collect.
|
||
# should not include metric.
|
||
other_info_keys = ["mAcc"]
|
||
# The output markdown file's name.
|
||
markdown_file ='markdowns/lr_in_trans.json.md'
|
||
# The output json file's name. (optional)
|
||
json_file = 'jsons/trans_in_cnn.json'
|
||
```
|
||
|
||
The structure of the work-dir directory should be like:
|
||
|
||
```text
|
||
├── work-dir
|
||
│ ├── folder1
|
||
│ │ ├── time1.log.json
|
||
│ │ ├── time2.log.json
|
||
│ │ ├── time3.log.json
|
||
│ │ ├── time4.log.json
|
||
│ ├── folder2
|
||
│ │ ├── time5.log.json
|
||
│ │ ├── time6.log.json
|
||
│ │ ├── time7.log.json
|
||
│ │ ├── time8.log.json
|
||
```
|
||
|
||
Then , cd to the log collector folder.
|
||
|
||
Now you can run log_collector.py by using command:
|
||
|
||
```bash
|
||
python log_collector.py ./example_config.py
|
||
```
|
||
|
||
The output markdown file is like:
|
||
|
||
|exp_num|method|mIoU best|best index|mIoU last|last index|last iter num|
|
||
|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
|
||
|1|segformer_mit-b5_512x512_160k_ade20k_cnn_lr_with_warmup|0.2776|10|0.2776|10|160000|
|
||
|2|segformer_mit-b5_512x512_160k_ade20k_cnn_no_warmup_lr|0.2802|10|0.2802|10|160000|
|
||
|3|segformer_mit-b5_512x512_160k_ade20k_mit_trans_lr|0.4943|11|0.4943|11|160000|
|
||
|4|segformer_mit-b5_512x512_160k_ade20k_swin_trans_lr|0.4883|11|0.4883|11|160000|
|
||
|
||
The output json file is like:
|
||
```json
|
||
[
|
||
{
|
||
"method": "segformer_mit-b5_512x512_160k_ade20k_cnn_lr_with_warmup",
|
||
"metric_used": "mIoU",
|
||
"last_iter": 160000,
|
||
"last eval": {
|
||
"eval_index": 10,
|
||
"mIoU": 0.2776,
|
||
"mAcc": 0.3779
|
||
},
|
||
"best eval": {
|
||
"eval_index": 10,
|
||
"mIoU": 0.2776,
|
||
"mAcc": 0.3779
|
||
}
|
||
},
|
||
{
|
||
"method": "segformer_mit-b5_512x512_160k_ade20k_cnn_no_warmup_lr",
|
||
"metric_used": "mIoU",
|
||
"last_iter": 160000,
|
||
"last eval": {
|
||
"eval_index": 10,
|
||
"mIoU": 0.2802,
|
||
"mAcc": 0.3764
|
||
},
|
||
"best eval": {
|
||
"eval_index": 10,
|
||
"mIoU": 0.2802,
|
||
"mAcc": 0.3764
|
||
}
|
||
},
|
||
{
|
||
"method": "segformer_mit-b5_512x512_160k_ade20k_mit_trans_lr",
|
||
"metric_used": "mIoU",
|
||
"last_iter": 160000,
|
||
"last eval": {
|
||
"eval_index": 11,
|
||
"mIoU": 0.4943,
|
||
"mAcc": 0.6097
|
||
},
|
||
"best eval": {
|
||
"eval_index": 11,
|
||
"mIoU": 0.4943,
|
||
"mAcc": 0.6097
|
||
}
|
||
},
|
||
{
|
||
"method": "segformer_mit-b5_512x512_160k_ade20k_swin_trans_lr",
|
||
"metric_used": "mIoU",
|
||
"last_iter": 160000,
|
||
"last eval": {
|
||
"eval_index": 11,
|
||
"mIoU": 0.4883,
|
||
"mAcc": 0.6061
|
||
},
|
||
"best eval": {
|
||
"eval_index": 11,
|
||
"mIoU": 0.4883,
|
||
"mAcc": 0.6061
|
||
}
|
||
}
|
||
]
|
||
```
|