

from typing import TYPE_CHECKING

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


__a  :Optional[int]										=       {
    "configuration_convbert": ["CONVBERT_PRETRAINED_CONFIG_ARCHIVE_MAP", "ConvBertConfig", "ConvBertOnnxConfig"],
    "tokenization_convbert": ["ConvBertTokenizer"],
}

try:
      if not is_tokenizers_available():
            raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
      pass
else:
      __a  :Tuple										=       ["ConvBertTokenizerFast"]

try:
      if not is_torch_available():
            raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
      pass
else:
      __a  :Tuple										=       [
          "CONVBERT_PRETRAINED_MODEL_ARCHIVE_LIST",
          "ConvBertForMaskedLM",
          "ConvBertForMultipleChoice",
          "ConvBertForQuestionAnswering",
          "ConvBertForSequenceClassification",
          "ConvBertForTokenClassification",
          "ConvBertLayer",
          "ConvBertModel",
          "ConvBertPreTrainedModel",
          "load_tf_weights_in_convbert",
      ]


try:
      if not is_tf_available():
            raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
      pass
else:
      __a  :Dict										=       [
          "TF_CONVBERT_PRETRAINED_MODEL_ARCHIVE_LIST",
          "TFConvBertForMaskedLM",
          "TFConvBertForMultipleChoice",
          "TFConvBertForQuestionAnswering",
          "TFConvBertForSequenceClassification",
          "TFConvBertForTokenClassification",
          "TFConvBertLayer",
          "TFConvBertModel",
          "TFConvBertPreTrainedModel",
      ]


if TYPE_CHECKING:
      from .configuration_convbert import CONVBERT_PRETRAINED_CONFIG_ARCHIVE_MAP, ConvBertConfig, ConvBertOnnxConfig
      from .tokenization_convbert import ConvBertTokenizer

      try:
            if not is_tokenizers_available():
                  raise OptionalDependencyNotAvailable()
      except OptionalDependencyNotAvailable:
            pass
      else:
            from .tokenization_convbert_fast import ConvBertTokenizerFast

      try:
            if not is_torch_available():
                  raise OptionalDependencyNotAvailable()
      except OptionalDependencyNotAvailable:
            pass
      else:
            from .modeling_convbert import (
                CONVBERT_PRETRAINED_MODEL_ARCHIVE_LIST,
                ConvBertForMaskedLM,
                ConvBertForMultipleChoice,
                ConvBertForQuestionAnswering,
                ConvBertForSequenceClassification,
                ConvBertForTokenClassification,
                ConvBertLayer,
                ConvBertModel,
                ConvBertPreTrainedModel,
                load_tf_weights_in_convbert,
            )

      try:
            if not is_tf_available():
                  raise OptionalDependencyNotAvailable()
      except OptionalDependencyNotAvailable:
            pass
      else:
            from .modeling_tf_convbert import (
                TF_CONVBERT_PRETRAINED_MODEL_ARCHIVE_LIST,
                TFConvBertForMaskedLM,
                TFConvBertForMultipleChoice,
                TFConvBertForQuestionAnswering,
                TFConvBertForSequenceClassification,
                TFConvBertForTokenClassification,
                TFConvBertLayer,
                TFConvBertModel,
                TFConvBertPreTrainedModel,
            )


else:
      import sys

      __a  :List[Any]										=       _LazyModule(__name__, globals()['__file__'], _import_structure, module_spec=__spec__)





from torch import nn


def 						lowerCamelCase__    (		_A							):







	'''simple docstring'''





	if act_fn in ["swish", "silu"]:
		return nn.SiLU()
	elif act_fn == "mish":
		return nn.Mish()
	elif act_fn == "gelu":
		return nn.GELU()
	else:
		raise ValueError(f"Unsupported activation function: {act_fn}"							)
