






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


__UpperCAmelCase     							=						logging.get_logger(__name__)

__UpperCAmelCase     							=						{
    'SCUT-DLVCLab/lilt-roberta-en-base': (
        'https://huggingface.co/SCUT-DLVCLab/lilt-roberta-en-base/resolve/main/config.json'
    ),
}



class   lowerCamelCase				(_snake_case      ):







		'''simple docstring'''



		_snake_case   :   Dict							=  '''lilt'''



		def __init__(							self    ,		_UpperCamelCase=3_0_5_2_2    ,		_UpperCamelCase=7_6_8    ,		_UpperCamelCase=1_2    ,		_UpperCamelCase=1_2    ,		_UpperCamelCase=3_0_7_2    ,		_UpperCamelCase="gelu"    ,		_UpperCamelCase=0.1    ,		_UpperCamelCase=0.1    ,		_UpperCamelCase=5_1_2    ,		_UpperCamelCase=2    ,		_UpperCamelCase=0.02    ,		_UpperCamelCase=1E-12    ,		_UpperCamelCase=0    ,		_UpperCamelCase="absolute"    ,		_UpperCamelCase=None    ,		_UpperCamelCase=4    ,		_UpperCamelCase=1_0_2_4    ,		**_UpperCamelCase    ,		)     ->							Optional[int]:
							super().__init__(pad_token_id=_UpperCamelCase    ,		**_UpperCamelCase       )

							UpperCAmelCase_   :				Optional[Any]						=						vocab_size
							UpperCAmelCase_   :				Optional[Any]						=						hidden_size
							UpperCAmelCase_   :				int						=						num_hidden_layers
							UpperCAmelCase_   :				Optional[Any]						=						num_attention_heads
							UpperCAmelCase_   :				str						=						hidden_act
							UpperCAmelCase_   :				List[str]						=						intermediate_size
							UpperCAmelCase_   :				Tuple						=						hidden_dropout_prob
							UpperCAmelCase_   :				Optional[int]						=						attention_probs_dropout_prob
							UpperCAmelCase_   :				Tuple						=						max_position_embeddings
							UpperCAmelCase_   :				Dict						=						type_vocab_size
							UpperCAmelCase_   :				Optional[int]						=						initializer_range
							UpperCAmelCase_   :				str						=						layer_norm_eps
							UpperCAmelCase_   :				Union[str, Any]						=						position_embedding_type
							UpperCAmelCase_   :				Optional[int]						=						classifier_dropout
							UpperCAmelCase_   :				List[Any]						=						channel_shrink_ratio
							UpperCAmelCase_   :				Optional[Any]						=						max_ad_position_embeddings














import unittest

from huggingface_hub import hf_hub_download

from transformers import MODEL_FOR_VIDEO_CLASSIFICATION_MAPPING, VideoMAEFeatureExtractor
from transformers.pipelines import VideoClassificationPipeline, pipeline
from transformers.testing_utils import (
    is_pipeline_test,
    nested_simplify,
    require_decord,
    require_tf,
    require_torch,
    require_torch_or_tf,
    require_vision,
)

from .test_pipelines_common import ANY



@is_pipeline_test
@require_torch_or_tf
@require_vision
@require_decord
class   lowerCamelCase				(unittest.TestCase      ):







		'''simple docstring'''



		_snake_case   :   List[str]							=  MODEL_FOR_VIDEO_CLASSIFICATION_MAPPING



		def  __UpperCAmelCase      (							self    ,		_UpperCamelCase    ,		_UpperCamelCase    ,		_UpperCamelCase       )     ->							Optional[Any]:
							UpperCAmelCase_   :				List[str]						=						hf_hub_download(
							    repo_id='nateraw/video-demo'    ,		filename='archery.mp4'    ,		repo_type='dataset'       )
							UpperCAmelCase_   :				str						=						VideoClassificationPipeline(model=_UpperCamelCase    ,		image_processor=_UpperCamelCase    ,		top_k=2       )
							UpperCAmelCase_   :				List[str]						=						[
							    example_video_filepath,
							    'https://huggingface.co/datasets/nateraw/video-demo/resolve/main/archery.mp4',
							]
							return video_classifier, examples



		def  __UpperCAmelCase      (							self    ,		_UpperCamelCase    ,		_UpperCamelCase       )     ->							Dict:
							for example in examples:
												UpperCAmelCase_   :				str						=						video_classifier(_UpperCamelCase       )

												self.assertEqual(
												    _UpperCamelCase    ,		[
												        {'score': ANY(_UpperCamelCase       ), 'label': ANY(_UpperCamelCase       )},
												        {'score': ANY(_UpperCamelCase       ), 'label': ANY(_UpperCamelCase       )},
												    ]    ,		)



		@require_torch
		def  __UpperCAmelCase      (							self       )     ->							List[Any]:
							UpperCAmelCase_   :				str						=						'hf-internal-testing/tiny-random-VideoMAEForVideoClassification'
							UpperCAmelCase_   :				Optional[Any]						=						VideoMAEFeatureExtractor(
							    size={'shortest_edge': 1_0}    ,		crop_size={'height': 1_0, 'width': 1_0}       )
							UpperCAmelCase_   :				str						=						pipeline(
							    'video-classification'    ,		model=_UpperCamelCase    ,		feature_extractor=_UpperCamelCase    ,		frame_sampling_rate=4       )

							UpperCAmelCase_   :				Any						=						hf_hub_download(repo_id='nateraw/video-demo'    ,		filename='archery.mp4'    ,		repo_type='dataset'       )
							UpperCAmelCase_   :				List[str]						=						video_classifier(_UpperCamelCase    ,		top_k=2       )
							self.assertEqual(
							    nested_simplify(_UpperCamelCase    ,		decimals=4       )    ,		[{'score': 0.51_99, 'label': 'LABEL_0'}, {'score': 0.48_01, 'label': 'LABEL_1'}]    ,		)

							UpperCAmelCase_   :				Tuple						=						video_classifier(
							    [
							        video_file_path,
							        video_file_path,
							    ]    ,		top_k=2    ,		)
							self.assertEqual(
							    nested_simplify(_UpperCamelCase    ,		decimals=4       )    ,		[
							        [{'score': 0.51_99, 'label': 'LABEL_0'}, {'score': 0.48_01, 'label': 'LABEL_1'}],
							        [{'score': 0.51_99, 'label': 'LABEL_0'}, {'score': 0.48_01, 'label': 'LABEL_1'}],
							    ]    ,		)



		@require_tf
		def  __UpperCAmelCase      (							self       )     ->							Dict:
							pass






