
    khSn                        d dl Z d dlmZ d dlmZmZmZmZ d dlZd dlm	Z	 ddl
mZmZ g dZde	d	ed
ededeee      f
dZ G d de      Z G d dej&                  j(                        Z G d dej&                  j(                        Z G d dej&                  j(                        Z G d dej&                  j(                        Zy)    N)Enum)DictListOptionalTuple)Tensor   )
functionalInterpolationMode)AutoAugmentPolicyAutoAugmentRandAugmentTrivialAugmentWideAugMiximgop_name	magnitudeinterpolationfillc                    |dk(  rKt        j                  | dddgdt        j                  t        j                  |            dg||ddg      } | S |dk(  rKt        j                  | dddgddt        j                  t        j                  |            g||ddg      } | S |dk(  r+t        j                  | dt        |      dgd|ddg|      } | S |d	k(  r+t        j                  | ddt        |      gd|ddg|      } | S |d
k(  rt        j                  | |||      } | S |dk(  rt        j                  | d|z         } | S |dk(  rt        j                  | d|z         } | S |dk(  rt        j                  | d|z         } | S |dk(  rt        j                  | d|z         } | S |dk(  r!t        j                  | t        |            } | S |dk(  rt        j                  | |      } | S |dk(  rt        j                  |       } | S |dk(  rt        j                  |       } | S |dk(  rt        j                  |       } | S |dk(  r	 | S t!        d| d      )NShearX        r         ?)angle	translatescaleshearr   r   centerShearY
TranslateX)r   r   r   r   r   r   
TranslateYRotater   r   
BrightnessColorContrast	Sharpness	PosterizeSolarizeAutoContrastEqualizeInvertIdentityzThe provided operator  is not recognized.)Faffinemathdegreesatanintrotateadjust_brightnessadjust_saturationadjust_contrastadjust_sharpness	posterizesolarizeautocontrastequalizeinvert
ValueError)r   r   r   r   r   s        ^/var/www/teggl/fontify/venv/lib/python3.12/site-packages/torchvision/transforms/autoaugment.py	_apply_oprA      s    ( hh!f<<		) 45s;'q6	
F Js 
H	 hh!fTYYy%9:;'q6	
l JY 
L	 hh9~q)'*
V JE 
L	 hh#i.)'*
B J1 
H	hhsI]N. J- 
L	 !!#sY7* J) 
G	!!#sY7& J% 
J	S9_5" J! 
K	  cIo6 J 
K	kk#s9~. J 
J	jji( J 
N	"nnS! J 
J	jjo J 
H	hhsm
 J	 
J	 J 1':MNOO    c                       e Zd ZdZdZdZdZy)r   zoAutoAugment policies learned on different datasets.
    Available policies are IMAGENET, CIFAR10 and SVHN.
    imagenetcifar10svhnN)__name__
__module____qualname____doc__IMAGENETCIFAR10SVHN rB   r@   r   r   ]   s     HGDrB   r   c                   (    e Zd ZdZej
                  ej                  dfdededee	e
      ddf fdZdede	eeee
ee   f   eee
ee   f   f      fdZd	ed
eeef   deeeeef   f   fdZededeeeef   fd       ZdedefdZdefdZ xZS )r   a?  AutoAugment data augmentation method based on
    `"AutoAugment: Learning Augmentation Strategies from Data" <https://arxiv.org/pdf/1805.09501.pdf>`_.
    If the image is torch Tensor, it should be of type torch.uint8, and it is expected
    to have [..., 1 or 3, H, W] shape, where ... means an arbitrary number of leading dimensions.
    If img is PIL Image, it is expected to be in mode "L" or "RGB".

    Args:
        policy (AutoAugmentPolicy): Desired policy enum defined by
            :class:`torchvision.transforms.autoaugment.AutoAugmentPolicy`. Default is ``AutoAugmentPolicy.IMAGENET``.
        interpolation (InterpolationMode): Desired interpolation enum defined by
            :class:`torchvision.transforms.InterpolationMode`. Default is ``InterpolationMode.NEAREST``.
            If input is Tensor, only ``InterpolationMode.NEAREST``, ``InterpolationMode.BILINEAR`` are supported.
        fill (sequence or number, optional): Pixel fill value for the area outside the transformed
            image. If given a number, the value is used for all bands respectively.
    Npolicyr   r   returnc                 x    t         |           || _        || _        || _        | j                  |      | _        y N)super__init__rP   r   r   _get_policiespolicies)selfrP   r   r   	__class__s       r@   rU   zAutoAugment.__init__y   s8     	*	**62rB   c                     |t         j                  k(  rg dS |t         j                  k(  rg dS |t         j                  k(  rg dS t	        d| d      )N)))r(   皙?   )r"   333333?	   )r)   r]      r*   r]   Nr+   皙?Nr+   r]   N))r(   r]      )r(   r]      r+   r[   N)r)   皙?   )ri   r"   rd   r\   ))r)   r]      re   ))r(   rd   r`   r+   r   N))r"   rj   rm   )r)   r]   r\   )re   )r(   r[   rg   )rl   r%   r[   r   ))r"   r[   r^   re   ))r+   r   Nrc   r,   r]   Nrn   )r%   r]   rk   )r&   r   r\   )rl   )r%   r      ))r%   rd   r\   )r)   rd   rf   ))r'   r[   rf   rq   ))r   r]   r`   rn   )ro   re   rh   r_   rp   rr   rb   ))r,   皙?N)r&   rj   rg   ))r"   ffffff?rs   )r    333333?r^   ))r'   rd   r	   )r'   ?rm   ))r         ?r\   r!   rv   r^   ))r*   ry   Nr+   rx   N))r   rj   rf   )r(   rw   rf   ))r%   r[   rm   )r$   r]   rf   ))r'   rw   r^   )r$   rv   r^   )re   )r+   ry   N))r&   r]   rf   )r'   r]   r`   ))r%   rv   rf   )r    ry   r\   ))r+   rw   N)r*   r[   N))r!   r[   rm   )r'   rj   rg   ))r$   rx   rg   )r%   rj   r\   ))r)   ry   rs   )r,   r   N)r+   rj   Nra   )r|   re   ))r%   rx   r^   re   )r*   rd   N)r)   rj   r\   ))r$   ru   rm   )r%   rv   r   ))r)   r[   r`   r*   rx   N))r!   rx   r^   rz   )r~   )r)   rd   rm   )rc   rt   )rz   r~   ))r   rx   rk   )r,   rj   N)r   rx   r\   r,   rv   N)re   )r)   r]   rg   r,   rx   Nre   re   )r"   rx   rm   )r   r}   )r   )r,   r[   N))r   rx   r`   )r)   rj   rg   )r   r}   r   )r   )r)   rw   rm   ))r   rd   r\   r   )r{   )r!   r]   rg   r   ))r&   rw   rm   r"   rd   rk   )r,   rd   N)r!   r   rs   ))r   rv   rg   )r)   r[   r\   )rq   r   ))r   rw   rf   )r    rx   rm   ))r   ru   rg   rq   ))r)   rv   rs   )r!   r]   rf   ))r   rd   rk   r   ))r   rv   r^   )r!   rd   rm   ))r   rd   r`   )r*   rv   N))r   rv   rs   rt   zThe provided policy r.   )r   rK   rL   rM   r?   )rX   rP   s     r@   rV   zAutoAugment._get_policies   sk     &/// 6 (000 6 (--- 8 3F8;NOPPrB   num_bins
image_sizec                     t        j                  dd|      dft        j                  dd|      dft        j                  dd|d   z  |      dft        j                  dd|d   z  |      dft        j                  dd|      dft        j                  dd|      dft        j                  dd|      dft        j                  dd|      dft        j                  dd|      dfd	t        j                  |      |dz
  d
z  z  j                         j	                         z
  dft        j                  dd|      dft        j
                  d      dft        j
                  d      dft        j
                  d      dfdS )Nr   rw   Tt ?r	   r         >@rx   r\   rk   F     o@)r   r   r    r!   r"   r$   r%   r&   r'   r(   r)   r*   r+   r,   )torchlinspacearangeroundr4   tensorrX   r   r   s      r@   _augmentation_spacezAutoAugment._augmentation_space   s^    ~~c394@~~c394@ >>#}z!}/LhWY]^ >>#}z!}/LhWY]^~~c4:DA >>#sH=tDnnS#x8$?S(;TB..c8<dCu||H5(Q,!9KLSSUYY[[]bcsH=uE"\\#.6c*E2||C(%0
 	
rB   transform_numc                     t        t        j                  | d      j                               }t        j                  d      }t        j                  dd      }|||fS )zGet parameters for autoaugment transformation

        Returns:
            params required by the autoaugment transformation
        r	   )rs   rs   )r4   r   randintitemrand)r   	policy_idprobssignss       r@   
get_paramszAutoAugment.get_params   sM     mT:??AB	

4 a&%&&rB   r   c                 n   | j                   }t        j                  |      \  }}}t        |t              r@t        |t
        t        f      rt        |      g|z  }n||D cg c]  }t        |       }}| j                  t        | j                              \  }}}	| j                  d||f      }
t        | j                  |         D ]c  \  }\  }}}||   |k  s|
|   \  }}|t        ||   j                               nd}|r|	|   dk(  r|dz  }t        |||| j                  |      }e |S c c}w )z
            img (PIL Image or Tensor): Image to be transformed.

        Returns:
            PIL Image or Tensor: AutoAugmented image.
        
   r   r         r#   )r   r/   get_dimensions
isinstancer   r4   floatr   lenrW   r   	enumerater   rA   r   )rX   r   r   channelsheightwidthftransform_idr   r   op_metair   pmagnitude_id
magnitudessignedr   s                     r@   forwardzAutoAugment.forward   s>    yy"#"2"23"7&%c6"$e-d}x/!*./Qa//%)__S5G%H"eU**2?-6t}}\7R-S 	f)A)LQx1}%,W%5"
FFRF^E*\":"?"?"ABdg	eAh!m%IWitGYGY`de	f 
 0s   "D2c                 h    | j                   j                   d| j                   d| j                   dS )Nz(policy=, fill=))rY   rG   rP   r   )rX   s    r@   __repr__zAutoAugment.__repr__  s/    ..))*(4;;-wtyykQRSSrB   )rG   rH   rI   rJ   r   rK   r   NEARESTr   r   r   rU   r   strr4   rV   r   r   boolr   staticmethodr   r   r   __classcell__rY   s   @r@   r   r   h   s)   $ %6$>$>+<+D+D&*	
3!
3 )
3 tE{#	
3
 

3XQ'XQ	eE#uhsm34eCQT<U6VVW	XXQt
C 
U38_ 
QUVY[`agimam[nVnQo 
& 
'# 
'%VV0C*D 
' 
'6 f 8T# TrB   r   c                        e Zd ZdZdddej
                  dfdededed	ed
eee	      ddf fdZ
dedeeef   deeeeef   f   fdZdedefdZdefdZ xZS )r   a~  RandAugment data augmentation method based on
    `"RandAugment: Practical automated data augmentation with a reduced search space"
    <https://arxiv.org/abs/1909.13719>`_.
    If the image is torch Tensor, it should be of type torch.uint8, and it is expected
    to have [..., 1 or 3, H, W] shape, where ... means an arbitrary number of leading dimensions.
    If img is PIL Image, it is expected to be in mode "L" or "RGB".

    Args:
        num_ops (int): Number of augmentation transformations to apply sequentially.
        magnitude (int): Magnitude for all the transformations.
        num_magnitude_bins (int): The number of different magnitude values.
        interpolation (InterpolationMode): Desired interpolation enum defined by
            :class:`torchvision.transforms.InterpolationMode`. Default is ``InterpolationMode.NEAREST``.
            If input is Tensor, only ``InterpolationMode.NEAREST``, ``InterpolationMode.BILINEAR`` are supported.
        fill (sequence or number, optional): Pixel fill value for the area outside the transformed
            image. If given a number, the value is used for all bands respectively.
    rs   r^      Nnum_opsr   num_magnitude_binsr   r   rQ   c                 h    t         |           || _        || _        || _        || _        || _        y rS   )rT   rU   r   r   r   r   r   )rX   r   r   r   r   r   rY   s         r@   rU   zRandAugment.__init__2  s5     	""4*	rB   r   r   c                     t        j                  d      dft        j                  dd|      dft        j                  dd|      dft        j                  dd|d   z  |      dft        j                  dd|d   z  |      dft        j                  dd|      dft        j                  dd	|      dft        j                  dd	|      dft        j                  dd	|      dft        j                  dd	|      dfd
t        j                  |      |dz
  dz  z  j	                         j                         z
  dft        j                  dd|      dft        j                  d      dft        j                  d      dfdS )Nr   Frw   Tr   r	   r   r   rx   r\   rk   r   r-   r   r   r    r!   r"   r$   r%   r&   r'   r(   r)   r*   r+   r   r   r   r   r   r4   r   s      r@   r   zRandAugment._augmentation_spaceA  s^    c*E2~~c394@~~c394@ >>#}z!}/LhWY]^ >>#}z!}/LhWY]^~~c4:DA >>#sH=tDnnS#x8$?S(;TB..c8<dCu||H5(Q,!9KLSSUYY[[]bcsH=uE"\\#.6c*E2
 	
rB   r   c                    | j                   }t        j                  |      \  }}}t        |t              r@t        |t
        t        f      rt        |      g|z  }n||D cg c]  }t        |       }}| j                  | j                  ||f      }t        | j                        D ]  }t        t        j                  t        |      d      j                               }	t        |j!                               |	   }
||
   \  }}|j"                  dkD  r&t        || j$                     j                               nd}|rt        j                  dd      r|dz  }t'        ||
|| j(                  |      } |S c c}w )
            img (PIL Image or Tensor): Image to be transformed.

        Returns:
            PIL Image or Tensor: Transformed image.
        r   r   r   rs   r   r#   )r   r/   r   r   r   r4   r   r   r   ranger   r   r   r   r   listkeysndimr   rA   r   )rX   r   r   r   r   r   r   r   _op_indexr   r   r   r   s                 r@   r   zRandAugment.forwardT  sO    yy"#"2"23"7&%c6"$e-d}x/!*./Qa//**4+B+BVUOTt||$ 	bA5==Wt<AACDH7<<>*84G!(!1JDNOOVWDWj8==?@]`I%--40T!	C)4CUCU\`aC	b 
 0s   "E8c                     | j                   j                   d| j                   d| j                   d| j                   d| j
                   d| j                   d}|S )Nz	(num_ops=z, magnitude=z, num_magnitude_bins=, interpolation=r   r   )rY   rG   r   r   r   r   r   rX   ss     r@   r   zRandAugment.__repr__o  sg    ~~&&' (||n4>>*#D$;$;#<t112dii[ 	
 rB   )rG   rH   rI   rJ   r   r   r4   r   r   r   rU   r   r   r   r   r   r   r   r   r   r   s   @r@   r   r     s    ( "$+<+D+D&*   	
 ) tE{# 

C 
U38_ 
QUVY[`agimam[nVnQo 
&6 f 6
# 
rB   r   c            	            e Zd ZdZdej
                  dfdededeee	      ddf fdZ
d	edeeeeef   f   fd
ZdedefdZdefdZ xZS )r   a  Dataset-independent data-augmentation with TrivialAugment Wide, as described in
    `"TrivialAugment: Tuning-free Yet State-of-the-Art Data Augmentation" <https://arxiv.org/abs/2103.10158>`_.
    If the image is torch Tensor, it should be of type torch.uint8, and it is expected
    to have [..., 1 or 3, H, W] shape, where ... means an arbitrary number of leading dimensions.
    If img is PIL Image, it is expected to be in mode "L" or "RGB".

    Args:
        num_magnitude_bins (int): The number of different magnitude values.
        interpolation (InterpolationMode): Desired interpolation enum defined by
            :class:`torchvision.transforms.InterpolationMode`. Default is ``InterpolationMode.NEAREST``.
            If input is Tensor, only ``InterpolationMode.NEAREST``, ``InterpolationMode.BILINEAR`` are supported.
        fill (sequence or number, optional): Pixel fill value for the area outside the transformed
            image. If given a number, the value is used for all bands respectively.
    r   Nr   r   r   rQ   c                 L    t         |           || _        || _        || _        y rS   )rT   rU   r   r   r   )rX   r   r   r   rY   s       r@   rU   zTrivialAugmentWide.__init__  s'     	"4*	rB   r   c                    t        j                  d      dft        j                  dd|      dft        j                  dd|      dft        j                  dd|      dft        j                  dd|      dft        j                  dd|      dft        j                  dd|      dft        j                  dd|      dft        j                  dd|      dft        j                  dd|      dfdt        j                  |      |dz
  d	z  z  j	                         j                         z
  dft        j                  d
d|      dft        j                  d      dft        j                  d      dfdS )Nr   FgGz?Tg      @@g     `@r\   r	   rg   r   r   r   )rX   r   s     r@   r   z&TrivialAugmentWide._augmentation_space  sJ    c*E2~~c4:DA~~c4:DA >>#tX>E >>#tX>E~~c5(;TB >>#tX>EnnS$94@T8<dC..dH=tDu||H5(Q,!9KLSSUYY[[]bcsH=uE"\\#.6c*E2
 	
rB   r   c                    | j                   }t        j                  |      \  }}}t        |t              r@t        |t
        t        f      rt        |      g|z  }n||D cg c]  }t        |       }}| j                  | j                        }t        t        j                  t        |      d      j                               }t        |j                               |   }	||	   \  }
}|
j                  dkD  rIt        |
t        j                  t        |
      dt        j                            j                               nd}|rt        j                  dd      r|dz  }t#        ||	|| j$                  |      S c c}w )r   r   r   dtyper   rs   r   r#   )r   r/   r   r   r   r4   r   r   r   r   r   r   r   r   r   r   longrA   r   )rX   r   r   r   r   r   r   r   r   r   r   r   r   s                r@   r   zTrivialAugmentWide.forward  sC    yy"#"2"23"7&%c6"$e-d}x/!*./Qa//**4+B+BCu}}S\48==?@w||~&x0$W-
F " *U]]3z?D

STYY[\ 	
 emmAt,Igy@R@RY]^^ 0s   "E<c                     | j                   j                   d| j                   d| j                   d| j                   d}|S )Nz(num_magnitude_bins=r   r   r   )rY   rG   r   r   r   r   s     r@   r   zTrivialAugmentWide.__repr__  sP    ~~&&' (""&"9"9!:t112dii[	 	
 rB   )rG   rH   rI   rJ   r   r   r4   r   r   r   rU   r   r   r   r   r   r   r   r   r   r   s   @r@   r   r   |  s    " #%+<+D+D&*			 )	 tE{#		
 
	
C 
DeFDL>Q9Q4R 
&_6 _f _:# rB   r   c                   N    e Zd ZdZdddddej
                  dfdeded	ed
ededede	e
e      ddf fdZdedeeef   deeeeef   f   fdZej$                  j&                  defd       Zej$                  j&                  defd       ZdedefdZdedefdZdefdZ xZS )r   a  AugMix data augmentation method based on
    `"AugMix: A Simple Data Processing Method to Improve Robustness and Uncertainty" <https://arxiv.org/abs/1912.02781>`_.
    If the image is torch Tensor, it should be of type torch.uint8, and it is expected
    to have [..., 1 or 3, H, W] shape, where ... means an arbitrary number of leading dimensions.
    If img is PIL Image, it is expected to be in mode "L" or "RGB".

    Args:
        severity (int): The severity of base augmentation operators. Default is ``3``.
        mixture_width (int): The number of augmentation chains. Default is ``3``.
        chain_depth (int): The depth of augmentation chains. A negative value denotes stochastic depth sampled from the interval [1, 3].
            Default is ``-1``.
        alpha (float): The hyperparameter for the probability distributions. Default is ``1.0``.
        all_ops (bool): Use all operations (including brightness, contrast, color and sharpness). Default is ``True``.
        interpolation (InterpolationMode): Desired interpolation enum defined by
            :class:`torchvision.transforms.InterpolationMode`. Default is ``InterpolationMode.NEAREST``.
            If input is Tensor, only ``InterpolationMode.NEAREST``, ``InterpolationMode.BILINEAR`` are supported.
        fill (sequence or number, optional): Pixel fill value for the area outside the transformed
            image. If given a number, the value is used for all bands respectively.
    rm   r   TNseveritymixture_widthchain_depthalphaall_opsr   r   rQ   c                     t         |           d| _        d|cxk  r| j                  k  sn t        d| j                   d| d      || _        || _        || _        || _        || _        || _	        || _
        y )Nr   r	   z!The severity must be between [1, z]. Got z	 instead.)rT   rU   _PARAMETER_MAXr?   r   r   r   r   r   r   r   )	rX   r   r   r   r   r   r   r   rY   s	           r@   rU   zAugMix.__init__  s     	 X4!4!44@ATAT@UU\]e\ffopqq *&
*	rB   r   r   c                    t        j                  dd|      dft        j                  dd|      dft        j                  d|d   dz  |      dft        j                  d|d   dz  |      dft        j                  dd|      dfdt        j                  |      |dz
  dz  z  j                         j	                         z
  d	ft        j                  d
d|      d	ft        j
                  d      d	ft        j
                  d      d	fd	}| j                  rr|j                  t        j                  dd|      dft        j                  dd|      dft        j                  dd|      dft        j                  dd|      dfd       |S )Nr   rw   Tr	   g      @r   r   rk   Fr   )	r   r   r    r!   r"   r(   r)   r*   r+   rx   )r$   r%   r&   r'   )r   r   r   r   r4   r   r   update)rX   r   r   r   s       r@   r   zAugMix._augmentation_space  si    ~~c394@~~c394@ >>#z!}s/BHMtT >>#z!}s/BHMtT~~c4:DAu||H5(Q,!9KLSSUYY[[]bcsH=uE"\\#.6c*E2
 <<HH#(>>#sH#Et"L#nnS#x@$G!&S(!CT J"'..c8"Dd!K	 rB   c                 ,    t        j                  |      S rS   )r/   pil_to_tensorrX   r   s     r@   _pil_to_tensorzAugMix._pil_to_tensor  s    s##rB   r   c                 ,    t        j                  |      S rS   )r/   to_pil_imager   s     r@   _tensor_to_pilzAugMix._tensor_to_pil  s    ~~c""rB   paramsc                 ,    t        j                  |      S rS   )r   _sample_dirichlet)rX   r   s     r@   r   zAugMix._sample_dirichlet  s    &&v..rB   orig_imgc           
         | j                   }t        j                  |      \  }}}t        |t              rC|}t        |t
        t        f      rt        |      g|z  }n,|*|D cg c]  }t        |       }}n| j                  |      }| j                  | j                  ||f      }t        |j                        }	|j                  dgt        d|j                  z
  d      z  |	z         }
|
j                  d      gdg|
j                  dz
  z  z   }| j!                  t#        j$                  | j&                  | j&                  g|
j(                        j+                  |d   d            }| j!                  t#        j$                  | j&                  g| j,                  z  |
j(                        j+                  |d   d            |dddf   j                  |d   dg      z  }|dddf   j                  |      |
z  }t/        | j,                        D ]u  }|
}| j0                  dkD  r| j0                  n.t        t#        j2                  ddd      j5                               }t/        |      D ]  }t        t#        j2                  t7        |      d      j5                               }t        |j9                               |   }||   \  }}|j                  dkD  rJt        |t#        j2                  | j:                  dt"        j<                  	         j5                               nd
}|rt#        j2                  dd      r|dz  }t?        |||| j@                  |      } |jC                  |dd|f   j                  |      |z         x |j                  |	      jE                  |jF                  	      }t        |t              s| jI                  |      S |S c c}w )r   Nr	   rk   r   )devicer   r   )lowhighsizer   r   rs   r   r#   )%r   r/   r   r   r   r4   r   r   r   r   r   shapeviewmaxr   r   r   r   r   r   r   expandr   r   r   r   r   r   r   r   r   rA   r   add_tor   r   )rX   r   r   r   r   r   r   r   r   	orig_dimsbatch
batch_dimsmcombined_weightsmixr   augdepthr   r   r   r   r   r   s                           r@   r   zAugMix.forward!  s]    yy"#"2"28"<&%h'C$e-d}x/!*./Qa//%%h/C**4+>+>PO	!s1sxx<33i?@jjm_sejj1n'==
 ""LL$**djj1%,,GNNzZ[}^`a

  11LL$**(:(::5<<PWWXbcdXegij
adGLL*Q-,-. 1gll:&.t))* 	DAC(,(8(81(<D$$#emmXY`ahlFmFrFrFtBuE5\ fu}}S\4@EEGHw||~.x8%,W%5"
F "* *U]]4==$ejj%YZ__ab 
 emmAt4%IWitGYGY`def HH%ad+00<sBC	D  hhy!$$399$5(F+&&s++
U 0s   $Oc                     | j                   j                   d| j                   d| j                   d| j                   d| j
                   d| j                   d| j                   d| j                   d}|S )	Nz
(severity=z, mixture_width=z, chain_depth=z, alpha=z
, all_ops=r   r   r   )	rY   rG   r   r   r   r   r   r   r   r   s     r@   r   zAugMix.__repr__[  s    ~~&&' (t112T--.tzzlt112dii[ 	
 rB   )rG   rH   rI   rJ   r   BILINEARr4   r   r   r   r   rU   r   r   r   r   r   r   jitunusedr   r   r   r   r   r   r   s   @r@   r   r     s9   , +<+E+E&*  	
   ) tE{# 
,C U38_ QUVY[`agimam[nVnQo 0 YY$V $ $ YY#& # #/ /6 /8 86 8t# rB   r   )r1   enumr   typingr   r   r   r   r   r    r
   r/   r   __all__r   r   rA   r   nnModuler   r   r   r   rN   rB   r@   <module>r     s      . .   0
]M	MM*/M@QMYabfglbmYnM` tT%((// tTnZ%((// ZzS SlUUXX__ UrB   