



'''simple docstring'''





from typing import TYPE_CHECKING

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


_lowerCAmelCase      						=	{
    '''configuration_convnext''': ['''CONVNEXT_PRETRAINED_CONFIG_ARCHIVE_MAP''', '''ConvNextConfig''', '''ConvNextOnnxConfig''']
}

try:
 if not is_vision_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 _lowerCAmelCase      						=	['''ConvNextFeatureExtractor''']
 _lowerCAmelCase      						=	['''ConvNextImageProcessor''']

try:
 if not is_torch_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 _lowerCAmelCase      						=	[
     '''CONVNEXT_PRETRAINED_MODEL_ARCHIVE_LIST''',
     '''ConvNextForImageClassification''',
     '''ConvNextModel''',
     '''ConvNextPreTrainedModel''',
     '''ConvNextBackbone''',
 ]

try:
 if not is_tf_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 _lowerCAmelCase      						=	[
     '''TFConvNextForImageClassification''',
     '''TFConvNextModel''',
     '''TFConvNextPreTrainedModel''',
 ]

if TYPE_CHECKING:
 from .configuration_convnext import CONVNEXT_PRETRAINED_CONFIG_ARCHIVE_MAP, ConvNextConfig, ConvNextOnnxConfig

 try:
  if not is_vision_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from .feature_extraction_convnext import ConvNextFeatureExtractor
  from .image_processing_convnext import ConvNextImageProcessor

 try:
  if not is_torch_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from .modeling_convnext import (
      CONVNEXT_PRETRAINED_MODEL_ARCHIVE_LIST,
      ConvNextBackbone,
      ConvNextForImageClassification,
      ConvNextModel,
      ConvNextPreTrainedModel,
  )

 try:
  if not is_tf_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from .modeling_tf_convnext import TFConvNextForImageClassification, TFConvNextModel, TFConvNextPreTrainedModel


else:
 import sys

 _lowerCAmelCase      						=	_LazyModule(__name__, globals()['''__file__'''], _import_structure)









"""simple docstring"""




from typing import Optional, Union

import torch
from torch import nn

from ...configuration_utils import ConfigMixin, register_to_config
from ...models.modeling_utils import ModelMixin

class  _UpperCAmelCase  (   UpperCAmelCase__			,   UpperCAmelCase__		):



      '''simple docstring'''

      @register_to_config
      def __init__(     self					,      snake_case_ = 7_6_8					,      ):

        """simple docstring"""

        super().__init__()

        A_  :       Optional[int]										=  nn.Parameter(torch.zeros(1					,      snake_case_  )  )
        A_  :       Optional[int]										=  nn.Parameter(torch.ones(1					,      snake_case_  )  )

      def 					lowerCamelCase_			(     self					,      snake_case_ = None					,      snake_case_ = None					,      ):

        """simple docstring"""

        A_  :       str										=  nn.Parameter(self.mean.to(snake_case_  ).to(snake_case_  )  )
        A_  :       Optional[int]										=  nn.Parameter(self.std.to(snake_case_  ).to(snake_case_  )  )
        return self

      def 					lowerCamelCase_			(     self					,      snake_case_  ):

        """simple docstring"""

        A_  :       Tuple										=  (embeds - self.mean) * 1.0 / self.std
        return embeds

      def 					lowerCamelCase_			(     self					,      snake_case_  ):

        """simple docstring"""

        A_  :       List[str]										=  (embeds * self.std) + self.mean
        return embeds