Spaces:
Runtime error
Runtime error
#!/usr/bin/env python | |
# Copyright (c) OpenMMLab. All rights reserved. | |
"""This file is for benchmark data loading process. It can also be used to | |
refresh the memcached cache. The command line to run this file is: | |
$ python -m cProfile -o program.prof tools/analysis/benchmark_processing.py | |
configs/task/method/[config filename] | |
Note: When debugging, the `workers_per_gpu` in the config should be set to 0 | |
during benchmark. | |
It use cProfile to record cpu running time and output to program.prof | |
To visualize cProfile output program.prof, use Snakeviz and run: | |
$ snakeviz program.prof | |
""" | |
import argparse | |
import mmcv | |
from mmcv import Config | |
from mmdet.datasets import build_dataloader | |
from mmocr.datasets import build_dataset | |
assert build_dataset is not None | |
def main(): | |
parser = argparse.ArgumentParser(description='Benchmark data loading') | |
parser.add_argument('config', help='Train config file path.') | |
args = parser.parse_args() | |
cfg = Config.fromfile(args.config) | |
dataset = build_dataset(cfg.data.train) | |
# prepare data loaders | |
if 'imgs_per_gpu' in cfg.data: | |
cfg.data.samples_per_gpu = cfg.data.imgs_per_gpu | |
data_loader = build_dataloader( | |
dataset, | |
cfg.data.samples_per_gpu, | |
cfg.data.workers_per_gpu, | |
1, | |
dist=False, | |
seed=None) | |
# Start progress bar after first 5 batches | |
prog_bar = mmcv.ProgressBar( | |
len(dataset) - 5 * cfg.data.samples_per_gpu, start=False) | |
for i, data in enumerate(data_loader): | |
if i == 5: | |
prog_bar.start() | |
for _ in range(len(data['img'])): | |
if i < 5: | |
continue | |
prog_bar.update() | |
if __name__ == '__main__': | |
main() | |