
    9i                          S r SSKJr  SSKJr  SSKJr  SSKJr  SSK	J
r
  SSKJr  \R                  " \R                  \R                  S9 " S	 S
\5      5       r " S S\R"                  5      rg)zPyTorch LSTM model.     N)Models)
TorchModel)MODELS)BackboneModelOutput)Tasks)	group_keymodule_namec                   :   ^  \ rS rSrSU 4S jjrS\4S jrSrU =r$ )	LSTMModel   c                    > [         TU ]  5         UR                  SU5      n[        X5      U l        [
        R                  " UUSSSS9U l        g )Nlstm_hidden_size   T)
num_layersbidirectionalbatch_first)super__init__get	Embedding	embeddingnnLSTMlstm)self
vocab_sizeembed_widthhidden_sizekwargs	__class__s        c/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/modelscope/models/nlp/lstm/backbone.pyr   LSTMModel.__init__   sJ    jj!3[A":;GG	    returnc                 \    U R                  U5      nU R                  U5      u  pE[        US9$ )N)last_hidden_state)r   r   r   )r   	input_idsr   r   lstm_output_s         r!   forwardLSTMModel.forward   s+    NN9-	9-"[AAr#   )r   r   )d   )	__name__
__module____qualname____firstlineno__r   r   r*   __static_attributes____classcell__r    s   @r!   r   r      s    	B.A B Br#   r   c                   .   ^  \ rS rSrU 4S jrS rSrU =r$ )r   !   c                 `   > [         [        U ]  5         [        R                  " X5      U l        g N)r   r   r   r   r   )r   r   r   r    s      r!   r   Embedding.__init__#   s     i')j>r#   c                 $    U R                  U5      $ r7   r   )r   r'   s     r!   r*   Embedding.forward(   s    ~~i((r#   r:   )r-   r.   r/   r0   r   r*   r1   r2   r3   s   @r!   r   r   !   s    ?
) )r#   r   )__doc__torch.nnr   modelscope.metainfor   modelscope.modelsr   modelscope.models.builderr   modelscope.outputsr   modelscope.utils.constantr   register_modulebackboner   r   Moduler    r#   r!   <module>rG      s^      & ( , 2 + %..fkkJB
 B KB&)		 )r#   