
from ...configuration_utils import PretrainedConfig
from ...utils import logging


A		: Dict								=     logging.get_logger(__name__)

A		: Any								=     {
    '''google/vivit-b-16x2-kinetics400''': (
        '''https://huggingface.co/google/vivit-b-16x2-kinetics400/resolve/main/config.json'''
    ),
    # See all Vivit models at https://huggingface.co/models?filter=vivit
}



class    a_ (			_a    ):
			a	:			Tuple					   =							'''vivit'''






			def __init__(      self				,			__UpperCamelCase=224				,			__UpperCamelCase=32				,			__UpperCamelCase=[2, 16, 16]				,			__UpperCamelCase=3				,			__UpperCamelCase=768				,			__UpperCamelCase=12				,			__UpperCamelCase=12				,			__UpperCamelCase=3_072				,			__UpperCamelCase="gelu_fast"				,			__UpperCamelCase=0.0				,			__UpperCamelCase=0.0				,			__UpperCamelCase=0.02				,			__UpperCamelCase=1E-06				,			__UpperCamelCase=True				,			**__UpperCamelCase				,			):
									_lowercase					       =					hidden_size
									_lowercase					       =					num_hidden_layers
									_lowercase					       =					num_attention_heads
									_lowercase					       =					intermediate_size
									_lowercase					       =					hidden_act
									_lowercase					       =					hidden_dropout_prob
									_lowercase					       =					attention_probs_dropout_prob
									_lowercase					       =					initializer_range
									_lowercase					       =					layer_norm_eps

									_lowercase					       =					image_size
									_lowercase					       =					num_frames
									_lowercase					       =					tubelet_size
									_lowercase					       =					num_channels
									_lowercase					       =					qkv_bias

									super().__init__(**__UpperCamelCase  )

from __future__ import annotations




def 	UpperCamelCase__  (     SCREAMING_SNAKE_CASE_	:	float		,   SCREAMING_SNAKE_CASE_	:	float		,   SCREAMING_SNAKE_CASE_	:	float		,   )  ->     tuple:
						if (electron_conc, hole_conc, intrinsic_conc).count(0       ) != 1:
												raise ValueError("""You cannot supply more or less than 2 values"""       )
						elif electron_conc < 0:
												raise ValueError("""Electron concentration cannot be negative in a semiconductor"""       )
						elif hole_conc < 0:
												raise ValueError("""Hole concentration cannot be negative in a semiconductor"""       )
						elif intrinsic_conc < 0:
												raise ValueError(
												    """Intrinsic concentration cannot be negative in a semiconductor"""       )
						elif electron_conc == 0:
												return (
												    "electron_conc",
												    intrinsic_conc**2 / hole_conc,
												)
						elif hole_conc == 0:
												return (
												    "hole_conc",
												    intrinsic_conc**2 / electron_conc,
												)
						elif intrinsic_conc == 0:
												return (
												    "intrinsic_conc",
												    (electron_conc * hole_conc) ** 0.5,
												)
						else:
												return (-1, -1)


if __name__ == "__main__":
		import doctest

		doctest.testmod()