+
    ˜°³j’  ã                   óL   € ^ RI Hu Ht ^ RIHt ^RIHt R.t ! R R]4      t	R# )é    N©ÚTensor)ÚModuleÚChannelShufflec                   óx   a a€ ] tR t^
t oRtR.tV3R lV 3R lltV3R lR ltV3R lR ltV3R	 lt	R
t
VtV ;t# )r   a·  Divides and rearranges the channels in a tensor.

This operation divides the channels in a tensor of shape :math:`(N, C, *)`
into g groups as :math:`(N, \frac{C}{g}, g, *)` and shuffles them,
while retaining the original tensor shape in the final output.

Args:
    groups (int): number of groups to divide channels in.

Examples::

    >>> channel_shuffle = nn.ChannelShuffle(2)
    >>> input = torch.arange(1, 17, dtype=torch.float32).view(1, 4, 2, 2)
    >>> input
    tensor([[[[ 1.,  2.],
              [ 3.,  4.]],
             [[ 5.,  6.],
              [ 7.,  8.]],
             [[ 9., 10.],
              [11., 12.]],
             [[13., 14.],
              [15., 16.]]]])
    >>> output = channel_shuffle(input)
    >>> output
    tensor([[[[ 1.,  2.],
              [ 3.,  4.]],
             [[ 9., 10.],
              [11., 12.]],
             [[ 5.,  6.],
              [ 7.,  8.]],
             [[13., 14.],
              [15., 16.]]]])
Úgroupsc                ó$   <€ V ^8„  d   QhRS[ RR/# )é   r   ÚreturnN©Úint)ÚformatÚ__classdict__s   "€Ú`/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torch/nn/modules/channelshuffle.pyÚ__annotate__ÚChannelShuffle.__annotate__0   s   ø€ ÷ ñ ™sð  tñ ó    c                ó0   <€ \         SV `  4        Wn        R # )N)ÚsuperÚ__init__r   )Úselfr   Ú	__class__s   &&€r   r   ÚChannelShuffle.__init__0   s   ø€ Ü‰ÑÔØŽr   c                ó&   <€ V ^8„  d   QhRS[ RS[ /# )r
   Úinputr   r   )r   r   s   "€r   r   r   4   s   ø€ ÷ 5ñ 5™Vð 5©ñ 5r   c                óB   € \         P                  ! WP                  4      # )z
Runs the forward pass.
)ÚFÚchannel_shuffler   )r   r   s   &&r   ÚforwardÚChannelShuffle.forward4   s   € ô × Ò  ¯©Ó4Ð4r   c                ó    <€ V ^8„  d   QhRS[ /# )r
   r   )Ústr)r   r   s   "€r   r   r   :   s   ø€ ÷ 'ñ '™Cñ 'r   c                ó    € RV P                    2# )z0
Return the extra representation of the module.
zgroups=©r   )r   s   &r   Ú
extra_reprÚChannelShuffle.extra_repr:   s   € ð ˜Ÿ™˜Ð&Ð&r   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # )r
   r   r   )r   r   s   "€r   r   r   
   s   ø‡ ‚ ñH �KòI r   r$   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__constants__r   r   r%   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__Ú__classcell__)r   r   s   @@r   r   r   
   s:   ù‡ € ñ ðD �J€M÷ó ÷5ð 5÷'ð '÷a … r   )
Útorch.nn.functionalÚnnÚ
functionalr   Útorchr   Úmoduler   Ú__all__r   © r   r   Ú<module>r9      s'   ðß Ð Ý å ð Ð
€ô4'�Vö 4'r   