'''simple docstring'''





from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_tensorflow_text_available, is_torch_available


_lowerCAmelCase  :List[str]  				=    {
    """configuration_ernie""": ["""ERNIE_PRETRAINED_CONFIG_ARCHIVE_MAP""", """ErnieConfig""", """ErnieOnnxConfig"""],
}

try:
 if not is_torch_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 _lowerCAmelCase  :List[str]  				=    [
     """ERNIE_PRETRAINED_MODEL_ARCHIVE_LIST""",
     """ErnieForCausalLM""",
     """ErnieForMaskedLM""",
     """ErnieForMultipleChoice""",
     """ErnieForNextSentencePrediction""",
     """ErnieForPreTraining""",
     """ErnieForQuestionAnswering""",
     """ErnieForSequenceClassification""",
     """ErnieForTokenClassification""",
     """ErnieModel""",
     """ErniePreTrainedModel""",
 ]

if TYPE_CHECKING:
 from .configuration_ernie import ERNIE_PRETRAINED_CONFIG_ARCHIVE_MAP, ErnieConfig, ErnieOnnxConfig

 try:
  if not is_torch_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from .modeling_ernie import (
      ERNIE_PRETRAINED_MODEL_ARCHIVE_LIST,
      ErnieForCausalLM,
      ErnieForMaskedLM,
      ErnieForMultipleChoice,
      ErnieForNextSentencePrediction,
      ErnieForPreTraining,
      ErnieForQuestionAnswering,
      ErnieForSequenceClassification,
      ErnieForTokenClassification,
      ErnieModel,
      ErniePreTrainedModel,
  )

else:
 import sys

 _lowerCAmelCase  :List[str]  				=    _LazyModule(__name__, globals()["""__file__"""], _import_structure, module_spec=__spec__)




'''simple docstring'''





import unittest

from transformers import is_torch_available
from transformers.testing_utils import require_torch


if is_torch_available():
 import torch

 from transformers.activations import gelu_new, gelu_python, get_activation






@require_torch
class 				UpperCAmelCase (       unittest.TestCase ):




    '''simple docstring'''







    def       _UpperCamelCase    (       self )							-> int:
         SCREAMING_SNAKE_CASE					:			str    	=       torch.tensor([-100, -1, -0.1, 0, 0.1, 1.0, 100] )
         SCREAMING_SNAKE_CASE					:			str    	=       get_activation('gelu' )
         self.assertTrue(torch.allclose(gelu_python(lowercase__ )    ,							torch_builtin(lowercase__ ) ) )
         self.assertFalse(torch.allclose(gelu_python(lowercase__ )    ,							gelu_new(lowercase__ ) ) )






    def       _UpperCamelCase    (       self )							-> Optional[Any]:
         SCREAMING_SNAKE_CASE					:			Union[str, Any]    	=       torch.tensor([-100, -1, -0.1, 0, 0.1, 1.0, 100] )
         SCREAMING_SNAKE_CASE					:			str    	=       get_activation('gelu' )
         SCREAMING_SNAKE_CASE					:			Dict    	=       get_activation('gelu_10' )

         SCREAMING_SNAKE_CASE					:			Optional[int]    	=       torch_builtin(lowercase__ )
         SCREAMING_SNAKE_CASE					:			str    	=       geluaa(lowercase__ )

         SCREAMING_SNAKE_CASE					:			List[Any]    	=       torch.where(y_gelu_aa < 1_0.0    ,							1    ,							0 )

         self.assertTrue(torch.max(lowercase__ ).item() == 1_0.0 )
         self.assertTrue(torch.allclose(y_gelu * clipped_mask    ,							y_gelu_aa * clipped_mask ) )






    def       _UpperCamelCase    (       self )							-> Optional[Any]:
         get_activation('gelu' )
         get_activation('gelu_10' )
         get_activation('gelu_fast' )
         get_activation('gelu_new' )
         get_activation('gelu_python' )
         get_activation('gelu_pytorch_tanh' )
         get_activation('linear' )
         get_activation('mish' )
         get_activation('quick_gelu' )
         get_activation('relu' )
         get_activation('sigmoid' )
         get_activation('silu' )
         get_activation('swish' )
         get_activation('tanh' )
         with self.assertRaises(lowercase__ ):
              get_activation('bogus' )
         with self.assertRaises(lowercase__ ):
              get_activation(lowercase__ )






    def       _UpperCamelCase    (       self )							-> int:
         SCREAMING_SNAKE_CASE					:			Optional[int]    	=       get_activation('gelu' )
         SCREAMING_SNAKE_CASE					:			str    	=       1
         SCREAMING_SNAKE_CASE					:			List[str]    	=       get_activation('gelu' )
         self.assertEqual(acta.a    ,							1 )
         with self.assertRaises(lowercase__ ):
              SCREAMING_SNAKE_CASE					:			Dict    	=       acta.a



