o
    i                     @   sJ   d dl Z d dl mZ ddlmZ ddlmZ G dd dejZd	d
 ZdS )    N)nn   )Conv1d   )basec                       s0   e Zd Z			d fdd	Z fddZ  ZS )	V3FirstBlock   r	   r	   r	   r	   r            -   r	   c                    sZ   t |d }t j||||d t||d dd| _t | _t|d d |dd| _d S )N   )dilation_rater   )kernel_size)	lensuper__init__r   conv_1r   GELUactconv_2)self
target_dimconv_kernelspool_kernelsr   h_dim	__class__ J/home/ubuntu/.local/lib/python3.10/site-packages/neucodec/tconv/t_first.pyr   	   s
   
zV3FirstBlock.__init__c                    s@   t  |}| |}| |}tj||gdd}| |}|S )Nr   dim)r   forwardr   r   torchcatr   )r   xhyr   r    r!   r$      s   


zV3FirstBlock.forward)r   r
   r	   )__name__
__module____qualname__r   r$   __classcell__r    r    r   r!   r      s    r   c                 C   s   t | ddddS )Nr   r
   c   )r   r   r   )r   r"   r    r    r!   <lambda>   s   r/   )r%   r   distill_layersr    r   
FirstBlockr   r    r    r    r!   <module>   s    