
    h                         S SK r S SKrS SKrS SKJrJr  \ R                  " \5      r " S S\R                  R                  5      r " S S5      rg)    N)	MT5ConfigT5Configc                   @   ^  \ rS rSrSrS\\-  4U 4S jjrS rSr	U =r
$ )	T5Encoder   z-T5 encoder outputs only the last hidden stateconfigc                 :   > [         TU ]  5         Xl        X l        g N)super__init__encoderr   )selfr   r   	__class__s      g/var/www/fran/franai/venv/lib/python3.13/site-packages/onnxruntime/transformers/models/t5/t5_encoder.pyr   T5Encoder.__init__   s        c                 *    U R                  X5      S   $ )Nr   )r   r   	input_idsattention_masks      r   forwardT5Encoder.forward   s    ||I6q99r   )r   r   )__name__
__module____qualname____firstlineno____doc__r   r   r   r   __static_attributes____classcell__)r   s   @r   r   r      s!    79(< 
: :r   r   c                   j    \ rS rSrS r\ SS\S\S\S\R                  S\	4
S jj5       r
S	\4S
 jrSrg)T5EncoderInputs   c                     Xl         X l        g r
   r   r   r   s      r   r   T5EncoderInputs.__init__   s    +40>r   
batch_sizesequence_length
vocab_sizedeviceuse_int32_inputsc                 >   U(       a  [         R                  O[         R                  n[         R                  " SUS-
  X4UUS9n[         R                  " X/XSS9nUS:  a4  [        U 5       H%  n[        R                  " SUS-
  5      n	SXxSU	24'   M'     [        Xg5      $ )a	  Create dummy inputs for T5 encoder.

Args:
    batch_size (int): batch size
    sequence_length (int): sequence length
    vocab_size (int): vocabulary size
    device (torch.device): device of output tensors

Returns:
    T5EncoderInputs: dummy inputs for encoder
r      )lowhighsizedtyper)   )r0   r)      N)torchint32int64randintonesrangerandomr!   )
r&   r'   r(   r)   r*   r0   r   r   ipadding_positions
             r   create_dummyT5EncoderInputs.create_dummy    s    &  0U[[MMa.
	 Z$A^a:&#)>>!_q5H#I 78"3#3"334 ' y99r   returnc                 h    U R                   U R                  4 Vs/ s H	  oc  M  UPM     nnU$ s  snf r
   r$   )r   v
input_lists      r   to_listT5EncoderInputs.to_listD   s3    "&..$2E2E!FX!FAa!F
X Ys   //)r   r   N)F)r   r   r   r   r   staticmethodintr2   r)   boolr;   listrA   r    r   r   r!   r!      s_    ?  "'!:!:!: !: 	!:
 !: !:F r   r!   )loggingr8   r2   transformersr   r   	getLoggerr   loggernnModuler   r!   rG   r   r   <module>rN      sA       ,			8	$	: 	:+ +r   