
    Yh@n                     b   d dl Z d dlmZ d dl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)Optional)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        t/var/www/tools.fuzzalab.pt/emblema-extractor/venv/lib/python3.11/site-packages/torchvision/transforms/autoaugment.py	_apply_opr>      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 r?   r=   r	   r	   ]   s)          HGDDDr?   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__rM   r   r   _get_policiespolicies)selfrM   r   r   	__class__s       r=   rR   zAutoAugment.__init__y   sJ     	*	**622r?   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&   rZ      r'   rZ   Nr(   皙?Nr(   rZ   N))r%   rZ      )r%   rZ      r(   rX   N)r&   皙?   )rf   r   ra   rY   ))r&   rZ      rb   ))r%   ra   r]   r(   r   N))r   rg   rj   )r&   rZ   rY   )rb   )r%   rX   rd   )ri   r"   rX   r   ))r   rX   r[   rb   ))r(   r   Nr`   r)   rZ   Nrk   )r"   rZ   rh   )r#   r   rY   )ri   )r"   r      ))r"   ra   rY   )r&   ra   rc   ))r$   rX   rc   rn   ))r   rZ   r]   rk   )rl   rb   re   r\   rm   ro   r_   ))r)   皙?N)r#   rg   rd   ))r   ffffff?rp   )r   333333?r[   ))r$   ra   r   )r$   ?rj   ))r         ?rY   r   rs   r[   ))r'   rv   Nr(   ru   N))r   rg   rc   )r%   rt   rc   ))r"   rX   rj   )r!   rZ   rc   ))r$   rt   r[   )r!   rs   r[   )rb   )r(   rv   N))r#   rZ   rc   )r$   rZ   r]   ))r"   rs   rc   )r   rv   rY   ))r(   rt   N)r'   rX   N))r   rX   rj   )r$   rg   rd   ))r!   ru   rd   )r"   rg   rY   ))r&   rv   rp   )r)   r   N)r(   rg   Nr^   )ry   rb   ))r"   ru   r[   rb   )r'   ra   N)r&   rg   rY   ))r!   rr   rj   )r"   rs   r   ))r&   rX   r]   r'   ru   N))r   ru   r[   rw   )r{   )r&   ra   rj   )r`   rq   )rw   r{   ))r   ru   rh   )r)   rg   N)r   ru   rY   r)   rs   N)rb   )r&   rZ   rd   r)   ru   Nrb   rb   )r   ru   rj   )r|   rz   )r}   )r)   rX   N))r   ru   r]   )r&   rg   rd   )r   rz   r   )r|   )r&   rt   rj   ))r   ra   rY   r~   )rx   )r   rZ   rd   r   ))r#   rt   rj   r   ra   rh   )r)   ra   N)r   r   rp   ))r   rs   rd   )r&   rX   rY   )rn   r   ))r   rt   rc   )r   ru   rj   ))r   rr   rd   rn   ))r&   rs   rp   )r   rZ   rc   ))r   ra   rh   r   ))r   rs   r[   )r   ra   rj   ))r   ra   r]   )r'   rs   N))r   rs   rp   rq   zThe provided policy r+   )r	   rH   rI   rJ   r<   )rU   rM   s     r=   rS   zAutoAugment._get_policies   s     &///   6 (000   6 (---   8 OFOOOPPPr?   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   rt   Tt ?r   r         >@ru   rY   rh   F     o@)r   r   r   r   r   r!   r"   r#   r$   r%   r&   r'   r(   r)   )torchlinspacearangeroundr1   tensorrU   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
 
 	
r?   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   )rp   rp   )r1   r   randintitemrand)r   	policy_idprobssignss       r=   
get_paramszAutoAugment.get_params   sV     mT::??AABB	
4  a&&%&&r?   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 rK   float.0fs     r=   
<listcomp>z'AutoAugment.forward.<locals>.<listcomp>      ///Qa///r?   
   r   r         r    )r   r,   get_dimensions
isinstancer   r1   r   r   lenrT   r   	enumerater   r>   r   )rU   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
r?   c                 @    | j         j         d| j         d| j         dS )Nz(policy=, fill=))rV   rD   rM   r   )rU   s    r=   __repr__zAutoAugment.__repr__  s*    .)SS4;SStySSSSr?   )rD   rE   rF   rG   r	   rH   r   NEARESTr   listr   rR   tuplestrr1   rS   dictr   boolr   staticmethodr   r   r   __classcell__rV   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r?   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.
    rp   r[      Nnum_opsr   num_magnitude_binsr   r   rN   c                     t                                                       || _        || _        || _        || _        || _        d S rP   )rQ   rR   r   r   r   r   r   )rU   r   r   r   r   r   rV   s         r=   rR   zRandAugment.__init__2  sD     	""4*			r?   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   Frt   Tr   r   r   r   ru   rY   rh   r   r*   r   r   r   r   r   r!   r"   r#   r$   r%   r&   r'   r(   r   r   r   r   r   r1   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
 
 	
r?   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 rK   r   r   s     r=   r   z'RandAugment.forward.<locals>.<listcomp>a  r   r?   r   r   r   rp   r   r    )r   r,   r   r   r   r1   r   r   r   ranger   r   r   r   r   r   keysndimr   r>   r   )rU   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
r?   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   )rV   rD   r   r   r   r   r   rU   ss     r=   r   zRandAugment.__repr__o  sx    ~&  | >  %)$;   $1	 
 i   	
 r?   )rD   rE   rF   rG   r   r   r1   r   r   r   rR   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
# 
 
 
 
 
 
 
 
r?   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   rN   c                 r    t                                                       || _        || _        || _        d S rP   )rQ   rR   r   r   r   )rU   r   r   r   rV   s       r=   rR   zTrivialAugmentWide.__init__  s6     	"4*			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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     `@rY   r   rd   r   r   r   )rU   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
 
 	
r?   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 rK   r   r   s     r=   r   z.TrivialAugmentWide.forward.<locals>.<listcomp>  r   r?   r   r   dtyper   rp   r   r    )r   r,   r   r   r   r1   r   r   r   r   r   r   r   r   r   r   longr>   r   )rU   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]^^^^r?   c                 T    | j         j         d| j         d| j         d| j         d}|S )Nz(num_magnitude_bins=r   r   r   )rV   rD   r   r   r   r   s     r=   r   zTrivialAugmentWide.__repr__  sV    ~&  "&"9 #1  i   	
 r?   )rD   rE   rF   rG   r   r   r1   r   r   r   rR   r   r   r   r   r   r   r   r   r   r   s   @r=   r   r   |  s        " #%+<+D&*		 		 )	 tE{#		
 
	 	 	 	 	 	
C 
DeFDL>Q9Q4R 
 
 
 
&_6 _f _ _ _ _:#        r?   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.
    rj   r   TNseveritymixture_widthchain_depthalphaall_opsr   r   rN   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.)rQ   rR   _PARAMETER_MAXr<   r   r   r   r   r   r   r   )	rU   r   r   r   r   r   r   r   rV   s	           r=   rR   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 *&
*			r?   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   rt   Tr   g      @r   r   rh   Fr   )	r   r   r   r   r   r%   r&   r'   r(   ru   )r!   r"   r#   r$   )r   r   r   r   r1   r   r   update)rU   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	    r?   c                 *    t          j        |          S rP   )r,   pil_to_tensorrU   r   s     r=   _pil_to_tensorzAugMix._pil_to_tensor  s    s###r?   r   c                 *    t          j        |          S rP   )r,   to_pil_imager   s     r=   _tensor_to_pilzAugMix._tensor_to_pil  s    ~c"""r?   paramsc                 *    t          j        |          S rP   )r   _sample_dirichlet)rU   r   s     r=   r   zAugMix._sample_dirichlet  s    &v...r?   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 rK   r   r   s     r=   r   z"AugMix.forward.<locals>.<listcomp>/  r   r?   r   rh   r   )devicer   r   )lowhighsizer   r   rp   r   r    )%r   r,   r   r   r   r1   r   r   r   r   r   shapeviewmaxr   r   r   r   r   r   r   expandr   r   r   r   r   r   r   r   r   r>   r   add_tor   r   )rU   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+++
r?   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   )	rV   rD   r   r   r   r   r   r   r   r   s     r=   r   zAugMix.__repr__[  s    ~&   #1  "-  z	 
    $1  i   	
 r?   )rD   rE   rF   rG   r   BILINEARr1   r   r   r   r   rR   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#        r?   r   )r.   enumr   typingr   r   r    r   r,   r   __all__r   r   r   r>   r	   nnModuler
   r   r   r   rK   r?   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r?   