o
    i                     @   s4   d dl Z d dlmZ d dlmZ G dd deZdS )    N)
functional)
AbsDecoderc                       s:   e Zd Z			d
dededef fddZdd	 Z  ZS )DenseDecoder         ?num_nodes_resnet1num_nodes_last_layerbatchnorm_momentumc                    sn   t t|   tj||| _tjj|d|d| _tj||| _	tjj|d|d| _
tjj||dd| _d S )NgMbP?)epsmomentumF)bias)superr   __init__torchnnLinearresnet1_denseBatchNorm1d
resnet1_bnresnet2_dense
resnet2_bnoutput_dense)self
vocab_sizeencoder_output_sizer   r   r	   	__class__ Q/home/ubuntu/.local/lib/python3.10/site-packages/funasr/models/sond/sv_decoder.pyr      s   zDenseDecoder.__init__c                 C   sb   i }|  |}||d< t|}| |}| |}||d< t|}| |}| |}||fS )Nr   r   )r   Frelur   r   r   r   )r   features
embeddingsr   r   r   forward   s   






zDenseDecoder.forward)r   r   r   )__name__
__module____qualname__intfloatr   r#   __classcell__r   r   r   r   r      s    r   )r   torch.nnr   r   !funasr.models.decoder.abs_decoderr   r   r   r   r   r   <module>   s    