Spaces:
Runtime error
Runtime error
| # ------------------------------------------------------------------------ | |
| # Grounding DINO | |
| # url: https://github.com/IDEA-Research/GroundingDINO | |
| # Copyright (c) 2023 IDEA. All Rights Reserved. | |
| # Licensed under the Apache License, Version 2.0 [see LICENSE for details] | |
| # ------------------------------------------------------------------------ | |
| # -*- coding: utf-8 -*- | |
| # @Author: Yihao Chen | |
| # @Date: 2021-08-16 16:03:17 | |
| # @Last Modified by: Shilong Liu | |
| # @Last Modified time: 2022-01-23 15:26 | |
| # modified from mmcv | |
| import inspect | |
| from functools import partial | |
| class Registry(object): | |
| def __init__(self, name): | |
| self._name = name | |
| self._module_dict = dict() | |
| def __repr__(self): | |
| format_str = self.__class__.__name__ + "(name={}, items={})".format( | |
| self._name, list(self._module_dict.keys()) | |
| ) | |
| return format_str | |
| def __len__(self): | |
| return len(self._module_dict) | |
| def name(self): | |
| return self._name | |
| def module_dict(self): | |
| return self._module_dict | |
| def get(self, key): | |
| return self._module_dict.get(key, None) | |
| def registe_with_name(self, module_name=None, force=False): | |
| return partial(self.register, module_name=module_name, force=force) | |
| def register(self, module_build_function, module_name=None, force=False): | |
| """Register a module build function. | |
| Args: | |
| module (:obj:`nn.Module`): Module to be registered. | |
| """ | |
| if not inspect.isfunction(module_build_function): | |
| raise TypeError( | |
| "module_build_function must be a function, but got {}".format( | |
| type(module_build_function) | |
| ) | |
| ) | |
| if module_name is None: | |
| module_name = module_build_function.__name__ | |
| if not force and module_name in self._module_dict: | |
| raise KeyError("{} is already registered in {}".format(module_name, self.name)) | |
| self._module_dict[module_name] = module_build_function | |
| return module_build_function | |
| MODULE_BUILD_FUNCS = Registry("model build functions") | |