| |
| from collections import OrderedDict |
|
|
| from transformers.configuration_utils import PretrainedConfig |
| from transformers.utils import logging |
|
|
| from ...models.camn_audio.configuration_camn_audio import CamnAudioConfig |
|
|
| logger = logging.get_logger(__name__) |
|
|
| CONFIG_MAPPING = OrderedDict( |
| [ |
| ("camn_audio", CamnAudioConfig), |
| |
| ] |
| ) |
|
|
|
|
| class AutoConfig: |
| r""" |
| AutoConfig is a generic configuration class to instantiate a model configuration. |
| It is designed to be instantiated using the `from_pretrained` method: |
| config = AutoConfig.from_pretrained("model_name_or_path") |
| """ |
|
|
| @classmethod |
| def from_pretrained(cls, pretrained_model_name_or_path, **kwargs): |
| from transformers import PretrainedConfig |
| config_dict, _ = PretrainedConfig.get_config_dict(pretrained_model_name_or_path, **kwargs) |
|
|
| if "model_type" in config_dict: |
| model_type = config_dict["model_type"] |
| if model_type in CONFIG_MAPPING: |
| config_class = CONFIG_MAPPING[model_type] |
| return config_class.from_dict(config_dict, **kwargs) |
| else: |
| raise ValueError(f"Unrecognized model type {model_type} in config.json.") |
| else: |
| |
| for pattern, config_class in CONFIG_MAPPING.items(): |
| if pattern in pretrained_model_name_or_path: |
| return config_class.from_dict(config_dict, **kwargs) |
| |
| raise ValueError("Config file is missing the `model_type` field and no default model type could be inferred.") |
|
|