+
    ˜°³jX0  ã                   óÞ   € ^ RI t ^ RIHt ^ RIt^ RIHt ^ RIHtHt ^ RI	H
t
Ht ^RIHt ^RIHt . ROt ! R R	]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R
]]4      tR# )é    N©ÚAny©ÚTensor)Ú
functionalÚinit)Ú	ParameterÚUninitializedParameter)ÚLazyModuleMixin)ÚModuleÚBilinearÚIdentityÚ
LazyLinearÚLinearc                   óT   a a€ ] tR t^t oRtV3R lV 3R lltV3R lR ltRtVtV ;t	# )r   aã  A placeholder identity operator that is argument-insensitive.

Args:
    args: any argument (unused)
    kwargs: any keyword argument (unused)

Shape:
    - Input: :math:`(*)`, where :math:`*` means any number of dimensions.
    - Output: :math:`(*)`, same shape as the input.

Examples::

    >>> m = nn.Identity(54, unused_argument1=0.1, unused_argument2=False)
    >>> input = torch.randn(128, 20)
    >>> output = m(input)
    >>> print(output.size())
    torch.Size([128, 20])

c                ó*   <€ V ^8„  d   QhRS[ RS[ RR/# )é   ÚargsÚkwargsÚreturnNr   )ÚformatÚ__classdict__s   "€ÚX/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torch/nn/modules/linear.pyÚ__annotate__ÚIdentity.__annotate__+   s"   ø€ ÷ ñ ™cð ©Sð °Tñ ó    c                ó$   <€ \         SV `  4        R # )N©ÚsuperÚ__init__)Úselfr   r   Ú	__class__s   &*,€r   r    ÚIdentity.__init__+   s   ø€ Ü‰ÑÖr   c                ó&   <€ V ^8„  d   QhRS[ RS[ /# ©r   Úinputr   r   )r   r   s   "€r   r   r   .   s   ø€ ÷ ñ ™Vð ©ñ r   c                ó   € V# ©z
Runs the forward pass.
© ©r!   r&   s   &&r   ÚforwardÚIdentity.forward.   s	   € ð ˆr   r)   )
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r    r+   Ú__static_attributes__Ú__classdictcell__Ú__classcell__©r"   r   s   @@r   r   r      s#   ù‡ € ñ÷(ó ÷÷ ð r   c                   ó�   a a€ ] tR t^5t oRtRR.tRV3R lV 3R llltV3R lR 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Ó  Applies an affine linear transformation to the incoming data: :math:`y = xA^T + b`.

This module supports :ref:`TensorFloat32<tf32_on_ampere>`.

On certain ROCm devices, when using float16 inputs this module will use :ref:`different precision<fp16_on_mi200>` for backward.

Args:
    in_features: size of each input sample
    out_features: size of each output sample
    bias: If set to ``False``, the layer will not learn an additive bias.
        Default: ``True``

Shape:
    - Input: :math:`(*, H_\text{in})` where :math:`*` means any number of
      dimensions including none and :math:`H_\text{in} = \text{in\_features}`.
    - Output: :math:`(*, H_\text{out})` where all but the last dimension
      are the same shape as the input and :math:`H_\text{out} = \text{out\_features}`.

Attributes:
    weight: the learnable weights of the module of shape
        :math:`(\text{out\_features}, \text{in\_features})`. The values are
        initialized from :math:`\mathcal{U}(-\sqrt{k}, \sqrt{k})`, where
        :math:`k = \frac{1}{\text{in\_features}}`
    bias:   the learnable bias of the module of shape :math:`(\text{out\_features})`.
            If :attr:`bias` is ``True``, the values are initialized from
            :math:`\mathcal{U}(-\sqrt{k}, \sqrt{k})` where
            :math:`k = \frac{1}{\text{in\_features}}`

Examples::

    >>> m = nn.Linear(20, 30)
    >>> input = torch.randn(128, 20)
    >>> output = m(input)
    >>> print(output.size())
    torch.Size([128, 30])
Úin_featuresÚout_featuresc                ó0   <€ V ^8„  d   QhRS[ RS[ RS[RR/# ©r   r7   r8   Úbiasr   N©ÚintÚbool)r   r   s   "€r   r   ÚLinear.__annotate__`   s3   ø€ ÷  ñ  áð ñ ð ñ ð	 ð 
ñ r   c                ó4  <€ R VRV/p\         SV `  4        Wn        W n        \	        \
        P                  ! W!33/ VB 4      V n        V'       d'   \	        \
        P                  ! V3/ VB 4      V n        MV P                  RR4       V P                  4        R# ©ÚdeviceÚdtyper;   N)r   r    r7   r8   r	   ÚtorchÚemptyÚweightr;   Úregister_parameterÚreset_parameters)r!   r7   r8   r;   rB   rC   Úfactory_kwargsr"   s   &&&&&& €r   r    ÚLinear.__init__`   s…   ø€ ð # F¨G°UÐ;ˆÜ‰ÑÔØ&ÔØ(ÔÜÜ�KŠK˜Ð3ÑF°~ÑFó
ˆŒ÷ Ü!¤%§+¢+¨lÑ"M¸nÑ"MÓNˆD�Ià×#Ñ# F¨DÔ1Ø×ÑÖr   c                ó   <€ V ^8„  d   QhRR/# ©r   r   Nr)   )r   r   s   "€r   r   r?   u   ó   ø€ ÷ 4ñ 4 $ñ 4r   c                óh  € \         P                  ! V P                  \        P                  ! ^4      R7       V P
                  en   \         P                  ! V P                  4      w  rV^ 8”  d   ^\        P                  ! V4      ,          M^ p\         P                  ! V P
                  V) V4       R# R# )úG
Resets parameters based on their initialization used in ``__init__``.
)ÚaN)r   Úkaiming_uniform_rF   ÚmathÚsqrtr;   Ú_calculate_fan_in_and_fan_outÚuniform_)r!   Úfan_inÚ_Úbounds   &   r   rH   ÚLinear.reset_parametersu   sv   € ô 	×Ò˜dŸk™k¬T¯YªY°q«\Õ:Ø�9‰9Ò Ü×:Ò:¸4¿;¹;ÓG‰IˆFØ-3°a¬Z�AœŸ	š	 &Ó)Ö)¸QˆEÜ�MŠM˜$Ÿ)™) e V¨UÖ3ñ !r   c                ó&   <€ V ^8„  d   QhRS[ RS[ /# r%   r   )r   r   s   "€r   r   r?   ‚   s   ø€ ÷ 7ñ 7™Vð 7©ñ 7r   c                óX   € \         P                  ! WP                  V P                  4      # r(   )ÚFÚlinearrF   r;   r*   s   &&r   r+   ÚLinear.forward‚   s   € ô �xŠx˜Ÿ{™{¨D¯I©IÓ6Ð6r   c                ó    <€ V ^8„  d   QhRS[ /# ©r   r   ©Ústr)r   r   s   "€r   r   r?   ˆ   s   ø€ ÷ qñ q™Cñ qr   c                óX   € RV P                    RV P                   RV P                  RJ 2# )ú0
Return the extra representation of the module.
zin_features=ú, out_features=ú, bias=N)r7   r8   r;   ©r!   s   &r   Ú
extra_reprÚLinear.extra_reprˆ   s:   € ð ˜d×.Ñ.Ð/¨¸t×?PÑ?PÐ>QÐQXÐY]×YbÑYbÐjnÐYnÐXoÐpÐpr   c                ó>   <€ V ^8„  d   Qh/ S[ ;R&   S[ ;R&   S[;R&   # )r   r7   r8   rF   ©r=   r   )r   r   s   "€r   r   r?   5   s1   ø‡ ‚ ñN ÑñO ñP ÑñQ ñR �NòS r   ©r;   r7   r8   rF   ©TNN©r-   r.   r/   r0   r1   Ú__constants__r    rH   r+   rh   Ú__annotate_func__r2   r3   r4   r5   s   @@r   r   r   5   sI   ù‡ € ñ#ðJ # NÐ3€M÷
 õ  ÷*4ð 4÷7ð 7÷qð q÷g … r   c                   óB   a a€ ] tR t^”t oRV3R lV 3R llltRtVtV ;t# )ÚNonDynamicallyQuantizableLinearc                ó0   <€ V ^8„  d   QhRS[ RS[ RS[RR/# r:   r<   )r   r   s   "€r   r   Ú,NonDynamicallyQuantizableLinear.__annotate__•   s3   ø€ ÷ 

ñ 

áð

ñ ð

ñ ð	

ð 
ñ

r   c                ó,   <€ \         SV `  WW4VR 7       R# ))r;   rB   rC   Nr   )r!   r7   r8   r;   rB   rC   r"   s   &&&&&&€r   r    Ú(NonDynamicallyQuantizableLinear.__init__•   s   ø€ ô 	‰ÑØ¨DÀuð 	ö 	
r   r)   rm   )r-   r.   r/   r0   r    r2   r3   r4   r5   s   @@r   rr   rr   ”   s   ù‡ € ÷

÷ 

õ 

r   rr   c                   ó�   a a€ ] tR t^¢t oRt. ROtRV3R lV 3R llltV3R lR 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   ao  Applies a bilinear transformation to the incoming data: :math:`y = x_1^T A x_2 + b`.

Args:
    in1_features: size of each first input sample, must be > 0
    in2_features: size of each second input sample, must be > 0
    out_features: size of each output sample, must be > 0
    bias: If set to ``False``, the layer will not learn an additive bias.
        Default: ``True``

Shape:
    - Input1: :math:`(*, H_\text{in1})` where :math:`H_\text{in1}=\text{in1\_features}` and
      :math:`*` means any number of additional dimensions including none. All but the last dimension
      of the inputs should be the same.
    - Input2: :math:`(*, H_\text{in2})` where :math:`H_\text{in2}=\text{in2\_features}`.
    - Output: :math:`(*, H_\text{out})` where :math:`H_\text{out}=\text{out\_features}`
      and all but the last dimension are the same shape as the input.

Attributes:
    weight: the learnable weights of the module of shape
        :math:`(\text{out\_features}, \text{in1\_features}, \text{in2\_features})`.
        The values are initialized from :math:`\mathcal{U}(-\sqrt{k}, \sqrt{k})`, where
        :math:`k = \frac{1}{\text{in1\_features}}`
    bias:   the learnable bias of the module of shape :math:`(\text{out\_features})`.
            If :attr:`bias` is ``True``, the values are initialized from
            :math:`\mathcal{U}(-\sqrt{k}, \sqrt{k})`, where
            :math:`k = \frac{1}{\text{in1\_features}}`

Examples::

    >>> m = nn.Bilinear(20, 30, 40)
    >>> input1 = torch.randn(128, 20)
    >>> input2 = torch.randn(128, 30)
    >>> output = m(input1, input2)
    >>> print(output.size())
    torch.Size([128, 40])
c          
      ó6   <€ V ^8„  d   QhRS[ RS[ RS[ RS[RR/# )r   Úin1_featuresÚin2_featuresr8   r;   r   Nr<   )r   r   s   "€r   r   ÚBilinear.__annotate__Î   s=   ø€ ÷  ñ  áð ñ ð ñ ð	 ñ
 ð ð 
ñ r   c                óB  <€ R VRV/p\         SV `  4        Wn        W n        W0n        \        \        P                  ! W1V33/ VB 4      V n        V'       d'   \        \        P                  ! V3/ VB 4      V n	        MV P                  RR4       V P                  4        R# rA   )r   r    ry   rz   r8   r	   rD   rE   rF   r;   rG   rH   )	r!   ry   rz   r8   r;   rB   rC   rI   r"   s	   &&&&&&& €r   r    ÚBilinear.__init__Î   s�   ø€ ð # F¨G°UÐ;ˆÜ‰ÑÔØ(ÔØ(ÔØ(ÔÜÜ�KŠK˜°\ÐBÑUÀnÑUó
ˆŒ÷ Ü!¤%§+¢+¨lÑ"M¸nÑ"MÓNˆD�Ià×#Ñ# F¨DÔ1Ø×ÑÖr   c                ó   <€ V ^8„  d   QhRR/# rL   r)   )r   r   s   "€r   r   r{   æ   rM   r   c                ór  € V P                   ^ 8:  d   \        RV P                    R24      h^\        P                  ! V P                  P                  ^4      4      ,          p\        P                  ! V P                  V) V4       V P                  e&   \        P                  ! V P                  V) V4       R# R# )rO   z0in1_features must be > 0, but got (in1_features=Ú)N)	ry   Ú
ValueErrorrR   rS   rF   Úsizer   rU   r;   )r!   rX   s   & r   rH   ÚBilinear.reset_parametersæ   s’   € ð ×Ñ Ô!ÜØBÀ4×CTÑCTÐBUÐUVÐWóð ð ”D—I’I˜dŸk™k×.Ñ.¨qÓ1Ó2Õ2ˆÜ�Š�d—k‘k E 6¨5Ô1Ø�9‰9Ò Ü�MŠM˜$Ÿ)™) e V¨UÖ3ñ !r   c                ó,   <€ V ^8„  d   QhRS[ RS[ RS[ /# )r   Úinput1Úinput2r   r   )r   r   s   "€r   r   r{   ó   s'   ø€ ÷ Bñ B™fð B©fð B¹ñ Br   c                óZ   € \         P                  ! WV P                  V P                  4      # r(   )r\   ÚbilinearrF   r;   )r!   r…   r†   s   &&&r   r+   ÚBilinear.forwardó   s   € ô �zŠz˜&¨$¯+©+°t·y±yÓAÐAr   c                ó    <€ V ^8„  d   QhRS[ /# r`   ra   )r   r   s   "€r   r   r{   ù   s   ø€ ÷ 
ñ 
™Cñ 
r   c           	     ór   € RV P                    RV P                   RV P                   RV P                  RJ 2# )rd   zin1_features=z, in2_features=re   rf   N)ry   rz   r8   r;   rg   s   &r   rh   ÚBilinear.extra_reprù   sL   € ð
 ˜D×-Ñ-Ð.¨o¸d×>OÑ>OÐ=Pð QØ ×-Ñ-Ð.¨g°d·i±iÀtÐ6KÐ5LðNð	
r   c                óJ   <€ V ^8„  d   Qh/ S[ ;R&   S[ ;R&   S[ ;R&   S[;R&   # )r   ry   rz   r8   rF   rk   )r   r   s   "€r   r   r{   ¢   s@   ø‡ ‚ ñN ÑñO ñP ÑñQ ñR ÑñS ñT �NòU r   )r;   ry   rz   r8   rF   )ry   rz   r8   rm   rn   r5   s   @@r   r   r   ¢   sE   ù‡ € ñ#òJ E€M÷ õ  ÷04ð 4÷Bð B÷
ð 
÷o … r   c                   ó€   a a€ ] tR tRt oRt]tRV3R lV 3R llltV3R lV 3R lltV3R lR lt	V3R	 lt
R
tVtV ;t# )r   i  a¾  A :class:`torch.nn.Linear` module where `in_features` is inferred.

In this module, the `weight` and `bias` are of :class:`torch.nn.UninitializedParameter`
class. They will be initialized after the first call to ``forward`` is done and the
module will become a regular :class:`torch.nn.Linear` module. The ``in_features`` argument
of the :class:`Linear` is inferred from the ``input.shape[-1]``.

Check the :class:`torch.nn.modules.lazy.LazyModuleMixin` for further documentation
on lazy modules and their limitations.

Args:
    out_features: size of each output sample
    bias: If set to ``False``, the layer will not learn an additive bias.
        Default: ``True``

Attributes:
    weight: the learnable weights of the module of shape
        :math:`(\text{out\_features}, \text{in\_features})`. The values are
        initialized from :math:`\mathcal{U}(-\sqrt{k}, \sqrt{k})`, where
        :math:`k = \frac{1}{\text{in\_features}}`
    bias:   the learnable bias of the module of shape :math:`(\text{out\_features})`.
            If :attr:`bias` is ``True``, the values are initialized from
            :math:`\mathcal{U}(-\sqrt{k}, \sqrt{k})` where
            :math:`k = \frac{1}{\text{in\_features}}`


c                ó*   <€ V ^8„  d   QhRS[ RS[RR/# )r   r8   r;   r   Nr<   )r   r   s   "€r   r   ÚLazyLinear.__annotate__%  s*   ø€ ÷ Añ AÙðAÙ'+ðAà	ñAr   c                ó–   <€ R VRV/p\         SV `  ^ ^ R4       \        R/ VB V n        Wn        V'       d   \        R/ VB V n        R# R# )rB   rC   FNr)   )r   r    r
   rF   r8   r;   )r!   r8   r;   rB   rC   rI   r"   s   &&&&& €r   r    ÚLazyLinear.__init__%  sR   ø€ ð # F¨G°UÐ;ˆô 	‰Ñ˜˜A˜uÔ%ä,Ñ>¨~Ñ>ˆŒØ(Ôßä.Ñ@°Ñ@ˆDŽIñ r   c                ó   <€ V ^8„  d   QhRR/# rL   r)   )r   r   s   "€r   r   r�   4  s   ø€ ÷ 'ñ ' $ñ 'r   c                óz   <€ V P                  4       '       g$   V P                  ^ 8w  d   \        SV `  4        R# R# R# )rO   N)Úhas_uninitialized_paramsr7   r   rH   )r!   r"   s   &€r   rH   ÚLazyLinear.reset_parameters4  s5   ø€ ð
 ×,Ñ,×.Ò.°4×3CÑ3CÀqÔ3HÜ‰GÑ$Ö&ñ 4IÑ.r   c                ó   <€ V ^8„  d   QhRR/# rL   r)   )r   r   s   "€r   r   r�   <  s   ø€ ÷ /ñ /¨dñ /r   c                óô  € V P                  4       '       d´   \        P                  ! 4       ;_uu_ 4        VP                  R,          V n        V P
                  P                  V P                  V P                  34       V P                  e'   V P                  P                  V P                  34       V P                  4        RRR4       V P                  ^ 8X  d‹   VP                  R,          V P
                  P                  R,          8w  d>   \        RVP                  R,           RV P
                  P                  R,           24      hVP                  R,          V n        R# R#   + '       g   i     L­; i)zG
Infers ``in_features`` based on ``input`` and initializes parameters.
Nz%The in_features inferred from input: z/ is not equal to in_features from self.weight: éÿÿÿÿ)r•   rD   Úno_gradÚshaper7   rF   Úmaterializer8   r;   rH   ÚAssertionErrorr*   s   &&r   Úinitialize_parametersÚ LazyLinear.initialize_parameters<  s  € ð
 ×(Ñ(×*Ò*Ü—’—•Ø#(§;¡;¨r¥?�Ô Ø—‘×'Ñ'¨×):Ñ):¸D×<LÑ<LÐ(MÔNØ—9‘9Ò(Ø—I‘I×)Ñ)¨4×+<Ñ+<Ð*>Ô?Ø×%Ñ%Ô'÷ !ð ×Ñ˜qÔ Ø�{‰{˜2� $§+¡+×"3Ñ"3°BÕ"7Ô7Ü$Ø;¸E¿K¹KÈ½OÐ;Lð MEà—{‘{×(Ñ(¨Õ,Ð-ð/óð ð
  %Ÿ{™{¨2�ˆDÖñ !÷ !—ús   ´BE'Å'E7	c                ó2   <€ V ^8„  d   Qh/ S[ ;R&   S[ ;R&   # )r   rF   r;   )r
   )r   r   s   "€r   r   r�     s!   ø‡ ‚ ñ> #Ñ"ñ? ñ@ !Ñ òA r   rl   rm   )r-   r.   r/   r0   r1   r   Úcls_to_becomer    rH   rž   rp   r2   r3   r4   r5   s   @@r   r   r     s9   ù‡ € ñð8 €M÷
Aõ A÷'ó '÷/ð /÷s … r   )r   r   r   r   )rR   Útypingr   rD   r   Útorch.nnr   r\   r   Útorch.nn.parameterr	   r
   Úlazyr   Úmoduler   Ú__all__r   r   rr   r   r   r)   r   r   Ú<module>r¨      sl   ðã Ý ã Ý ß *ß @å !Ý ò€ôˆvô ô>WqˆVô Wqô~
 fô 
ô^
ˆvô ^
ôBL/� &ö L/r   