

import numpy as np

from transformers import Pipeline





def       __lowerCamelCase			(				UpperCamelCase__   ):
							snake_case_           =					np.max(UpperCamelCase__     ,							axis=-1     ,							keepdims=UpperCamelCase__   )
							snake_case_           =					np.exp(outputs - maxes   )
							return shifted_exp / shifted_exp.sum(axis=-1     ,							keepdims=UpperCamelCase__   )







class 				lowercase       ( lowercase_    ):




				def 					a							(      self   ,     **snake_case ):
											snake_case_           =					{}
											if "second_text" in kwargs:
																		snake_case_           =					kwargs['second_text']
											return preprocess_kwargs, {}, {}




				def 					a							(      self   ,     snake_case   ,     snake_case=None ):
											return self.tokenizer(snake_case   ,     text_pair=snake_case   ,     return_tensors=self.framework )




				def 					a							(      self   ,     snake_case ):
											return self.model(**snake_case )




				def 					a							(      self   ,     snake_case ):
											snake_case_           =					model_outputs.logits[0].numpy()
											snake_case_           =					softmax(snake_case )

											snake_case_           =					np.argmax(snake_case )
											snake_case_           =					self.model.config.idalabel[best_class]
											snake_case_           =					probabilities[best_class].item()
											snake_case_           =					logits.tolist()
											return {"label": label, "score": score, "logits": logits}







from collections import OrderedDict
from typing import Mapping

from packaging import version

from ...configuration_utils import PretrainedConfig
from ...onnx import OnnxConfig
from ...utils import logging


_UpperCAmelCase	:     int		       = logging.get_logger(__name__)

_UpperCAmelCase	:     Any		       = {
    """facebook/levit-128S""": """https://huggingface.co/facebook/levit-128S/resolve/main/config.json""",
    # See all LeViT models at https://huggingface.co/models?filter=levit
}







class 				lowercase       ( lowercase_    ):
				__SCREAMING_SNAKE_CASE      :				int     =    '''levit'''




				def __init__(      self   ,     snake_case=224   ,     snake_case=3   ,     snake_case=3   ,     snake_case=2   ,     snake_case=1   ,     snake_case=16   ,     snake_case=[128, 256, 384]   ,     snake_case=[4, 8, 12]   ,     snake_case=[4, 4, 4]   ,     snake_case=[16, 16, 16]   ,     snake_case=0   ,     snake_case=[2, 2, 2]   ,     snake_case=[2, 2, 2]   ,     snake_case=0.02   ,     **snake_case   ,     ):
											super().__init__(**snake_case )
											snake_case_           =					image_size
											snake_case_           =					num_channels
											snake_case_           =					kernel_size
											snake_case_           =					stride
											snake_case_           =					padding
											snake_case_           =					hidden_sizes
											snake_case_           =					num_attention_heads
											snake_case_           =					depths
											snake_case_           =					key_dim
											snake_case_           =					drop_path_rate
											snake_case_           =					patch_size
											snake_case_           =					attention_ratio
											snake_case_           =					mlp_ratio
											snake_case_           =					initializer_range
											snake_case_           =					[
											    ['Subsample', key_dim[0], hidden_sizes[0] // key_dim[0], 4, 2, 2],
											    ['Subsample', key_dim[0], hidden_sizes[1] // key_dim[0], 4, 2, 2],
											]







class 				lowercase       ( lowercase_    ):
				__SCREAMING_SNAKE_CASE      :				Dict     =    version.parse('''1.11'''    )




				@property
				def 					a							(      self ):
											return OrderedDict(
											    [
											        ('pixel_values', {0: 'batch', 1: 'num_channels', 2: 'height', 3: 'width'}),
											    ] )




				@property
				def 					a							(      self ):
											return 1e-4




