
    ^jW
                         d Z ddlZddlmZ ddlmZ ddlmZ ddl	m
Z
mZmZmZmZ ddlmZmZ dd	lmZ e G d
 de             ZdgZy)z Image processor class for LeViT.    N)
functional   )TorchvisionBackend)get_resize_output_image_size)IMAGENET_DEFAULT_MEANIMAGENET_DEFAULT_STDChannelDimensionPILImageResamplingSizeDict)ImagesKwargsUnpack)auto_docstringc            	            e Zd ZdZej
                  ZeZe	Z
ddiZdZdddZdZdZdZdZdZdee   f fd	Z	 dd
ddeddddf fdZ xZS )LevitImageProcessorzKTorchvision backend for LeViT with custom resize (shortest_edge * 256/224).shortest_edge   FheightwidthTNkwargsc                 $    t        |   di | y )N )super__init__)selfr   	__class__s     {/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/transformers/models/levit/image_processing_levit.pyr   zLevitImageProcessor.__init__0   s    "6"    imageztorch.Tensorsizeresamplez7PILImageResampling | tvF.InterpolationMode | int | Nonereturnc                 J   |j                   rFt        d|j                   z        }t        ||dt        j                        \  }}t        ||      }n>|j                  r|j                  s&t        dt        |j                                d      t        | 0  |f||d|S )zDResize: shortest_edge is rescaled to int((256/224) * shortest_edge).g$I$I?F)r    default_to_squareinput_data_formatr   zFSize dict must have keys 'height' and 'width' or 'shortest_edge'. Got .)r    r!   )r   intr   r	   FIRSTr   r   r   
ValueErrorlistkeysr   resize)	r   r   r    r!   r   r   new_size_heightnew_size_widthr   s	           r   r,   zLevitImageProcessor.resize3   s     d.@.@ @AM.JMUVfVlVl/+O^ ?.IDDJJXY]^b^g^g^iYjXkklm  w~eL$LVLLr   )N)__name__
__module____qualname____doc__r
   BICUBICr!   r   
image_meanr   	image_stdr    r$   	crop_size	do_resizedo_center_crop
do_rescaledo_normalizedo_convert_rgbr   r   r   r   r,   __classcell__)r   s   @r   r   r       s    U!))H&J$IS!D-IINJLN#!5 # OS	MM M L	M 
M Mr   r   )r2   torchtorchvision.transforms.v2r   tvFimage_processing_backendsr   image_transformsr   image_utilsr   r   r	   r
   r   processing_utilsr   r   utilsr   r   __all__r   r   r   <module>rF      sR    '  7 ; <  5 # $M, $M $MN !
!r   