File size: 1,114 Bytes
33569f9 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | import os
# backbone (e.g., conv / transformer)
backbones = {}
def register_backbone(name):
def decorator(cls):
backbones[name] = cls
return cls
return decorator
# neck (e.g., FPN)
necks = {}
def register_neck(name):
def decorator(cls):
necks[name] = cls
return cls
return decorator
# location generator (point, segment, etc)
generators = {}
def register_generator(name):
def decorator(cls):
generators[name] = cls
return cls
return decorator
# meta arch (the actual implementation of each model)
meta_archs = {}
def register_meta_arch(name):
def decorator(cls):
meta_archs[name] = cls
return cls
return decorator
# builder functions
def make_backbone(name, **kwargs):
backbone = backbones[name](**kwargs)
return backbone
def make_neck(name, **kwargs):
neck = necks[name](**kwargs)
return neck
def make_meta_arch(name, **kwargs):
meta_arch = meta_archs[name](**kwargs)
return meta_arch
def make_generator(name, **kwargs):
generator = generators[name](**kwargs)
return generator
|