
    wiR                     >    d dl mZ  G d dej                  Zd ZdS )    )nnc                   &     e Zd Zd fd	Zd Z xZS )IntraCLBlock`      c                    t          t          |                                            || _        || _        t          j        | j        | j        | j        z  ddd          | _        t          j        | j        | j        z  | j        ddd          | _        t          j        | j        | j        z  | j        | j        z  ddd          | _	        t          j        | j        | j        z  | j        | j        z  ddd          | _
        t          j        | j        | j        z  | j        | j        z  d	dd
          | _        t          j        | j        | j        z  | j        | j        z  ddd          | _        t          j        | j        | j        z  | j        | j        z  ddd          | _        t          j        | j        | j        z  | j        | j        z  ddd          | _        t          j        | j        | j        z  | j        | j        z  ddd          | _        t          j        | j        | j        z  | j        | j        z  ddd          | _        t          j        | j        | j        z  | j        | j        z  ddd          | _        t          j        | j                  | _        t          j                    | _        d S )N   r   )kernel_sizestridepadding)   r	   )r	   r	   )   r   )   r	   )   r   )r   r	   )r	   r   )r	   r   )r   r   )r	   r   )r   r   )r	   r   )r   r	   )r   r   )r   r   )r   r   )r   r   )superr   __init__channelsrfr   Conv2dconv1x1_reduce_channelconv1x1_return_channelv_layer_7x1v_layer_5x1v_layer_3x1q_layer_1x7q_layer_1x5q_layer_1x3c_layer_7x7c_layer_5x5c_layer_3x3BatchNorm2dbnReLUrelu)selfin_channelsreduce_factor	__class__s      w/var/www/development/aibuddy-work/election-extract/venv/lib/python3.11/site-packages/rapidocr/networks/necks/intracl.pyr   zIntraCLBlock.__init__   s   lD!!**,,,#&(iM4=DG31VW'
 '
 '
# ')iMTW$dm1VW'
 '
 '
# 9MTW$MTW$
 
 
 9MTW$MTW$
 
 
 9MTW$MTW$
 
 
 9MTW$MTW$
 
 
 9MTW$MTW$
 
 
 9MTW$MTW$
 
 
 9MTW$MTW$
 
 
 9MTW$MTW$
 
 
 9MTW$MTW$
 
 
 .//GII			    c                 ^   |                      |          }|                     |          }|                     |          }|                     |          }||z   |z   }|                     |          }|                     |          }|                     |          }	||z   |	z   }
|                     |
          }|                     |
          }| 	                    |
          }||z   |z   }| 
                    |          }|                     |          }|                     |          }||z   S N)r   r   r   r   r   r   r   r    r   r   r   r"   r$   )r%   xx_newx_7_cx_7_vx_7_qx_7x_5_cx_5_vx_5_qx_5x_3_cx_3_vx_3_qx_3
x_relations                   r)   forwardzIntraCLBlock.forwardV   s)   ++A..  ''  ''  ''eme#  %%  %%  %%eme#  %%  %%  %%eme#0055
WWZ((
YYz**
:~r*   )r   r   )__name__
__module____qualname__r   r<   __classcell__)r(   s   @r)   r   r      sS        O O O O O Ob      r*   r   c                     t          j                    }t          |           D ]#}|                    t	                                 $|S r,   )r   
ModuleListrangeappendr   )	num_blockIntraCLBlock_listis      r)   build_intraclblock_listrH   p   sF    9 1 1  0000r*   N)torchr   Moduler   rH    r*   r)   <module>rL      se         i i i i i29 i i iX    r*   