Ë
    éÓ^jßT  ã            A       óH  — d Z ddlZddlmZmZmZ ddlZddlmZ ddl	m
Z
mZmZ ddlmZmZmZ ddlmZmZmZmZmZmZmZmZmZ ddlmZmZmZ dd	lm Z  d
de
eddfdee!ee!e!f   f   de"dee#df   dee#df   de$de$fd„Z%d
dddddddddddde
eddddddddddddfdee!ee!e!f   f   deee#e#f      deee#e#f      d ee"   d!e#d"e#d#ee#ee#df   f   d$ee#   d%e$d&e#d'e#d(ee"   de"dee#df   dee#df   d)e#d*e"d+e!d,e!de$de$d-e$d.e$d/ee!ee!e!f   f   d0e!d1e$d2e$f6d3„Z&d
dddde
edddddddfdee!ee!e!f   f   d4ee#   d5ee"   d6ee!   de"dee#df   dee#df   de$de$d.e$d/ee!ee!e!f   f   d0e!d1e$d2e$fd7„Z'd
ddddddddddddde
eddddddddddddddddf d8ee!ee!e!f   ee!e!e!f   f   d9e$d:e$d ee"   deee#e#f      deee#e#f      d!e#d"e#d#ee#ee#df   f   d$ee#   d&e#d'e#d(ee"   de"dee#df   dee#df   d)e#d*e"d+e!d,e!d4ee#   d5ee"   d6ee!   d;e$de$de$d-e$d.e$d/ee!ee!e!f   f   d0e!d1e$d2e$f@d<„Z(y)=zŸ Transforms Factory
Factory methods for building image transforms for use with TIMM (PyTorch Image Models)

Hacked together by / Copyright 2019, Ross Wightman
é    N)ÚOptionalÚTupleÚUnion)Ú
transforms)ÚIMAGENET_DEFAULT_MEANÚIMAGENET_DEFAULT_STDÚDEFAULT_CROP_PCT)Úrand_augment_transformÚaugment_and_mix_transformÚauto_augment_transform)	Ústr_to_interp_modeÚstr_to_pil_interpÚ!RandomResizedCropAndInterpolationÚResizeKeepRatioÚCenterCropOrPadÚRandomCropOrPadÚ
TrimBorderÚMaybeToTensorÚMaybePILToTensor)ÚRandomResizedCropToSequenceÚResizeToSequenceÚPatchify)ÚRandomErasingéà   ÚbilinearFTÚimg_sizeÚinterpolationÚmean.ÚstdÚuse_prefetcherÚ	normalizec                 ó|  — |dk(  rd}t        j                  | t        |«      ¬«      t        j                  | «      g}|r|t	        «       gz  }n[|s|t	        «       gz  }nJ|t        «       t        j                  t        j                  |«      t        j                  |«      ¬«      gz  }t        j                  |«      S )a¸   No-augmentation image transforms for training.

    Args:
        img_size: Target image size.
        interpolation: Image interpolation mode.
        mean: Image normalization mean.
        std: Image normalization standard deviation.
        use_prefetcher: Prefetcher enabled. Do not convert image to tensor or normalize.
        normalize: Normalization tensor output w/ provided mean/std (if prefetcher not used).

    Returns:

    Úrandomr   ©r   ©r   r   )
r   ÚResizer   Ú
CenterCropr   r   Ú	NormalizeÚtorchÚtensorÚCompose)r   r   r   r   r    r!   Útfls          úg/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/timm/data/transforms_factory.pyÚtransforms_noaug_trainr.      s³   € ð* ˜Ò à"ˆä×Ñ˜(Ô2DÀ]Ó2SÔTÜ×Ñ˜hÓ'ð€Cñ àÔ Ó"Ð#Ñ#‰ÙàÔ Ó"Ð#Ñ#‰àÜ‹OÜ× Ñ Ü—\‘\ $Ó'Ü—L‘L Ó%ôð
ñ 	
ˆô ×Ñ˜cÓ"Ð"ó    ç      à?ç        gš™™™™™Ù?r#   Úconsté   é   i@  ÚscaleÚratioÚtrain_crop_modeÚhflipÚvflipÚcolor_jitterÚcolor_jitter_probÚforce_color_jitterÚgrayscale_probÚgaussian_blur_probÚauto_augmentÚre_probÚre_modeÚre_countÚre_num_splitsÚseparateÚnaflexÚ
patch_sizeÚmax_seq_lenÚpatchifyÚpatchify_channels_lastc                 ó�  — |xs d}|dv sJ ‚g }|r3t        |xs d«      }t        |xs d«      }|t        |||||¬«      gz  }nˆ|dv rSt        |xs d«      }t        |xs d«      }|t        | |d	|d
d	|¬«      |dk(  rt        | d¬«      nt	        | d¬«      gz  }n1t        |xs d«      }t        |xs d«      }|t        | |||¬«      gz  }|dkD  r|t        j                  |¬«      gz  }|dkD  r|t        j                  |¬«      gz  }g }d}|rót        |t        «      sJ ‚|xs d|v  }t        | t         t        f«      rt        | «      }n| }t        t        |dz  «      t        |D �cg c]  }t        dt        d|z  «      «      ‘Œ c}«      ¬«      } |r|dk7  rt!        |«      | d<   |j#                  d«      r|t%        || «      gz  }n7|j#                  d«      rd| d<   |t'        || «      gz  }n|t)        || «      gz  }|�{|syt        |t        t         f«      rt+        |«      dv sJ ‚t-        |«      fdz  }|�-|t        j.                  t        j0                  |Ž g|¬«      gz  }n|t        j0                  |Ž gz  }|	r|t        j2                  |	¬«      gz  }|
r0|t        j.                  t        j4                  d¬ «      g|
¬«      gz  }g }!|r|!t7        «       gz  }!nt|s|!t7        «       gz  }!nc|!t9        «       t        j:                  t=        j>                  |«      t=        j>                  |«      ¬!«      gz  }!|dkD  r|!tA        ||||d"¬#«      gz  }!|r|!tC        ||¬$«      gz  }!|r>t        jD                  |«      t        jD                  |«      t        jD                  |!«      fS t        jD                  ||z   |!z   «      S c c}w )%a¬   ImageNet-oriented image transforms for training.

    Args:
        img_size: Target image size.
        train_crop_mode: Training random crop mode ('rrc', 'rkrc', 'rkrr').
        scale: Random resize scale range (crop area, < 1.0 => zoom in).
        ratio: Random aspect ratio range (crop ratio for RRC, ratio adjustment factor for RKR).
        hflip: Horizontal flip probability.
        vflip: Vertical flip probability.
        color_jitter: Random color jitter component factors (brightness, contrast, saturation, hue).
            Scalar is applied as (scalar,) * 3 (no hue).
        color_jitter_prob: Apply color jitter with this probability if not None (for SimlCLR-like aug).
        force_color_jitter: Force color jitter where it is normally disabled (ie with RandAugment on).
        grayscale_prob: Probability of converting image to grayscale (for SimCLR-like aug).
        gaussian_blur_prob: Probability of applying gaussian blur (for SimCLR-like aug).
        auto_augment: Auto augment configuration string (see auto_augment.py).
        interpolation: Image interpolation mode.
        mean: Image normalization mean.
        std: Image normalization standard deviation.
        re_prob: Random erasing probability.
        re_mode: Random erasing fill mode.
        re_count: Number of random erasing regions.
        re_num_splits: Control split of random erasing across batch size.
        use_prefetcher: Prefetcher enabled. Do not convert image to tensor or normalize.
        normalize: Normalize tensor output w/ provided mean/std (if prefetcher not used).
        separate: Output transforms in 3-stage tuple.
        naflex: Enable NaFlex mode, sequence constrained patch output
        patch_size: Patch size for NaFlex mode.
        max_seq_len: Max sequence length for NaFlex mode.

    Returns:
        If separate==True, the transforms are returned as a tuple of 3 separate transforms
          for use in a mixing dataset that passes
            * all data through the first (primary) transform, called the 'clean' data
            * a portion of the data through the secondary transform
            * normalizes and converts the branches above with the third, final transform
    Úrrc>   rK   ÚrkrcÚrkrr)g{®Gáz´?ç      ð?)g      è?gUUUUUUõ?)rF   rG   r5   r6   r   )rL   rM   )gš™™™™™é?rN   )gÍÌÌÌÌÌì?grÇqÇñ?r0   T)r   Úrandom_scale_probÚrandom_scale_rangeÚrandom_scale_areaÚrandom_aspect_probÚrandom_aspect_rangerL   Úreflect)Úpadding_mode)r5   r6   r   r1   )ÚpFÚ3agÍÌÌÌÌÌÜ?éÿ   )Útranslate_constÚimg_meanr#   r   ÚrandÚaugmixg333333Ó?Útranslate_pct)é   é   r^   é   )Úkernel_sizer%   Úcpu)ÚmodeÚ	max_countÚ
num_splitsÚdevice©rF   Úchannels_last)#Útupler   r   r   r   r   r   ÚRandomHorizontalFlipÚRandomVerticalFlipÚ
isinstanceÚstrÚlistÚminÚdictÚintÚroundr   Ú
startswithr
   r   r   ÚlenÚfloatÚRandomApplyÚColorJitterÚRandomGrayscaleÚGaussianBlurr   r   r(   r)   r*   r   r   r+   )"r   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r   r   r   r@   rA   rB   rC   r    r!   rD   rE   rF   rG   rH   rI   Úprimary_tflÚsecondary_tflÚdisable_color_jitterÚimg_size_minÚxÚ	aa_paramsÚ	final_tfls"                                     r-   Útransforms_imagenet_trainr�   A   s[  € ðD &Ò.¨€OØÐ5Ñ5Ð5Ð5à€KÙÜ�eÒ*˜{Ó+ˆÜ�eÒ1Ð1Ó2ˆØÔ3Ø!Ø#ØØØ'ô
ð ñ 	‰ð Ð.Ñ.ä˜%Ò. ;Ó/ˆEÜ˜%Ò. ;Ó/ˆEØÜØØ"/Ø&)Ø',Ø&*Ø'*Ø(-ôð # fÒ,ô   °yÕAä °yÔAðñ ‰Kô ˜%Ò. ;Ó/ˆEÜ˜%Ò5Ð#5Ó6ˆEØÜ1ØØØØ"/ô	ðñ ˆKð ˆr‚zØœ
×7Ñ7¸%Ô@ÐAÑAˆØˆr‚zØœ
×5Ñ5¸Ô>Ð?Ñ?ˆà€MØ ÐÙÜ˜,¬Ô,Ð,Ð,ð %7Ò$N¸$À,Ð:NÐOÐÜ�h¤¬ Ô.Ü˜x›=‰Là#ˆLÜÜ ¨tÑ 3Ó4Ü¸dÖC¸œC ¤U¨3°©7£^Õ4ÒCÓDô
ˆ	ñ ˜]¨hÒ6Ü):¸=Ó)IˆI�oÑ&Ø×"Ñ" 6Ô*ØÔ4°\À9ÓMÐNÑN‰MØ×$Ñ$ XÔ.Ø),ˆI�oÑ&ØÔ7¸ÀiÓPÐQÑQ‰MàÔ4°\À9ÓMÐNÑNˆMàÐÑ(<ä�l¤T¬5 MÔ2ô �|Ó$¨Ñ.Ð.Ð.ô " ,Ó/Ð1°AÑ5ˆLØÐ(ØÜ×&Ñ&Ü"×.Ñ.°Ð=ð(ð (ôðñ ‰Mð œj×4Ñ4°lÐCÐDÑDˆMáØœ*×4Ñ4°~ÔFÐGÑGˆáØÜ×"Ñ"Ü×+Ñ+¸Ô;ð$ð %ôð
ñ 	
ˆð €IÙàÔ&Ó(Ð)Ñ)‰	ÙàÔ&Ó(Ð)Ñ)‰	àÜ‹OÜ× Ñ Ü—\‘\ $Ó'Ü—L‘L Ó%ôð
ñ 	
ˆ	ð �RŠ<ØÜØØ Ø&Ø,Ø ôðñ ˆIñ Ø”h¨*ÐDZÔ[Ð\Ñ\ˆ	áÜ×!Ñ! +Ó.´
×0BÑ0BÀ=Ó0QÔS]×SeÑSeÐfoÓSpÐpÐpä×!Ñ! +°Ñ"=À	Ñ"IÓJÐJùòY Ds   Å*OÚcrop_pctÚ	crop_modeÚcrop_border_pixelsc           	      ó6  — |xs t         }t        | t        t        f«      r@t	        | «      dk(  sJ ‚t        | D �cg c]  }t        j                  ||z  «      ‘Œ c}«      }nt        j                  | |z  «      }||f}g }|r|t        |«      gz  }|	r|t        |
||¬«      gz  }nØ|dk(  r9|t        j                  |t        |«      ¬«      t        j                  | «      gz  }nš|dk(  r:|D �cg c]  }t        d|z  «      ‘Œ }}|t        ||d¬«      t        | |¬	«      gz  }n[|d
   |d   k(  r(|t        j                  |d
   t        |«      ¬«      gz  }n|t        |«      gz  }|t        j                  | «      gz  }|r|t!        «       gz  }n[|s|t!        «       gz  }nJ|t#        «       t        j$                  t'        j(                  |«      t'        j(                  |«      ¬«      gz  }|r|t+        |
|¬«      gz  }t        j,                  |«      S c c}w c c}w )aã   ImageNet-oriented image transform for evaluation and inference.

    Args:
        img_size: Target image size.
        crop_pct: Crop percentage. Defaults to 0.875 when None.
        crop_mode: Crop mode. One of ['squash', 'border', 'center']. Defaults to 'center' when None.
        crop_border_pixels: Trim a border of specified # pixels around edge of original image.
        interpolation: Image interpolation mode.
        mean: Image normalization mean.
        std: Image normalization standard deviation.
        use_prefetcher: Prefetcher enabled. Do not convert image to tensor or normalize.
        normalize: Normalize tensor output w/ provided mean/std (if prefetcher not used).
        naflex: Enable NaFlex mode, sequence constrained patch output
        patch_size: Patch size for NaFlex mode.
        max_seq_len: Max sequence length for NaFlex mode.
        patchify: Patchify the output instead of relying on prefetcher

    Returns:
        Composed transform pipeline
    é   )rF   rG   r   Úsquashr$   ÚborderrX   rN   )r   Úlongest)Úfillr   r3   r%   rg   )r	   rl   ri   rn   rt   ÚmathÚfloorr   r   r   r&   r   r'   rr   r   r   r   r   r(   r)   r*   r   r+   )r   r‚   rƒ   r„   r   r   r   r    r!   rE   rF   rG   rH   rI   r~   Ú
scale_sizer,   ÚvrŠ   s                      r-   Útransforms_imagenet_evalr�     s:  € ðH Ò+Ô+€Hä�(œU¤D˜MÔ*Ü�8‹} Ò!Ð!Ð!Ü¸hÖG¸œDŸJ™J q¨8¡|Õ4ÒGÓH‰
ä—Z‘Z ¨8Ñ 3Ó4ˆ
Ø  *Ð-ˆ
à
€CáØ”
Ð-Ó.Ð/Ñ/ˆáØÔ Ø!Ø#Ø'ô
ð ñ 	‰ð ˜Ò ð Ü×!Ñ! *Ô<NÈ}Ó<]Ô^Ü×%Ñ% hÓ/ðñ ‰Cð ˜(Ò"ð -1Ö1 q”E˜# ™'•NÐ1ˆDÐ1ØÜ 
¸-ÐQTÔUÜ ¨tÔ4ðñ ‰Cð ˜!‰} 
¨1¡Ò-àÜ×%Ñ% j°¡mÔCUÐVcÓCdÔeðñ ‘ð
 œ¨
Ó3Ð4Ñ4�Ø”J×)Ñ)¨(Ó3Ð4Ñ4ˆCáàÔ Ó"Ð#Ñ#‰ÙàÔ Ó"Ð#Ñ#‰àÜ‹OÜ× Ñ Ü—\‘\ $Ó'Ü—L‘L Ó%ôð
ñ 	
ˆñ Ø” JÐ>TÔUÐVÑVˆä×Ñ˜cÓ"Ð"ùò Hùò6 2s   ºHÃ,HÚ
input_sizeÚis_trainingÚno_augÚtf_preprocessingc                  ó¸  — t        | t        t        f«      r| dd } n| } |r|r|rJ d«       ‚ddlm}!  |!|| |¬«      }"|"S |r|r|rJ d«       ‚t        | |||||¬«      }"|"S |rWt        | fi d	|“d
|“d|“d|“d|“d|“d|	“d|
“d|“d|“d|“d|“d|“d|“d|“d|“d|“d|“d|“d|“d|“d|“d|“d |“d!|“Ž}"|"S |rJ d"«       ‚t        | |||||||||||||¬#«      }"|"S )$a;  

    Args:
        input_size: Target input size (channels, height, width) tuple or size scalar.
        is_training: Return training (random) transforms.
        no_aug: Disable augmentation for training (useful for debug).
        train_crop_mode: Training random crop mode ('rrc', 'rkrc', 'rkrr').
        scale: Random resize scale range (crop area, < 1.0 => zoom in).
        ratio: Random aspect ratio range (crop ratio for RRC, ratio adjustment factor for RKR).
        hflip: Horizontal flip probability.
        vflip: Vertical flip probability.
        color_jitter: Random color jitter component factors (brightness, contrast, saturation, hue).
            Scalar is applied as (scalar,) * 3 (no hue).
        color_jitter_prob: Apply color jitter with this probability if not None (for SimlCLR-like aug).
        grayscale_prob: Probability of converting image to grayscale (for SimCLR-like aug).
        gaussian_blur_prob: Probability of applying gaussian blur (for SimCLR-like aug).
        auto_augment: Auto augment configuration string (see auto_augment.py).
        interpolation: Image interpolation mode.
        mean: Image normalization mean.
        std: Image normalization standard deviation.
        re_prob: Random erasing probability.
        re_mode: Random erasing fill mode.
        re_count: Number of random erasing regions.
        re_num_splits: Control split of random erasing across batch size.
        crop_pct: Inference crop percentage (output size / resize size).
        crop_mode: Inference crop mode. One of ['squash', 'border', 'center']. Defaults to 'center' when None.
        crop_border_pixels: Inference crop border of specified # pixels around edge of original image.
        tf_preprocessing: Use TF 1.0 inference preprocessing for testing model ports
        use_prefetcher: Pre-fetcher enabled. Do not convert image to tensor or normalize.
        normalize: Normalization tensor output w/ provided mean/std (if prefetcher not used).
        separate: Output transforms in 3-stage tuple.

    Returns:
        Composed transforms or tuple thereof
    éþÿÿÿNz6Separate transforms not supported for TF preprocessingr   )ÚTfPreprocessTransform)r‘   Úsizer   z-Cannot perform split augmentation with no_aug)r   r   r   r    r!   r7   r5   r6   r8   r9   r:   r;   r=   r>   r?   r   r   r   r@   rA   rB   rC   r    r!   rD   rE   rF   rG   rH   rI   z>Separate transforms not supported for validation preprocessing)r   r   r   r‚   rƒ   r„   r    r!   rE   rF   rG   rH   rI   )rl   ri   rn   Útimm.data.tf_preprocessingr–   r.   r�   r�   )#r�   r‘   r’   r7   r5   r6   r8   r9   r:   r;   r=   r>   r?   r   r   r   r@   rA   rB   rC   r‚   rƒ   r„   r“   r    r!   rD   rE   rF   rG   rH   rI   r   r–   Ú	transforms#                                      r-   Úcreate_transformrš   {  sð  € ôJ �*œu¤d˜mÔ,Ø˜b˜c�?‰àˆá™NÙÐUÐUÓUˆ|ÝDÙ)Ø#ØØ'ô
ˆ	ð@ Ðñu ™6ÙÐPÐ!PÓP�<Ü.ØØ+ØØØ-Ø#ôˆIðp Ðña Ü1Øòá /ðñ ðñ ð	ñ
 ðñ ðñ *ðñ #4ðñ  .ðñ $6ðñ *ðñ ,ðñ ðñ ðñ  ðñ   ð!ñ" "ð#ñ$ ,ð%ñ&  .ð'ñ( $ð)ñ* "ð+ñ, ð-ñ. &ð/ñ0 (ð1ñ2 "ð3ñ4 (>ð5ˆIð^ Ðñ%  ÐaÐ!aÓa�<Ü0ØØ+ØØØ!Ø#Ø#5Ø-Ø#ØØ%Ø'Ø!Ø'=ôˆIð" Ðr/   ))Ú__doc__r‹   Útypingr   r   r   r)   Útorchvisionr   Útimm.data.constantsr   r   r	   Útimm.data.auto_augmentr
   r   r   Útimm.data.transformsr   r   r   r   r   r   r   r   r   Útimm.data.naflex_transformsr   r   r   Útimm.data.random_erasingr   rq   rm   ru   Úboolr.   r�   r�   rš   © r/   r-   ú<module>r¥      s"  ðñó
 ß )Ñ )ã Ý "ç ]Ñ ]ß lÑ l÷c÷ cõ cç _Ñ _Ý 2ð 14Ø'Ø"7Ø!5Ø$Øñ*#Ø˜˜U 3¨ 8™_Ð,Ñ-ð*#àð*#ð �E˜3�JÑð*#ð �5˜#�:Ñð	*#ð
 ð*#ð ó*#ð\ 14Ø/3Ø/3Ø)-ØØØ8;Ø-1Ø#(Ø "Ø$&Ø&*Ø%Ø"7Ø!5ØØØØØ$ØØØØ24ØØØ'+ñ7MKØ˜˜U 3¨ 8™_Ð,Ñ-ðMKà˜˜e U˜lÑ+Ñ,ðMKð ˜˜e U˜lÑ+Ñ,ðMKð " #™ð	MKð
 ðMKð ðMKð ˜E 5¨°¨Ñ#4Ð4Ñ5ðMKð $ E™?ðMKð !ðMKð ðMKð "ðMKð ˜s‘mðMKð ðMKð �E˜3�JÑðMKð �5˜#�:ÑðMKð  ð!MKð" ð#MKð$ ð%MKð& ð'MKð( ð)MKð* ð+MKð, ð-MKð. ð/MKð0 ˜#˜u S¨# X™Ð.Ñ/ð1MKð2 ð3MKð4 ð5MKð6 !%ó7MKðb 14Ø$(Ø#'Ø,0Ø'Ø"7Ø!5Ø$ØØØ24ØØØ'+ñg#Ø˜˜U 3¨ 8™_Ð,Ñ-ðg#à˜5‘/ðg#ð ˜C‘=ðg#ð % S™Mð	g#ð
 ðg#ð �E˜3�JÑðg#ð �5˜#�:Ñðg#ð ðg#ð ðg#ð ðg#ð ˜#˜u S¨# X™Ð.Ñ/ðg#ð ðg#ð ðg#ð !%óg#ðV ILØ!ØØ)-Ø/3Ø/3ØØØ8;Ø-1Ø "Ø$&Ø&*Ø'Ø"7Ø!5ØØØØØ$(Ø#'Ø,0Ø!&Ø$ØØØØ24ØØØ'+ñAMØ˜#˜u S¨# X™°°c¸3À°mÑ0DÐDÑEðMàðMð ðMð " #™ð	Mð
 ˜˜e U˜lÑ+Ñ,ðMð ˜˜e U˜lÑ+Ñ,ðMð ðMð ðMð ˜E 5¨°¨Ñ#4Ð4Ñ5ðMð $ E™?ðMð ðMð "ðMð ˜s‘mðMð ðMð �E˜3�JÑðMð  �5˜#�:Ñð!Mð" ð#Mð$ ð%Mð& ð'Mð( ð)Mð* ˜5‘/ð+Mð, ˜C‘=ð-Mð. % S™Mð/Mð0 ð1Mð2 ð3Mð4 ð5Mð6 ð7Mð8 ð9Mð: ˜#˜u S¨# X™Ð.Ñ/ð;Mð< ð=Mð> ð?Mð@ !%ôAMr/   