
    Z j                         S r SSKJr  SSKJr  SSKrSSKJr  SSK	J
r
  SSKJr  SS	KJrJr  SS
KJrJrJrJr  SSKJrJr  SSKJrJr   " S S\SS9r\ " S S\
5      5       rS/rg)z'Image processor class for EfficientNet.    )	lru_cache)OptionalN)
functional   )TorchvisionBackend)BatchFeature)group_images_by_shapereorder_images)IMAGENET_STANDARD_MEANIMAGENET_STANDARD_STDPILImageResamplingSizeDict)ImagesKwargsUnpack)
TensorTypeauto_docstringc                   .    \ rS rSr% Sr\\S'   \\S'   Srg) EfficientNetImageProcessorKwargs#   aW  
rescale_offset (`bool`, *optional*, defaults to `self.rescale_offset`):
    Whether to rescale the image between [-max_range/2, scale_range/2] instead of [0, scale_range].
include_top (`bool`, *optional*, defaults to `self.include_top`):
    Normalize the image again with the standard deviation only for image classification if set to True.
rescale_offsetinclude_top N)__name__
__module____qualname____firstlineno____doc__bool__annotations____static_attributes__r       ڏ/root/GenerationalWealth/GenerationalWealth/venv/lib/python3.13/site-packages/transformers/models/efficientnet/image_processing_efficientnet.pyr   r   #   s     r!   r   F)totalc            %       (  ^  \ rS rSrSr\r\R                  r	\
r\rSSS.rSSS.rSrSrSrSrSrSrSrS	\\   4U 4S
 jjr S,SSS\S\SS4S jjr\" SS9       S-S\S-  S\\\   -  S-  S\\\   -  S-  S\S-  S\S-  S\S   S\S-  S\4S jj5       r  S,SSS\S\S\S\\\   -  S\\\   -  S\SS4S jjr!  S.S\S   S\S \"S!S"S#\S$\"S\S\S\S\\\   -  S-  S\\\   -  S-  S%\S-  S&\"S-  S'\S-  S(\#\$-  S-  S\S)\S\%4$S* jjr&S+r'U =r($ )/EfficientNetImageProcessor/   zITorchvision backend for EfficientNet with rescale offset and include_top.iZ  )heightwidthi!  TFgp?kwargsc                 &   > [         TU ]  " S0 UD6  g )Nr   )super__init__)selfr)   	__class__s     r"   r,   #EfficientNetImageProcessor.__init__B   s    "6"r!   imageztorch.Tensorscaleoffsetreturnc                 &    X-  nU(       a  US-  nU$ )z@Rescale by scale; if offset=True then image = image * scale - 1.   r   )r-   r0   r1   r2   r)   rescaleds         r"   rescale"EfficientNetImageProcessor.rescaleE   s     =MHr!   
   )maxsizeNdo_normalize
image_mean	image_std
do_rescalerescale_factordeviceztorch.devicer   c                     U(       aD  U(       a=  U(       d6  [         R                  " X&S9SU-  -  n[         R                  " X6S9SU-  -  nSnX#U4$ )N)r@   g      ?F)torchtensor)r-   r;   r<   r=   r>   r?   r@   r   s           r"   !_fuse_mean_std_and_rescale_factor<EfficientNetImageProcessor._fuse_mean_std_and_rescale_factorR   sK     ,~j@C.DXYJY>#BVWIJj00r!   imagesc           
          U R                  UUUUUUR                  US9u  pVnU(       a  U R                  XUS9nU(       a-  U R                  UR	                  [
        R                  S9XV5      nU$ )N)r;   r<   r=   r>   r?   r@   r   )r2   )dtype)rD   r@   r7   	normalizetorB   float32)r-   rF   r>   r?   r;   r<   r=   r   s           r"   "rescale_and_normalize_efficientnet=EfficientNetImageProcessor.rescale_and_normalize_efficientnetc   sv     -1,R,R%!!)==) -S -
)
z \\&\PF^^FIIEMMI$BJZFr!   	do_resizesizeresamplez7PILImageResampling | tvF.InterpolationMode | int | Nonedo_center_crop	crop_sizedo_padpad_sizedisable_groupingreturn_tensorsr   c           
         [        XS9u  nn0 nUR                  5        H$  u  nnU(       a  U R                  UX45      nUUU'   M&     [        UU5      n[        UUS9u  nn0 nUR                  5        HS  u  nnU(       a  U R	                  UU5      nU R                  UXxXUU5      nU(       a  U R                  USU5      nUUU'   MU     [        UU5      n[        SU0US9$ )z&Custom preprocessing for EfficientNet.)rU   r   pixel_values)datatensor_type)r	   itemsresizer
   center_croprL   rI   r   )r-   rF   rN   rO   rP   rQ   rR   r>   r?   r;   r<   r=   rS   rT   rU   rV   r   r   r)   grouped_imagesgrouped_images_indexresized_images_groupedshapestacked_imagesresized_imagesprocessed_images_groupedprocessed_imagess                              r"   _preprocess&EfficientNetImageProcessor._preprocess}   s   , 0EV/o,,!#%3%9%9%;!E>!%^T!L,:"5) &< ((>@TU/D^fv/w,,#% %3%9%9%;!E>!%!1!1.)!L!DD
LV_aoN !%9!M.<$U+ &< **BDXY.2B!CQ_``r!   r   )F)NNNNNNF)FT))r   r   r   r   r   r   valid_kwargsr   BICUBICrP   r   r<   r   r=   rO   rR   rN   rQ   r>   r?   r   r;   r   r   r,   floatr   r7   r   listr   tuplerD   rL   r   strr   r   rf   r    __classcell__)r.   s   @r"   r%   r%   /   s   S3L!))H'J%IC(D-IINJNNLK#(H!I # 	  	 
 r %)1504"&'++/&+1Tk1 DK'$.1 4;&-	1
 4K1 1 (1 t1 
1 10  %  	
  DK' 4;&  
V  % %*a^$*a *a 	*a
 L*a *a *a *a *a *a DK'$.*a 4;&-*a t*a T/*a +*a  j(4/!*a" #*a$ %*a( 
)*a *ar!   r%   )r   	functoolsr   typingr   rB   torchvision.transforms.v2r   tvFimage_processing_backendsr   image_processing_utilsr   image_transformsr	   r
   image_utilsr   r   r   r   processing_utilsr   r   utilsr   r   r   r%   __all__r   r!   r"   <module>rz      sl    .    7 ; 2 E  5 /	|5 	 wa!3 wa wat (
(r!   