o
    }oi3                     @   s`   d dl mZ d dlmZmZmZ d dlmZ d dlm	Z	m
Z
mZmZ dgZG dd deeZdS )    )ABC)AnyDictOptional)NeuralModule)ChannelTypeEncodedRepresentationMaskType
NeuralTypeDecoderModulec                   @   s   e Zd ZdZedeeeef  fddZ	edeeeef  fddZ
edee fddZedee fd	d
Zedee fddZedee fddZedee fddZdS )r   z@ Base class for decoder neural module to be used in NLP models. returnc              	   C   sH   t dt t dt ddt dt ddt dt ddt dt dddS )N)BTT)optionalr   r   D)r   r   r   r   )	input_idsdecoder_maskencoder_embeddingsencoder_maskdecoder_mems)r
   r   r	   r   self r   f/home/ubuntu/.local/lib/python3.10/site-packages/nemo/collections/nlp/modules/common/decoder_module.pyinput_types   s   
zDecoderModule.input_typesc                 C   s   dt dt iS )Nlast_hidden_statesr   )r
   r   r   r   r   r   output_types%   s   zDecoderModule.output_typesc                 C      t NNotImplementedErrorr   r   r   r   hidden_size)      zDecoderModule.hidden_sizec                 C   r   r   r    r   r   r   r   
vocab_size-   r#   zDecoderModule.vocab_sizec                 C   r   r   r    r   r   r   r   	embedding1   r#   zDecoderModule.embeddingc                 C   r   r   r    r   r   r   r   decoder5   r#   zDecoderModule.decoderc                 C   r   r   r    r   r   r   r   max_sequence_length9   r#   z!DecoderModule.max_sequence_lengthN)__name__
__module____qualname____doc__propertyr   r   strr
   r   r   intr"   r$   r   r%   r&   r'   r   r   r   r   r      s     	N)abcr   typingr   r   r   nemo.core.classesr   nemo.core.neural_typesr   r   r	   r
   __all__r   r   r   r   r   <module>   s   