
    ڧgSn                     n   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dS )    N)Enum)DictListOptionalTuple)Tensor   )
functionalInterpolationMode)AutoAugmentPolicyAutoAugmentRandAugmentTrivialAugmentWideAugMiximgop_name	magnitudeinterpolationfillc                    |dk    rHt          j        | dddgdt          j        t          j        |                    dg||ddg          } n|dk    rHt          j        | dddgddt          j        t          j        |                    g||ddg          } n|dk    r.t          j        | dt          |          dgd|ddg|          } n|d	k    r.t          j        | ddt          |          gd|ddg|          } nM|d
k    rt          j        | |||          } n-|dk    rt          j        | d|z             } n|dk    rt          j        | d|z             } n|dk    rt          j	        | d|z             } n|dk    rt          j
        | d|z             } n|dk    r#t          j        | t          |                    } n|dk    rt          j        | |          } nk|dk    rt          j        |           } nP|dk    rt          j        |           } n5|dk    rt          j        |           } n|dk    rnt!          d| d          | S )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/html/ai-engine/env/lib/python3.11/site-packages/torchvision/transforms/autoaugment.py	_apply_oprA      s    ( h!f<	) 4 455s;'q6	
 	
 	
 
H		 h!fTYy%9%9::;'q6	
 	
 	
 
L	 	 h9~~q)'*
 
 
 
L	 	 h#i..)'*
 
 
 
H		hsI]NNN	L	 	 !#sY77	G		!#sY77	J		S9_55	K		 cIo66	K		k#s9~~..	J		ji((	N	"	"nS!!	J		joo	H		hsmm	J		N'NNNOOOJ    c                       e Zd ZdZdZdZdZdS )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DDDrB   r   c                   b    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                     t                                                       || _        || _        || _        |                     |          | _        d S N)super__init__rP   r   r   _get_policiespolicies)selfrP   r   r   	__class__s       r@   rU   zAutoAugment.__init__y   sJ     	*	**62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   s     &///   6 (000   6 (---   8 OFOOOP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                                                                  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   sw    ~c3994@~c3994@ >#}z!}/LhWWY]^ >#}z!}/LhWWY]^~c4::DA >#sH==tDnS#x88$?S(;;TB.c8<<dCu|H55(Q,!9KLSSUUYY[[[]bcsH==uE"\#..6c**E2|C((%0
 
 	
rB   transform_numc                     t          t          j        | d                                                    }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   sV     mT::??AABB	
4  a&&%&&rB   r   c                    | j         }t          j        |          \  }}}t          |t                    r>t          |t
          t          f          rt          |          g|z  }n|d |D             }|                     t          | j	                            \  }}}| 
                    d||f          }	t          | j	        |                   D ]w\  }
\  }}}||
         |k    rb|	|         \  }}|'t          ||                                                   nd}|r||
         dk    r|dz  }t          |||| j        |          }x|S )z
            img (PIL Image or Tensor): Image to be transformed.

        Returns:
            PIL Image or Tensor: AutoAugmented image.
        Nc                 ,    g | ]}t          |          S rN   float.0fs     r@   
<listcomp>z'AutoAugment.forward.<locals>.<listcomp>      ///Qa///rB   
   r   r         r#   )r   r/   get_dimensions
isinstancer   r4   r   r   lenrW   r   	enumerater   rA   r   )rX   r   r   channelsheightwidthtransform_idr   r   op_metair   pmagnitude_id
magnitudessignedr   s                    r@   forwardzAutoAugment.forward   sc    y"#"23"7"7&%c6"" 	0$e-- 0d}x/!//$///%)__S5G5G%H%H"eU**2??-6t}\7R-S-S 	f 	f)A)LQx1}}%,W%5"
FFRF^E*\":"?"?"A"ABBBdg	 &eAh!mm%IWitGY`deee
rB   c                 @    | j         j         d| j         d| j         dS )Nz(policy=, fill=))rY   rG   rP   r   )rX   s    r@   __repr__zAutoAugment.__repr__  s*    .)SS4;SStySS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&*	
3 
3!
3 )
3 tE{#	
3
 

3 
3 
3 
3 
3 
3XQ'XQ	eE#uhsm34eCQT<U6VVW	XXQ XQ XQ XQt
C 
U38_ 
QUVY[`agimam[nVnQo 
 
 
 
& 
'# 
'%VV0C*D 
' 
' 
' \
'6 f    8T# T T T T T T 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                     t                                                       || _        || _        || _        || _        || _        d S rS   )rT   rU   r   r   r   r   r   )rX   r   r   r   r   r   rY   s         r@   rU   zRandAugment.__init__2  sD     	""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                                                                  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  sw    c**E2~c3994@~c3994@ >#}z!}/LhWWY]^ >#}z!}/LhWWY]^~c4::DA >#sH==tDnS#x88$?S(;;TB.c8<<dCu|H55(Q,!9KLSSU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 |D             }|                     | j        ||f          }t          | j
                  D ]}t          t          j        t          |          d                                                    }t          |                                          |         }	||	         \  }
}|
j        dk    r,t          |
| j                                                           nd}|rt          j        dd          r|dz  }t'          ||	|| j        |          }|S )	
            img (PIL Image or Tensor): Image to be transformed.

        Returns:
            PIL Image or Tensor: Transformed image.
        Nc                 ,    g | ]}t          |          S rN   r   r   s     r@   r   z'RandAugment.forward.<locals>.<listcomp>a  r   rB   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   _op_indexr   r   r   r   s                r@   r   zRandAugment.forwardT  s}    y"#"23"7"7&%c6"" 	0$e-- 0d}x/!//$///**4+BVUOTTt|$$ 	b 	bA5=Wt<<AACCDDH7<<>>**84G!(!1JDNOVWDWDWj8==??@@@]`I "%-400 "T!	C)4CU\`aaaCC
rB   c                 t    | 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  sx    ~&  | >  %)$;   $1	 
 i   	
 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&*    	
 ) 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                 r    t                                                       || _        || _        || _        d S rS   )rT   rU   r   r   r   )rX   r   r   r   rY   s       r@   rU   zTrivialAugmentWide.__init__  s6     	"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                                                                  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  sc    c**E2~c4::DA~c4::DA >#tX>>E >#tX>>E~c5(;;TB >#tX>>EnS$994@T8<<dC.dH==tDu|H55(Q,!9KLSSU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 |D             }|                     | j                  }t          t          j
        t          |          d                                                    }t          |                                          |         }||         \  }	}
|	j        dk    rSt          |	t          j
        t          |	          dt          j                                                                     nd}|
rt          j
        dd          r|dz  }t#          |||| j        |	          S )
r   Nc                 ,    g | ]}t          |          S rN   r   r   s     r@   r   z.TrivialAugmentWide.forward.<locals>.<listcomp>  r   rB   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   s               r@   r   zTrivialAugmentWide.forward  sv    y"#"23"7"7&%c6"" 	0$e-- 0d}x/!//$///**4+BCCu}S\\488==??@@w||~~&&x0$W-
F "" *U]3z??D
SSSTYY[[\\\ 	
  	emAt,, 	Igy@RY]^^^^rB   c                 T    | 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__  sV    ~&  "&"9 #1  i   	
 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&*		 		 )	 tE{#		
 
	 	 	 	 	 	
C 
DeFDL>Q9Q4R 
 
 
 
&_6 _f _ _ _ _:#        rB   r   c                   F    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          || _        || _        || _        || _        || _        || _	        || _
        d S )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!44444pATpp]epppq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                                                                  z
  d	ft          j        d
d|          d	ft          j        d          d	ft          j        d          d	fd	}| j        rr|                    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  s    ~c3994@~c3994@ >#z!}s/BHMMtT >#z!}s/BHMMtT~c4::DAu|H55(Q,!9KLSSUUYY[[[]bcsH==uE"\#..6c**E2
 
 < 	HH#(>#sH#E#Et"L#nS#x@@$G!&S(!C!CT J"'.c8"D"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                    rA|}t          |t
          t          f          rt          |          g|z  }n$|d |D             }n|                     |          }|                     | j	        ||f          }t          |j                  }|                    dgt          d|j        z
  d          z  |z             }	|	                    d          gdg|	j        dz
  z  z   }
|                     t#          j        | j        | j        g|	j                                      |
d         d                    }|                     t#          j        | j        g| j        z  |	j                                      |
d         d                    |dddf                             |
d         dg          z  }|dddf                             |
          |	z  }t/          | j                  D ]}|	}| j        dk    r| j        n5t          t#          j        ddd	                                                    }t/          |          D ]}t          t#          j        t7          |          d                                                    }t          |                                          |         }||         \  }}|j        dk    rKt          |t#          j        | j        dt"          j        
                                                             nd}|rt#          j        dd          r|dz  }t?          |||| j         |          }|!                    |dd|f                             |
          |z             |                    |          "                    |j#        
          }t          |t                    s| $                    |          S |S )r   Nc                 ,    g | ]}t          |          S rN   r   r   s     r@   r   z"AugMix.forward.<locals>.<listcomp>/  r   rB   r	   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   	orig_dimsbatch
batch_dimsmcombined_weightsmixr   augdepthr   r   r   r   r   r   s                          r@   r   zAugMix.forward!  s    y"#"28"<"<&%h'' 	0C$e-- 0d}x/!//$///%%h//C**4+>PPOO	!s1sx<333i?@@jjmm_sej1n'==
 ""L$*dj1%,GGGNNzZ[}^`aa
 

  11L$*(::5<PPPWWXbcdXegijj
 
aaadGLL*Q-,--. 1gll:&&.t)** 	D 	DAC(,(81(<(<D$$#emXY`ahlFmFmFmFrFrFtFtBuBuE5\\ f fu}S\\4@@EEGGHHw||~~..x8%,W%5"
F "** *U]4=$ej%Y%Y%YZ__aabbb 
  &emAt44 &%IWitGY`deeeHH%aaad+00<<sBCCCChhy!!$$39$55(F++ 	,&&s+++
rB   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    ~&   #1  "-  z	 
    $1  i   	
 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     s        , +<+E&*   	
   ) tE{# 
     ,C U38_ QUVY[`agimam[nVnQo    0 Y$V $ $ $ $ Y#& # # # #/ /6 / / / /8 86 8 8 8 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 0 0 0 0 0 0 0
]
]
]M	MM*/M@QMYabfglbmYnM M M M`       tT tT tT tT tT%(/ tT tT tTnZ Z Z Z Z%(/ Z Z ZzS S S S S S S SlU U U U UUX_ U U U U UrB   