Spaces:
Runtime error
Runtime error
| #!/usr/bin/env python | |
| import functools as func | |
| import glob | |
| import os.path as osp | |
| import re | |
| import numpy as np | |
| url_prefix = 'https://github.com/open-mmlab/mmdetection/blob/3.x/configs' | |
| files = sorted(glob.glob('../../configs/*/README.md')) | |
| stats = [] | |
| titles = [] | |
| num_ckpts = 0 | |
| for f in files: | |
| url = osp.dirname(f.replace('../../configs', url_prefix)) | |
| with open(f) as content_file: | |
| content = content_file.read() | |
| title = content.split('\n')[0].replace('# ', '').strip() | |
| ckpts = { | |
| x.lower().strip() | |
| for x in re.findall(r'\[model\]\((https?.*)\)', content) | |
| } | |
| if len(ckpts) == 0: | |
| continue | |
| _papertype = [x for x in re.findall(r'\[([A-Z]+)\]', content)] | |
| assert len(_papertype) > 0 | |
| papertype = _papertype[0] | |
| paper = {(papertype, title)} | |
| titles.append(title) | |
| num_ckpts += len(ckpts) | |
| statsmsg = f""" | |
| \t* [{papertype}] [{title}]({url}) ({len(ckpts)} ckpts) | |
| """ | |
| stats.append((paper, ckpts, statsmsg)) | |
| allpapers = func.reduce(lambda a, b: a.union(b), [p for p, _, _ in stats]) | |
| msglist = '\n'.join(x for _, _, x in stats) | |
| papertypes, papercounts = np.unique([t for t, _ in allpapers], | |
| return_counts=True) | |
| countstr = '\n'.join( | |
| [f' - {t}: {c}' for t, c in zip(papertypes, papercounts)]) | |
| modelzoo = f""" | |
| # Model Zoo Statistics | |
| * Number of papers: {len(set(titles))} | |
| {countstr} | |
| * Number of checkpoints: {num_ckpts} | |
| {msglist} | |
| """ | |
| with open('modelzoo_statistics.md', 'w') as f: | |
| f.write(modelzoo) | |