+
    œ°³jŒ  ã                   óH  € R t ^ RIt^ RIHt ^ RIt^ RIHt ^ RIHt ^RIH	t
 ^RIHt ^RIHtHtHt ^RIHt ^R	IHtHt ^R
IHt ^RIHtHtHt ^RIHt ^RIHt ^RI H!t!H"t"H#t# ^RI$H%t% ^RI&H't' ]"PP                  ! ])4      t* ! R R]PV                  4      t, ! R R]PV                  4      t- ! R R]PV                  4      t. ! R R]4      t/]! ! R R]4      4       t0]! ! R R]04      4       t1]!! RR7       ! R R ]0]4      4       t2]!! R!R7       ! R" R#]04      4       t3. R$Ot4R# )%zPyTorch OpenAI ImageGPT model.N)ÚAny)Únn)ÚCrossEntropyLoss)Úinitialization)ÚACT2FN)ÚCacheÚDynamicCacheÚEncoderDecoderCache)ÚGenerationMixin)Úcreate_bidirectional_maskÚcreate_causal_mask)ÚGradientCheckpointingLayer)Ú)BaseModelOutputWithPastAndCrossAttentionsÚ!CausalLMOutputWithCrossAttentionsÚ SequenceClassifierOutputWithPast)ÚPreTrainedModel)ÚConv1D)Úauto_docstringÚloggingÚtorch_float)Úmaybe_autocast©ÚImageGPTConfigc                   óT   a a€ ] tR t^0t oRV3R lV 3R llltV3R lR ltRtVtV ;t# )ÚImageGPTLayerNormc                ó6   <€ V ^8„  d   QhRS[ S[,          RS[/# )é   Úhidden_sizeÚeps)ÚtupleÚintÚfloat)ÚformatÚ__classdict__s   "€Úo/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/models/imagegpt/modeling_imagegpt.pyÚ__annotate__ÚImageGPTLayerNorm.__annotate__1   s   ø€ ÷ >ñ >¡E©#¥Jð >±Uñ >ó    c                óŽ   <€ \         SV `  4        W n        \        P                  ! \
        P                  ! V4      4      V n        R # ©N)ÚsuperÚ__init__r   r   Ú	ParameterÚtorchÚTensorÚweight)Úselfr   r   Ú	__class__s   &&&€r$   r+   ÚImageGPTLayerNorm.__init__1   s,   ø€ Ü‰ÑÔØŒÜ—l’l¤5§<¢<°Ó#<Ó=ˆŽr'   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# )r   ÚtensorÚreturn©r-   r.   )r"   r#   s   "€r$   r%   r&   6   s#   ø€ ÷ ñ ™eŸl™lð ©u¯|©|ñ r'   c           	     óÜ   € V\         P                  ! \         P                  ! \         P                  ! V4      RRR7      V P                  ,           4      ,          pWP
                  ,          pV# )é   T)ÚaxisÚkeepdiméÿÿÿÿ)r-   ÚsqrtÚmeanÚsquarer   r/   )r0   r4   s   &&r$   ÚforwardÚImageGPTLayerNorm.forward6   sI   € àœ%Ÿ*š*¤U§Z¢Z´·²¸VÓ0DÈ2ÐW[Ô%\Ð_c×_gÑ_gÕ%gÓhÕhˆØŸ+™+Õ%ˆØˆr'   )r   r/   )gñhãˆµøä>©	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r+   r?   Ú__static_attributes__Ú__classdictcell__Ú__classcell__©r1   r#   s   @@r$   r   r   0   s   ù‡ € ÷>õ >÷
÷ ð r'   r   c                   óx   a a€ ] tR t^=t oR
V3R lV 3R llltRR ltRR ltR tR tRV3R lR llt	R	t
VtV ;t# )ÚImageGPTAttentionc                óB   <€ V ^8„  d   QhRS[ R,          RS[R,          /# )r   Úis_cross_attentionNÚ	layer_idx)Úboolr    )r"   r#   s   "€r$   r%   ÚImageGPTAttention.__annotate__>   s&   ø€ ÷ %<ñ %<±4¸$µ;ð %<ÑSVÐY]ÕS]ñ %<r'   c           	     óà  <€ \         SV `  4        Wn        VP                  p\        P
                  ! \        P                  ! \        P                  ! WD3\        P                  R 7      4      P                  ^^WD4      RR7      V n        VP                  V n        VP                  V n        V P                  V P                  ,          V n        V P                  V n        V P                   V P                  ,          V P                  8w  d'   \%        RV P                   RV P                   R24      hVP&                  V n        W n        VP*                  V n        W0n        VP.                  V n        V P(                  '       dS   \1        ^V P                  ,          V P                  4      V n        \1        V P                  V P                  4      V n        M,\1        ^V P                  ,          V P                  4      V n        \1        V P                  V P                  4      V n        \        P8                  ! VP:                  4      V n        \        P8                  ! VP>                  4      V n         R# )©ÚdtypeF)Ú
persistentz=`embed_dim` must be divisible by num_heads (got `embed_dim`: z and `num_heads`: z).N)!r*   r+   ÚconfigÚmax_position_embeddingsr   ÚBufferr-   ÚtrilÚonesrO   ÚviewÚbiasr   Ú	embed_dimÚnum_attention_headsÚ	num_headsÚhead_dimÚ
split_sizeÚ
ValueErrorÚscale_attn_weightsrM   Úscale_attn_by_inverse_layer_idxrN   Úreorder_and_upcast_attnr   Úc_attnÚq_attnÚc_projÚDropoutÚ
attn_pdropÚattn_dropoutÚresid_pdropÚresid_dropout)r0   rU   rM   rN   Úmax_positionsr1   s   &&&& €r$   r+   ÚImageGPTAttention.__init__>   s¿  ø€ Ü‰ÑÔØŒØ×6Ñ6ˆÜ—I’IÜ�JŠJ”u—z’z =Ð"@ÌÏ
É
ÔSÓT×YÑYØ�1�móð ô	
ˆŒ	ð  ×+Ñ+ˆŒØ×3Ñ3ˆŒØŸ™¨$¯.©.Õ8ˆŒØŸ.™.ˆŒØ�=‰=˜4Ÿ>™>Õ)¨T¯^©^Ô;ÜØOÐPT×P^ÑP^ÐO_ð `Ø—N‘NÐ# 2ð'óð ð
 #)×";Ñ";ˆÔØ"4Ôð 06×/UÑ/UˆÔ,Ø"ŒØ'-×'EÑ'EˆÔ$à×"×"Ð"Ü   T§^¡^Õ!3°T·^±^ÓDˆDŒKÜ  §¡°·±Ó@ˆD�Kä   T§^¡^Õ!3°T·^±^ÓDˆDŒKÜ˜TŸ^™^¨T¯^©^Ó<ˆŒäŸJšJ v×'8Ñ'8Ó9ˆÔÜŸZšZ¨×(:Ñ(:Ó;ˆÖr'   c                óŠ  € \         P                  ! WP                  RR4      4      pV P                  '       d)   V\	        VP                  R4      R,          4      ,          pV P                  '       d$   V\        V P                  ^,           4      ,          pV P                  '       g°   VP                  R4      VP                  R4      rvV P                  RRWv,
          V1RV13,          p\         P                  ! VP                  4      P                  p	\         P                  ! W•P                  VP                  R7      p	\         P                   ! W…V	4      pVe	   WT,           p\"        P$                  ! RR7      ! V4      pVP'                  VP                  4      pV P)                  V4      p\         P                  ! WS4      p
W¥3# )r8   ç      à?ºNNNN©rS   Údevice©Údimr;   éþÿÿÿ)r-   ÚmatmulÚ	transposerb   r   Úsizerc   r!   rN   rM   r[   ÚfinforS   Úminr4   rs   Úwherer   ÚSoftmaxÚtyperj   )r0   ÚqueryÚkeyÚvalueÚattention_maskÚattn_weightsÚquery_lengthÚ
key_lengthÚcausal_maskÚ
mask_valueÚattn_outputs   &&&&&      r$   Ú_attnÚImageGPTAttention._attne   sY  € Ü—|’| E¯=©=¸¸RÓ+@ÓAˆà×"×"Ð"Ø'¬+°e·j±jÀ³nÈÕ6KÓ*LÕLˆLð ×/×/Ð/Ø'¬%°·±ÀÕ0BÓ*CÕCˆLà×&×&Ð&à',§z¡z°"£~°s·x±xÀ³|˜*ØŸ)™) A q¨*Õ*CÀjÐ*PÐR]ÐS]ÐR]Ð$]Õ^ˆKÜŸš \×%7Ñ%7Ó8×<Ñ<ˆJô Ÿš j×8JÑ8JÐS_×SfÑSfÔgˆJÜ Ÿ;š; {À*ÓMˆLàÒ%à'Õ8ˆLä—z’z bÕ)¨,Ó7ˆð $×(Ñ(¨¯©Ó5ˆØ×(Ñ(¨Ó6ˆä—l’l <Ó7ˆàÐ(Ð(r'   c           
     óà  € VP                  4       w  rVrxVP                  4       w   ršp	\        P                  ! WV,          Wz\        P                  VP                  R 7      pRpV P
                  '       d)   V\        VP                  R
4      4      R,          ,          pV P                  '       d$   V\        V P                  ^,           4      ,          p\        VP                  P                  RR7      ;_uu_ 4        VP                  R
Wx4      VP                  R
R4      P                  R
WŠ4      rí\        P                  ! W½P                  4       VP                  4       ^ VR7      pVP                  WVWz4      pRRR4       V P                  '       g´   VP                  R4      VP                  R4      ppV P                  RRVV,
          V1RV13,          p\        P                   ! VP"                  4      P$                  p\        P&                  ! VVP"                  VP                  R 7      p\        P(                  ! VVV4      pVe	   W´,           p\*        P,                  ! R
R7      ! V4      pVP"                  \        P                  8w  d   \/        R	4      hVP                  VP"                  4      pV P1                  V4      p\        P2                  ! W³4      pVV3#   + '       g   i     ELo; i)rr   g      ð?rp   F)Úenabled)ÚbetaÚalphaNrq   rt   zDError with upcasting, attn_weights does not have dtype torch.float32r;   rv   )ry   r-   ÚemptyÚfloat32rs   rb   r!   rc   rN   r   r~   Úreshaperx   ÚbaddbmmrM   r[   rz   rS   r{   r4   r|   r   r}   ÚRuntimeErrorrj   rw   )r0   r   r€   r�   r‚   Úbszr^   Ú	q_seq_lenÚdkÚ_Ú	k_seq_lenrƒ   Úscale_factorÚqÚkr„   r…   r†   r‡   rˆ   s   &&&&&               r$   Ú_upcast_and_reordered_attnÚ,ImageGPTAttention._upcast_and_reordered_attn‡   sA  € à(-¯
©
«Ñ%ˆ˜	Ø ŸX™X›ZÑˆˆ1˜ô —{’{ 3¥?°IÔPU×P]ÑP]Ðfk×frÑfrÔsˆð ˆØ×"×"Ð"ØœE %§*¡*¨R£.Ó1°SÕ8Õ8ˆLà×/×/Ð/ØœE $§.¡.°1Õ"4Ó5Õ5ˆLô ˜EŸL™L×-Ñ-°u×=Ö=Ø—=‘=  YÓ3°S·]±]À2ÀrÓ5J×5RÑ5RÐSUÐWYÓ5eˆqÜ Ÿ=š=¨·w±w³yÀ!Ç'Á'Ã)ÐRSÐ[gÔhˆLØ'×/Ñ/°À	ÓUˆL÷ >ð
 ×&×&Ð&à',§z¡z°"£~°s·x±xÀ³|˜*ˆLØŸ)™) A q¨*°|Õ*CÀjÐ*PÐR]ÐS]ÐR]Ð$]Õ^ˆKÜŸš \×%7Ñ%7Ó8×<Ñ<ˆJô Ÿš j¸×8JÑ8JÐS_×SfÑSfÔgˆJÜ Ÿ;š; {°LÀ*ÓMˆLàÒ%à'Õ8ˆLä—z’z bÕ)¨,Ó7ˆð ×Ñ¤§¡Ô.ÜÐeÓfÐfØ#×(Ñ(¨¯©Ó5ˆØ×(Ñ(¨Ó6ˆä—l’l <Ó7ˆà˜LÐ(Ð(÷; >×=Ð=ús   Ã:A<KËK-	c                ó€   € VP                  4       RR W#3,           pVP                  ! V!  pVP                  ^ ^^^4      # )z:
Splits hidden_size dim into attn_head_size and num_heads
Nr;   )ry   rZ   Úpermute©r0   r4   r^   Úattn_head_sizeÚ	new_shapes   &&&& r$   Ú_split_headsÚImageGPTAttention._split_heads·   sA   € ð —K‘K“M # 2Ð&¨)Ð)DÕDˆ	Ø—’˜iÑ(ˆØ�~‰~˜a  A qÓ)Ð)r'   c                óª   € VP                  ^ ^^^4      P                  4       pVP                  4       RR W#,          3,           pVP                  V4      # )zC
Merges attn_head_size dim and num_attn_heads dim into hidden_size
Nrv   )rŸ   Ú
contiguousry   rZ   r    s   &&&& r$   Ú_merge_headsÚImageGPTAttention._merge_heads¿   sM   € ð —‘  1 a¨Ó+×6Ñ6Ó8ˆØ—K‘K“M # 2Ð&¨)Õ*DÐ)FÕFˆ	Ø�{‰{˜9Ó%Ð%r'   c                óî   <€ V ^8„  d   QhRS[ P                  RS[R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[R,          RS[R,          R	S[/# ©
r   Úhidden_statesÚ
layer_pastNr‚   Úencoder_hidden_statesÚencoder_attention_maskÚ	use_cacheÚoutput_attentionsr5   ©r-   r.   r   rO   r   )r"   r#   s   "€r$   r%   rP   Ç   s�   ø€ ÷ B)ñ B)á—|‘|ðB)ñ ˜D•LðB)ñ Ÿ™ tÕ+ð	B)ñ
  %Ÿ|™|¨dÕ2ðB)ñ !&§¡¨tÕ 3ðB)ñ ˜$•;ðB)ñ   $�;ðB)ñ 
ñB)r'   c                óâ  € VR Jp	VP                   w  r«pVe`   \        V\        4      '       dH   VP                  P	                  V P
                  4      pV	'       d   VP                  pMVP                  pMTpV	'       d   TMTpV	'       Ed<   \        V R4      '       g   \        R4      hVej   X'       db   V P                  V4      pXP                  V P
                  ,          P                  pVP                  V P
                  ,          P                  pEMQV P                  V4      pV P                  V4      P                  V P                   ^R7      w  ppVP#                  V
RV P$                  V P&                  4      P)                  ^^4      pVP#                  V
RV P$                  V P&                  4      P)                  ^^4      pM V P                  V4      P                  V P                   ^R7      w  pppVP#                  V
RV P$                  V P&                  4      P)                  ^^4      pVP#                  V
RV P$                  V P&                  4      P)                  ^^4      pVeB   XP+                  VVV P
                  4      w  ppV	'       d   RVP                  V P
                  &   VP#                  W«V P$                  V P&                  4      P)                  ^^4      pV P,                  '       d   V P/                  VVVV4      w  ppMV P1                  VVVV4      w  ppV P3                  VV P$                  V P&                  4      pV P5                  V4      pV P7                  V4      pVV3# )Nrf   z«If class is used as cross attention, the weights `q_attn` have to be defined. Please make sure to instantiate class with `ImageGPTAttention(..., is_cross_attention=True)`.rt   Tr;   )ÚshapeÚ
isinstancer	   Ú
is_updatedÚgetrN   Úcross_attention_cacheÚself_attention_cacheÚhasattrra   rf   ÚlayersÚkeysÚvaluesre   Úsplitr`   rZ   r^   r_   rx   Úupdaterd   rœ   r‰   r§   rg   rl   )r0   r«   r¬   r‚   r­   r®   r¯   r°   ÚkwargsrM   r”   Úseq_lenr—   rµ   Úcurr_past_key_valuesÚcurrent_statesr   r€   r�   rˆ   rƒ   s   &&&&&&&&,            r$   r?   ÚImageGPTAttention.forwardÇ   sÜ  € ð 3¸$Ð>ÐØ'×-Ñ-‰ˆ�aàÒ!Ü˜*Ô&9×:Ò:Ø'×2Ñ2×6Ñ6°t·~±~ÓF�
ß%à+5×+KÑ+KÑ(à+5×+JÑ+JÑ(à'1Ð$ç2DÑ.È-ˆßÐÜ˜4 ×*Ò*Ü ðtóð ð
 Ò%¯*àŸ™ MÓ2�Ø*×1Ñ1°$·.±.ÕA×FÑF�Ø,×3Ñ3°D·N±NÕC×JÑJ’àŸ™ MÓ2�Ø!Ÿ[™[¨Ó8×>Ñ>¸t¿¹ÐTUÐ>ÓV‘
��UØ—h‘h˜s B¨¯©¸¿¹ÓF×PÑPÐQRÐTUÓV�ØŸ
™
 3¨¨D¯N©N¸D¿M¹MÓJ×TÑTÐUVÐXYÓZ‘à $§¡¨NÓ ;× AÑ AÀ$Ç/Á/ÐWXÐ AÓ YÑˆE�3˜Ø—(‘(˜3  D§N¡N°D·M±MÓB×LÑLÈQÐPQÓRˆCØ—J‘J˜s B¨¯©¸¿¹ÓF×PÑPÐQRÐTUÓVˆEàÒ!à-×4Ñ4°S¸%ÀÇÁÓP‰JˆC�ç!Ø8<�
×%Ñ% d§n¡nÑ5à—
‘
˜3¨¯©¸¿¹ÓG×QÑQÐRSÐUVÓWˆà×'×'Ð'Ø(,×(GÑ(GÈÈsÐTYÐ[iÓ(jÑ%ˆK™à(,¯
©
°5¸#¸uÀnÓ(UÑ%ˆK˜à×'Ñ'¨°T·^±^ÀTÇ]Á]ÓSˆØ—k‘k +Ó.ˆØ×(Ñ(¨Ó5ˆà˜LÐ(Ð(r'   )rj   r[   re   rg   rU   r\   r_   rM   rN   r^   rf   rd   rl   rc   rb   r`   )FNr)   ©NNNNFF)rB   rC   rD   rE   r+   r‰   rœ   r£   r§   r?   rF   rG   rH   rI   s   @@r$   rK   rK   =   s8   ù‡ € ÷%<õ %<ôN )ôD.)ò`*ò&÷B)÷ B)ò B)r'   rK   c                   óD   a a€ ] tR tRt oV 3R ltV3R lR ltRtVtV ;t# )ÚImageGPTMLPi  c                óþ   <€ \         SV `  4        VP                  p\        W4      V n        \        W14      V n        \        VP                  ,          V n        \        P                  ! VP                  4      V n        R # r)   )r*   r+   r   r   Úc_fcrg   r   Úactivation_functionÚactr   rh   rk   Údropout)r0   Úintermediate_sizerU   r\   r1   s   &&& €r$   r+   ÚImageGPTMLP.__init__  sZ   ø€ Ü‰ÑÔØ×&Ñ&ˆ	ÜÐ,Ó8ˆŒ	Ü˜YÓ:ˆŒÜ˜&×4Ñ4Õ5ˆŒÜ—z’z &×"4Ñ"4Ó5ˆŽr'   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# )r   r«   r5   r6   )r"   r#   s   "€r$   r%   ÚImageGPTMLP.__annotate__  s#   ø€ ÷ ñ ¡U§\¡\ð ±e·l±lñ r'   c                óŽ   € V P                  V4      pV P                  V4      pV P                  V4      pV P                  V4      pV# r)   )rÈ   rÊ   rg   rË   )r0   r«   s   &&r$   r?   ÚImageGPTMLP.forward  s@   € ØŸ	™	 -Ó0ˆØŸ™ Ó/ˆØŸ™ MÓ2ˆØŸ™ ]Ó3ˆØÐr'   )rÊ   rÈ   rg   rË   rA   rI   s   @@r$   rÆ   rÆ     s   ù‡ € õ6÷÷ ð r'   rÆ   c                   óL   a a€ ] tR tRt oRV 3R lltRV3R lR lltRtVtV ;t# )ÚImageGPTBlocki  c                ó°  <€ \         SV `  4        VP                  pVP                  e   VP                  M^V,          p\	        W1P
                  R7      V n        \        WR7      V n        \	        W1P
                  R7      V n	        VP                  '       d/   \        VRVR7      V n        \	        W1P
                  R7      V n        \        WA4      V n        R # )N©r   ©rN   T)rM   rN   )r*   r+   r   Ún_innerr   Úlayer_norm_epsilonÚln_1rK   ÚattnÚln_2Úadd_cross_attentionÚcrossattentionÚln_cross_attnrÆ   Úmlp)r0   rU   rN   r   Ú	inner_dimr1   s   &&&  €r$   r+   ÚImageGPTBlock.__init__  sž   ø€ Ü‰ÑÔØ×(Ñ(ˆØ&,§n¡nÒ&@�F—N’NÀaÈ+Åoˆ	ä% k×7PÑ7PÔQˆŒ	Ü% fÔBˆŒ	Ü% k×7PÑ7PÔQˆŒ	à×%×%Ð%Ü"3°FÈtÐ_hÔ"iˆDÔÜ!2°;×D]ÑD]Ô!^ˆDÔä˜yÓ1ˆŽr'   c                óî   <€ V ^8„  d   QhRS[ P                  RS[R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[R,          RS[R,          R	S[/# rª   r±   )r"   r#   s   "€r$   r%   ÚImageGPTBlock.__annotate__-  s†   ø€ ÷ 5*ñ 5*á—|‘|ð5*ñ ˜D•Lð5*ñ Ÿ™ tÕ+ð	5*ñ
  %Ÿ|™|¨dÕ2ð5*ñ !&§¡¨tÕ 3ð5*ñ ˜$•;ð5*ñ   $�;ð5*ñ 
ñ5*r'   c           	     óÒ  € Tp	V P                  V4      pV P                  VVVVVR 7      p
V
^ ,          pV
R,          pW¹,           pVel   \        V R4      '       g   \        RV  R24      hTp	V P	                  V4      pV P                  VVVVVVR7      pV^ ,          pW›,           pWÍR,          ,           pTp	V P                  V4      pV P                  V4      pWž,           pV3V,           # ))r¬   r‚   r¯   r°   ºr8   NNrÝ   z'If `encoder_hidden_states` are passed, z` has to be instantiated with cross-attention layers by setting `config.add_cross_attention=True`)r¬   r‚   r­   r®   r°   )rÙ   rÚ   r¹   ra   rÞ   rÝ   rÛ   rß   )r0   r«   r¬   r‚   r­   r®   r¯   r°   r¿   ÚresidualÚattn_outputsrˆ   ÚoutputsÚcross_attn_outputsÚfeed_forward_hidden_statess   &&&&&&&&,      r$   r?   ÚImageGPTBlock.forward-  s#  € ð !ˆØŸ	™	 -Ó0ˆØ—y‘yØØ!Ø)ØØ/ð !ó 
ˆð # 1•oˆØ˜rÕ"ˆà#Õ.ˆà Ò,ä˜4Ð!1×2Ò2Ü Ø=¸d¸Vð DZð Zóð ð %ˆHØ ×.Ñ.¨}Ó=ˆMØ!%×!4Ñ!4ØØ%Ø-Ø&;Ø'=Ø"3ð "5ó "Ðð -¨QÕ/ˆKà$Õ2ˆMØ°2Õ 6Õ6ˆGà ˆØŸ	™	 -Ó0ˆØ%)§X¡X¨mÓ%<Ð"à Õ=ˆàÐ 'Õ)Ð)r'   )rÚ   rÝ   rÙ   rÛ   rÞ   rß   r)   rÄ   rA   rI   s   @@r$   rÓ   rÓ     s   ù‡ € ÷2÷5*÷ 5*ò 5*r'   rÓ   c                   ó|   a a€ ] tR tRt oRtRtR	tRtR.t]	P                  ! 4       V 3R l4       tV3R ltRtVtV ;t# )
ÚImageGPTPreTrainedModelie  ÚtransformerÚ	input_idsTrÓ   c           
     ó¤  <€ \         SV `  V4       \        V\        4      '       d‘   VP	                  4        Fz  w  r#RV9   g   K  RV9   g   K  \
        P                  ! VRV P                  P                  \        P                  ! ^V P                  P                  ,          4      ,          R7       K|  	  R# \        V\        4      '       d„   VP                  P                  p\
        P                  ! VP                  \         P"                  ! \         P$                  ! WD3\         P&                  R7      4      P)                  ^^WD4      4       R# R# )zInitialize the weights.rg   r/   g        )r=   ÚstdrR   N)r*   Ú_init_weightsr´   r   Únamed_parametersÚinitÚnormal_rU   Úinitializer_rangeÚmathr<   Ún_layerrK   rV   Úcopy_r[   r-   rX   rY   rO   rZ   )r0   ÚmoduleÚnameÚprm   r1   s   &&   €r$   rò   Ú%ImageGPTPreTrainedModel._init_weightsn  sê   ø€ ô 	‰Ñ˜fÔ%ô �fœo×.Ò.Ø!×2Ñ2Ö4‘�Ø˜tÖ#¨°DÖ(8ä—L’L ¨°$·+±+×2OÑ2OÔRV×R[ÒR[Ð\]Ð`d×`kÑ`k×`sÑ`sÕ\sÓRtÕ2t×uó 5ô ˜Ô 1×2Ò2Ø"ŸM™M×AÑAˆMÜ�JŠJØ—‘Ü—
’
œ5Ÿ:š: }Ð&DÌEÏJÉJÔWÓX×]Ñ]Ø�q˜-óöñ 3r'   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # ©r   rU   r   )r"   r#   s   "€r$   r%   Ú$ImageGPTPreTrainedModel.__annotate__e  s   ø‡ ‚ áÑò r'   © )Úimage)rB   rC   rD   rE   Úbase_model_prefixÚmain_input_nameÚinput_modalitiesÚsupports_gradient_checkpointingÚ_no_split_modulesr-   Úno_gradrò   Ú__annotate_func__rF   rG   rH   rI   s   @@r$   rí   rí   e  sF   ù‡ € ð &ÐØ!€OØ!ÐØ&*Ð#Ø(Ð)Ðà
‡]‚]ƒ_ôó ð÷ … r'   rí   c                   ój   a a€ ] tR tRt oV3R lV 3R lltR tR t]R	V3R lR ll4       tRt	Vt
V ;t# )
ÚImageGPTModeliˆ  c                ó    <€ V ^8„  d   QhRS[ /# rÿ   r   )r"   r#   s   "€r$   r%   ÚImageGPTModel.__annotate__Š  s   ø€ ÷ ñ ™~ñ r'   c           
     óf  <€ \         SV `  V4       VP                  V n        \        P
                  ! VP                  V P                  4      V n        \        P
                  ! VP                  V P                  4      V n	        \        P                  ! VP                  4      V n        \        P                  ! \        VP                  4       Uu. uF  p\!        WR 7      NK  	  up4      V n        \%        V P                  VP&                  R7      V n        RV n        V P-                  4        R# u upi )rÖ   rÕ   FN)r*   r+   r   r\   r   Ú	EmbeddingÚ
vocab_sizeÚwterV   Úwperh   Ú
embd_pdropÚdropÚ
ModuleListÚrangeÚnum_hidden_layersrÓ   Úhr   rØ   Úln_fÚgradient_checkpointingÚ	post_init)r0   rU   Úir1   s   && €r$   r+   ÚImageGPTModel.__init__Š  sÍ   ø€ Ü‰Ñ˜Ô à×+Ñ+ˆŒä—<’< × 1Ñ 1°4·>±>ÓBˆŒÜ—<’< × >Ñ >ÀÇÁÓOˆŒä—J’J˜v×0Ñ0Ó1ˆŒ	Ü—’ÌEÐRX×RjÑRjÔLkÓlÑLkÀq¤¨f× BÑLkÑlÓmˆŒÜ% d§n¡n¸&×:SÑ:SÔTˆŒ	à&+ˆÔ#à�‰Öùò  ms   ÃD.c                ó   € V P                   # r)   ©r  )r0   s   &r$   Úget_input_embeddingsÚ"ImageGPTModel.get_input_embeddingsš  s   € Ø�x‰xˆr'   c                ó   € Wn         R # r)   r  )r0   Únew_embeddingss   &&r$   Úset_input_embeddingsÚ"ImageGPTModel.set_input_embeddings�  s   € Ø!Žr'   c                ó²  <€ V ^8„  d   QhRS[ P                  R,          RS[R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          R	S[ P                  R,          R
S[R,          RS[R,          RS[R,          RS[R,          RS[RS[S[,          /# )r   rï   NÚpast_key_valuesr‚   Útoken_type_idsÚposition_idsÚinputs_embedsr­   r®   r¯   r°   Úoutput_hidden_statesÚreturn_dictr¿   r5   )r-   r.   r   rO   r   r   r   )r"   r#   s   "€r$   r%   r  ¡  s   ø€ ÷ g
ñ g
á—<‘< $Õ&ðg
ñ  �ðg
ñ Ÿ™ tÕ+ð	g
ñ
 Ÿ™ tÕ+ðg
ñ —l‘l TÕ)ðg
ñ —|‘| dÕ*ðg
ñ  %Ÿ|™|¨dÕ2ðg
ñ !&§¡¨tÕ 3ðg
ñ ˜$•;ðg
ñ   $�;ðg
ñ # T�kðg
ñ ˜D•[ðg
ñ ðg
ñ 
Ñ:Õ	:ñg
r'   c                óÂ  € V
e   T
MV P                   P                  p
Ve   TMV P                   P                  pV	e   T	MV P                   P                  p	Ve   TMV P                   P                  pVe   Ve   \        R4      hVeO   V P                  W4       VP                  4       pVP                  RVR,          4      pVP                  ^ ,          pM6Ve(   VP                  4       RR pVP                  ^ ,          pM\        R4      hVe   VP                  MVP                  pV P                  '       d2   V P                  '       d    V	'       d   \        P                  R4       Rp	Ve   VP                  RVR,          4      pV	'       d   Vf   \        V P                   R7      pVfN   Ve   VP!                  4       M^ p\"        P$                  ! VR,          VR7      V,           pVP'                  ^ 4      pVe   VP                  VR4      pVf   V P)                  V4      pV P+                  V4      pVVP-                  VP                  4      ,           p\/        V P                   RR4      '       d   \1        V P                   VVVR	7      pM\3        V P                   VVR
7      pVe   \3        V P                   VVVR7      pVe   V P)                  V4      pVV,           pV P5                  V4      pVVP                  R4      3,           pV
'       d   RMRpV
'       d   V P                   P6                  '       d   RMRpV'       d   RMRp\9        V P:                  4       Fz  w  ppV'       d   VV3,           pV! VVVVVV	V
R7      pV^ ,          pV
'       g   K:  VV^,          3,           pV P                   P6                  '       g   Ki  VV^,          3,           pK|  	  V P=                  V4      pVP                  ! V!  pV'       d   VV3,           pV'       g7   \>        ;QJ d    . R VVVVV3 4       F  NK  	  5# ! R VVVVV3 4       4      # \A        VVVVVR7      # )a‹  
input_ids (`torch.LongTensor` of shape `(batch_size, input_ids_length)`):
    `input_ids_length` = `sequence_length` if `past_key_values` is `None` else
    `past_key_values.get_seq_length()` (`sequence_length` of input past key value states). Indices of input
    sequence tokens in the vocabulary.

    If `past_key_values` is used, only `input_ids` that do not have their past calculated should be passed as
    `input_ids`.

    Indices can be obtained using [`AutoImageProcessor`]. See [`ImageGPTImageProcessor.__call__`] for details.

Examples:

```python
>>> from transformers import AutoImageProcessor, ImageGPTModel
>>> from PIL import Image
>>> import httpx
>>> from io import BytesIO

>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> with httpx.stream("GET", url) as response:
...     image = Image.open(BytesIO(response.read()))

>>> image_processor = AutoImageProcessor.from_pretrained("openai/imagegpt-small")
>>> model = ImageGPTModel.from_pretrained("openai/imagegpt-small")

>>> inputs = image_processor(images=image, return_tensors="pt")
>>> outputs = model(**inputs)
>>> last_hidden_states = outputs.last_hidden_state
```NzDYou cannot specify both input_ids and inputs_embeds at the same timez5You have to specify either input_ids or inputs_embedszZ`use_cache=True` is incompatible with gradient checkpointing. Setting `use_cache=False`...F)rU   )rs   Ú
is_decoder)rU   r*  r‚   r'  )rU   r*  r‚   )rU   r*  r‚   r­   )r®   r¯   r°   c              3   ó2   "  € T F  pVf   K	  Vx € K  	  R # 5ir)   r  )Ú.0Úvs   & r$   Ú	<genexpr>Ú(ImageGPTModel.forward.<locals>.<genexpr><  s   é € ð áw�AØ÷ ’Ûwùs   ‚�
)Úlast_hidden_stater'  r«   Ú
attentionsÚcross_attentionsr;   r  )!rU   r°   r+  r¯   r,  ra   Ú%warn_if_padding_and_no_attention_maskry   rZ   r³   rs   r  ÚtrainingÚloggerÚwarning_oncer   Úget_seq_lengthr-   ÚarangeÚ	unsqueezer  r  ÚtoÚgetattrr   r   r  rÜ   Ú	enumerater  r  r   r   )r0   rï   r'  r‚   r(  r)  r*  r­   r®   r¯   r°   r+  r,  r¿   Úinput_shapeÚ
batch_sizers   Úpast_seen_tokensÚposition_embedsr«   Útoken_type_embedsÚoutput_shapeÚall_self_attentionsÚall_cross_attentionsÚall_hidden_statesr  Úblockrè   s   &&&&&&&&&&&&&,              r$   r?   ÚImageGPTModel.forward   s  € ð` 2CÒ1NÑ-ÐTX×T_ÑT_×TqÑTqÐà$8Ò$DÑ È$Ï+É+×JjÑJjð 	ð "+Ò!6‘I¸D¿K¹K×<QÑ<Qˆ	Ø%0Ò%<‘kÀ$Ç+Á+×BYÑBYˆàÒ  ]Ò%>ÜÐcÓdÐdØÒ"Ø×6Ñ6°yÔQØ#Ÿ.™.Ó*ˆKØ!Ÿ™ r¨;°r­?Ó;ˆIØ"Ÿ™¨Õ+‰JØÒ&Ø'×,Ñ,Ó.¨s°Ð3ˆKØ&×,Ñ,¨QÕ/‰JäÐTÓUÐUà%.Ò%:�×!Ò!À×@TÑ@Tˆà×&×&Ð&¨4¯=¯=¨=ßÜ×#Ñ#Øpôð "�	àÒ%Ø+×0Ñ0°°[Àµ_ÓEˆNç˜Ò0Ü*°$·+±+Ô>ˆOàÒØCRÒC^˜×=Ñ=Ô?ÐdeÐÜ Ÿ<š<¨°B­ÀÔGÐJZÕZˆLØ'×1Ñ1°!Ó4ˆLàÒ%Ø+×0Ñ0°¸RÓ@ˆNàÒ Ø ŸH™H YÓ/ˆMØŸ(™( <Ó0ˆØ%¨×(:Ñ(:¸=×;OÑ;OÓ(PÕPˆä�4—;‘; ¨e×4Ò4Ü/Ø—{‘{Ø+Ø-Ø /ô	‰Nô 7Ø—{‘{Ø+Ø-ôˆNð "Ò-Ü%>Ø—{‘{Ø+Ø5Ø&;ô	&Ð"ð Ò%Ø $§¡¨Ó 8ÐØ)Ð,=Õ=ˆMàŸ	™	 -Ó0ˆØ" m×&8Ñ&8¸Ó&<Ð%>Õ>ˆç$5™b¸4Ðß%6¸4¿;¹;×;Z×;ZÐ;Z™rÐ`dÐß"6™B¸DÐÜ! $§&¡&Ö)‰HˆAˆuß#Ø$5¸Ð8HÕ$HÐ!áØØØØ%Ø'=Ø#Ø"3ôˆGð $ A�JˆMß Ñ Ø&9¸WÀQ½Z¸MÕ&IÐ#Ø—;‘;×2×2Ò2Ø+?À7È1Å:À-Õ+OÒ(ñ% *ð( Ÿ	™	 -Ó0ˆØ%×*Ò*¨LÑ9ˆ÷  Ø 1°]Ð4DÕ DÐçß”5ñ à'¨Ð:KÐM`ÐbvÑwó—5ð �5ñ à'¨Ð:KÐM`ÐbvÑwóó ð ô 9Ø+Ø+Ø+Ø*Ø1ô
ð 	
r'   )r  r\   r  r  r  r  r  )NNNNNNNNNNNN)rB   rC   rD   rE   r+   r   r$  r   r?   rF   rG   rH   rI   s   @@r$   r  r  ˆ  s;   ù‡ € ÷ó ò ò"ð ÷g
ñ g
ó ÷g
ð g
r'   r  z‹
    The ImageGPT Model transformer with a language modeling head on top (linear layer with weights tied to the input
    embeddings).
    )Úcustom_introc                   óf   a a€ ] tR tRt oRR/tV3R lV 3R llt]R	V3R lR ll4       tRtVt	V ;t
# )
ÚImageGPTForCausalImageModelingiK  zlm_head.weightztransformer.wte.weightc                ó    <€ V ^8„  d   QhRS[ /# rÿ   r   )r"   r#   s   "€r$   r%   Ú+ImageGPTForCausalImageModeling.__annotate__T  s   ø€ ÷ ñ ™~ñ r'   c                óØ   <€ \         SV `  V4       \        V4      V n        \        P
                  ! VP                  VP                  ^,
          RR7      V n        V P                  4        R# )r8   F©r[   N)
r*   r+   r  rî   r   ÚLinearÚn_embdr  Úlm_headr  ©r0   rU   r1   s   &&€r$   r+   Ú'ImageGPTForCausalImageModeling.__init__T  sL   ø€ Ü‰Ñ˜Ô Ü(¨Ó0ˆÔÜ—y’y §¡°×0AÑ0AÀAÕ0EÈEÔRˆŒð 	�‰Ör'   c                óÚ  <€ V ^8„  d   QhRS[ P                  R,          RS[R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          R	S[ P                  R,          R
S[ P                  R,          RS[R,          RS[R,          RS[R,          RS[R,          RS[RS[S[,          /# )r   rï   Nr'  r‚   r(  r)  r*  r­   r®   Úlabelsr¯   r°   r+  r,  r¿   r5   )r-   r.   r   rO   r   r   r   )r"   r#   s   "€r$   r%   rP  ]  s  ø€ ÷ l
ñ l
á—<‘< $Õ&ðl
ñ  �ðl
ñ Ÿ™ tÕ+ð	l
ñ
 Ÿ™ tÕ+ðl
ñ —l‘l TÕ)ðl
ñ —|‘| dÕ*ðl
ñ  %Ÿ|™|¨dÕ2ðl
ñ !&§¡¨tÕ 3ðl
ñ —‘˜tÕ#ðl
ñ ˜$•;ðl
ñ   $�;ðl
ñ # T�kðl
ñ ˜D•[ðl
ñ ðl
ñ  
Ñ2Õ	2ñ!l
r'   c                ó`  € Ve   TMV P                   P                  pV P                  VVVVVVVVV
VVVR7      pV^ ,          pV P                  V4      pRpV	eu   VRRR1R3,          P	                  4       pV	R,          P	                  4       p\        4       pV! VP                  RVP                  R4      4      VP                  R4      4      pV'       g"   V3VR,          ,           pVe   V3V,           # T# \        VVVP                  VP                  VP                  VP                  R7      # )	aæ  
input_ids (`torch.LongTensor` of shape `(batch_size, input_ids_length)`):
    `input_ids_length` = `sequence_length` if `past_key_values` is `None` else
    `past_key_values.get_seq_length()` (`sequence_length` of input past key value states). Indices of input
    sequence tokens in the vocabulary.

    If `past_key_values` is used, only `input_ids` that do not have their past calculated should be passed as
    `input_ids`.

    Indices can be obtained using [`AutoImageProcessor`]. See [`ImageGPTImageProcessor.__call__`] for details.
labels (`torch.LongTensor` of shape `(batch_size, input_ids_length)`, *optional*):
    Labels for language modeling. Note that the labels **are shifted** inside the model, i.e. you can set
    `labels = input_ids` Indices are selected in `[-100, 0, ..., config.vocab_size]` All labels set to `-100`
    are ignored (masked), the loss is only computed for labels in `[0, ..., config.vocab_size]`

Examples:

```python
>>> from transformers import AutoImageProcessor, ImageGPTForCausalImageModeling
>>> import torch
>>> import matplotlib.pyplot as plt
>>> import numpy as np

>>> image_processor = AutoImageProcessor.from_pretrained("openai/imagegpt-small")
>>> model = ImageGPTForCausalImageModeling.from_pretrained("openai/imagegpt-small")
>>> device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
>>> model.to(device)  # doctest: +IGNORE_RESULT

>>> # unconditional generation of 8 images
>>> batch_size = 4
>>> context = torch.full((batch_size, 1), model.config.vocab_size - 1)  # initialize with SOS token
>>> context = context.to(device)
>>> output = model.generate(
...     input_ids=context, max_length=model.config.n_positions + 1, temperature=1.0, do_sample=True, top_k=40
... )

>>> clusters = image_processor.clusters
>>> height = image_processor.size["height"]
>>> width = image_processor.size["width"]

>>> samples = output[:, 1:].detach().cpu().numpy()
>>> samples_img = [
...     np.reshape(np.rint(127.5 * (clusters[s] + 1.0)), [height, width, 3]).astype(np.uint8) for s in samples
... ]  # convert color cluster tokens back to pixels
>>> f, axes = plt.subplots(1, batch_size, dpi=300)

>>> for img, ax in zip(samples_img, axes):  # doctest: +IGNORE_RESULT
...     ax.axis("off")
...     ax.imshow(img)
```N)r'  r‚   r(  r)  r*  r­   r®   r¯   r°   r+  r,  .rq   rå   )ÚlossÚlogitsr'  r«   r5  r6  r;   ).rå   )rU   r,  rî   rU  r¦   r   rZ   ry   r   r'  r«   r5  r6  )r0   rï   r'  r‚   r(  r)  r*  r­   r®   rY  r¯   r°   r+  r,  r¿   Útransformer_outputsr«   Ú	lm_logitsr[  Úshift_logitsÚshift_labelsÚloss_fctÚoutputs   &&&&&&&&&&&&&&,        r$   r?   Ú&ImageGPTForCausalImageModeling.forward\  sD  € ðJ &1Ò%<‘kÀ$Ç+Á+×BYÑBYˆà"×.Ñ.ØØ+Ø)Ø)Ø%Ø'Ø"7Ø#9ØØ/Ø!5Ø#ð /ó 
Ðð ,¨AÕ.ˆà—L‘L Ó/ˆ	àˆØÒà$ S¨#¨2¨#¨q [Õ1×<Ñ<Ó>ˆLØ! '�?×5Ñ5Ó7ˆLä'Ó)ˆHÙ˜L×-Ñ-¨b°,×2CÑ2CÀBÓ2GÓHÈ,×J[ÑJ[Ð\^ÓJ_Ó`ˆDçØ�\Ð$7¸Õ$;Õ;ˆFØ)-Ò)9�T�G˜fÕ$ÐE¸vÐEä0ØØØ/×?Ñ?Ø-×;Ñ;Ø*×5Ñ5Ø0×AÑAô
ð 	
r'   )rU  rî   )NNNNNNNNNNNNN)rB   rC   rD   rE   Ú_tied_weights_keysr+   r   r?   rF   rG   rH   rI   s   @@r$   rN  rN  K  s?   ù‡ € ð +Ð,DÐEÐ÷ó ð ÷l
ñ l
ó ÷l
ð l
r'   rN  zË
    The ImageGPT Model transformer with an image classification head on top (linear layer).
    [`ImageGPTForImageClassification`] average-pools the hidden states in order to do the classification.
    c                   ó^   a a€ ] tR tRt oV3R lV 3R llt]RV3R lR ll4       tRtVtV ;t	# )ÚImageGPTForImageClassificationiÌ  c                ó    <€ V ^8„  d   QhRS[ /# rÿ   r   )r"   r#   s   "€r$   r%   Ú+ImageGPTForImageClassification.__annotate__Ó  s   ø€ ÷ ñ ™~ñ r'   c                óì   <€ \         SV `  V4       VP                  V n        \        V4      V n        \
        P                  ! VP                  V P                  R R7      V n        V P                  4        R# )FrR  N)
r*   r+   Ú
num_labelsr  rî   r   rS  rT  Úscorer  rV  s   &&€r$   r+   Ú'ImageGPTForImageClassification.__init__Ó  sR   ø€ Ü‰Ñ˜Ô Ø ×+Ñ+ˆŒÜ(¨Ó0ˆÔÜ—Y’Y˜vŸ}™}¨d¯o©oÀEÔJˆŒ
ð 	�‰Ör'   c                óŠ  <€ V ^8„  d   QhRS[ P                  R,          RS[R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          R	S[R,          R
S[R,          RS[R,          RS[R,          RS[RS[S[,          /# )r   rï   Nr'  r‚   r(  r)  r*  rY  r¯   r°   r+  r,  r¿   r5   )r-   r.   r   rO   r   r   r   )r"   r#   s   "€r$   r%   rh  Ý  sì   ø€ ÷ T
ñ T
á—<‘< $Õ&ðT
ñ  �ðT
ñ Ÿ™ tÕ+ð	T
ñ
 Ÿ™ tÕ+ðT
ñ —l‘l TÕ)ðT
ñ —|‘| dÕ*ðT
ñ —‘˜tÕ#ðT
ñ ˜$•;ðT
ñ   $�;ðT
ñ # T�kðT
ñ ˜D•[ðT
ñ ðT
ñ 
Ñ1Õ	1ñT
r'   c                ó¼  € Ve   TMV P                   P                  pV P                  VVVVVVVV	V
VR7
      pV^ ,          pVP                  ^R7      pV P	                  V4      pRpVe   V P                  VVV P                   4      pV'       g"   V3VR,          ,           pVe   V3V,           # T# \        VVVP                  VP                  VP                  R7      # )aú  
input_ids (`torch.LongTensor` of shape `(batch_size, input_ids_length)`):
    `input_ids_length` = `sequence_length` if `past_key_values` is `None` else
    `past_key_values.get_seq_length()` (`sequence_length` of input past key value states). Indices of input
    sequence tokens in the vocabulary.

    If `past_key_values` is used, only `input_ids` that do not have their past calculated should be passed as
    `input_ids`.

    Indices can be obtained using [`AutoImageProcessor`]. See [`ImageGPTImageProcessor.__call__`] for details.
labels (`torch.LongTensor` of shape `(batch_size,)`, *optional*):
    Labels for computing the sequence classification/regression loss. Indices should be in `[0, ...,
    config.num_labels - 1]`. If `config.num_labels == 1` a regression loss is computed (Mean-Square loss), If
    `config.num_labels > 1` a classification loss is computed (Cross-Entropy).

Examples:

```python
>>> from transformers import AutoImageProcessor, ImageGPTForImageClassification
>>> from PIL import Image
>>> import httpx
>>> from io import BytesIO

>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> with httpx.stream("GET", url) as response:
...     image = Image.open(BytesIO(response.read()))

>>> image_processor = AutoImageProcessor.from_pretrained("openai/imagegpt-small")
>>> model = ImageGPTForImageClassification.from_pretrained("openai/imagegpt-small")

>>> inputs = image_processor(images=image, return_tensors="pt")
>>> outputs = model(**inputs)
>>> logits = outputs.logits
```N)	r'  r‚   r(  r)  r*  r¯   r°   r+  r,  rt   rå   )r[  r\  r'  r«   r5  )
rU   r,  rî   r=   rk  Úloss_functionr   r'  r«   r5  )r0   rï   r'  r‚   r(  r)  r*  rY  r¯   r°   r+  r,  r¿   r]  r«   Úpooled_hidden_statesr\  r[  rb  s   &&&&&&&&&&&&,      r$   r?   Ú&ImageGPTForImageClassification.forwardÜ  sû   € ðf &1Ò%<‘kÀ$Ç+Á+×BYÑBYˆà"×.Ñ.ØØ+Ø)Ø)Ø%Ø'ØØ/Ø!5Ø#ð /ó 
Ðð ,¨AÕ.ˆà,×1Ñ1°aÐ1Ó8Ðà—‘Ð0Ó1ˆàˆØÒØ×%Ñ% f¨f°d·k±kÓBˆDçØ�YÐ!4°RÕ!8Õ8ˆFØ)-Ò)9�T�G˜fÕ$ÐE¸vÐEä/ØØØ/×?Ñ?Ø-×;Ñ;Ø*×5Ñ5ô
ð 	
r'   )rj  rk  rî   )NNNNNNNNNNN)
rB   rC   rD   rE   r+   r   r?   rF   rG   rH   rI   s   @@r$   rf  rf  Ì  s1   ù‡ € ÷ó ð ÷T
ñ T
ó ÷T
ð T
r'   rf  )rN  rf  r  rí   )5Ú__doc__r÷   Útypingr   r-   r   Útorch.nnr   Ú r   rô   Úactivationsr   Úcache_utilsr   r   r	   Ú
generationr
   Úmasking_utilsr   r   Úmodeling_layersr   Úmodeling_outputsr   r   r   Úmodeling_utilsr   Úpytorch_utilsr   Úutilsr   r   r   Úutils.genericr   Úconfiguration_imagegptr   Ú
get_loggerrB   r9  ÚModuler   rK   rÆ   rÓ   rí   r  rN  rf  Ú__all__r  r'   r$   Ú<module>r„     s@  ðñ %ã Ý ã Ý Ý %å &Ý !ß CÑ CÝ )ß JÝ 9÷ñ õ
 .Ý #÷ñ õ
 ,Ý 2ð 
×	Ò	˜HÓ	%€ô
˜Ÿ	™	ô 
ôL)˜Ÿ	™	ô L)ô^�"—)‘)ô ô"E*Ð.ô E*ðP ô˜oó ó ððD ô
Ð+ó 
ó ð
ñD ðôôx
Ð%<¸oó x
óðx
ñv ðôô_
Ð%<ó _
óð_
òD‚r'   