


"""simple docstring"""







from typing import TYPE_CHECKING

from ...utils import (
    OptionalDependencyNotAvailable,
    _LazyModule,
    is_flax_available,
    is_sentencepiece_available,
    is_tf_available,
    is_tokenizers_available,
    is_torch_available,
)


lowerCamelCase_       :       int      						=  {'configuration_xglm': ['XGLM_PRETRAINED_CONFIG_ARCHIVE_MAP', 'XGLMConfig']}

try:
       if not is_sentencepiece_available():
              raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
       pass
else:
       lowerCamelCase_       :       List[str]      						=  ['XGLMTokenizer']

try:
       if not is_tokenizers_available():
              raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
       pass
else:
       lowerCamelCase_       :       str      						=  ['XGLMTokenizerFast']

try:
       if not is_torch_available():
              raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
       pass
else:
       lowerCamelCase_       :       Any      						=  [
           'XGLM_PRETRAINED_MODEL_ARCHIVE_LIST',
           'XGLMForCausalLM',
           'XGLMModel',
           'XGLMPreTrainedModel',
       ]


try:
       if not is_flax_available():
              raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
       pass
else:
       lowerCamelCase_       :       str      						=  [
           'FlaxXGLMForCausalLM',
           'FlaxXGLMModel',
           'FlaxXGLMPreTrainedModel',
       ]


try:
       if not is_tf_available():
              raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
       pass
else:
       lowerCamelCase_       :       Union[str, Any]      						=  [
           'TF_XGLM_PRETRAINED_MODEL_ARCHIVE_LIST',
           'TFXGLMForCausalLM',
           'TFXGLMModel',
           'TFXGLMPreTrainedModel',
       ]


if TYPE_CHECKING:
       from .configuration_xglm import XGLM_PRETRAINED_CONFIG_ARCHIVE_MAP, XGLMConfig

       try:
              if not is_sentencepiece_available():
                     raise OptionalDependencyNotAvailable()
       except OptionalDependencyNotAvailable:
              pass
       else:
              from .tokenization_xglm import XGLMTokenizer

       try:
              if not is_tokenizers_available():
                     raise OptionalDependencyNotAvailable()
       except OptionalDependencyNotAvailable:
              pass
       else:
              from .tokenization_xglm_fast import XGLMTokenizerFast

       try:
              if not is_torch_available():
                     raise OptionalDependencyNotAvailable()
       except OptionalDependencyNotAvailable:
              pass
       else:
              from .modeling_xglm import XGLM_PRETRAINED_MODEL_ARCHIVE_LIST, XGLMForCausalLM, XGLMModel, XGLMPreTrainedModel

       try:
              if not is_flax_available():
                     raise OptionalDependencyNotAvailable()
       except OptionalDependencyNotAvailable:
              pass
       else:
              from .modeling_flax_xglm import FlaxXGLMForCausalLM, FlaxXGLMModel, FlaxXGLMPreTrainedModel

       try:
              if not is_tf_available():
                     raise OptionalDependencyNotAvailable()
       except OptionalDependencyNotAvailable:
              pass
       else:
              from .modeling_tf_xglm import (
                  TF_XGLM_PRETRAINED_MODEL_ARCHIVE_LIST,
                  TFXGLMForCausalLM,
                  TFXGLMModel,
                  TFXGLMPreTrainedModel,
              )


else:
       import sys

       lowerCamelCase_       :       Dict      						=  _LazyModule(__name__, globals()["""__file__"""], _import_structure)





"""simple docstring"""







import copy

from ...configuration_utils import PretrainedConfig
from ...utils import logging
from ..auto.configuration_auto import CONFIG_MAPPING


lowerCamelCase_       :       int      						=  logging.get_logger(__name__)






class 				__A    (	_SCREAMING_SNAKE_CASE      ):






 """simple docstring"""




 __lowerCAmelCase			 =  "upernet"


 def __init__(		self			,   __A=None			,   __A=512			,   __A=0.02			,   __A=[1, 2, 3, 6]			,   __A=True			,   __A=0.4			,   __A=384			,   __A=256			,   __A=1			,   __A=False			,   __A=255			,   **__A			,   ) ->					Tuple:
     super().__init__(**__A						)

     if backbone_config is None:
         logger.info('''`backbone_config` is `None`. Initializing the config with the default `ResNet` backbone.'''						)
         a					=CONFIG_MAPPING['''resnet'''](out_features=['''stage1''', '''stage2''', '''stage3''', '''stage4''']						)
     elif isinstance(__A			,   __A						):
         a					=backbone_config.get('''model_type'''						)
         a					=CONFIG_MAPPING[backbone_model_type]
         a					=config_class.from_dict(__A						)

     a					=backbone_config
     a					=hidden_size
     a					=initializer_range
     a					=pool_scales
     a					=use_auxiliary_head
     a					=auxiliary_loss_weight
     a					=auxiliary_in_channels
     a					=auxiliary_channels
     a					=auxiliary_num_convs
     a					=auxiliary_concat_input
     a					=loss_ignore_index





 def 				SCREAMING_SNAKE_CASE							(		self						) ->					Dict:
     a					=copy.deepcopy(self.__dict__						)
     a					=self.backbone_config.to_dict()
     a					=self.__class__.model_type
     return output