
    wi                     J    d dl mc mZ d dlmZ  G d dej                  ZdS )    N)nnc                   0     e Zd Z	 	 	 	 d fd	ZddZ xZS )	CTCHead  -C6:?NFc                 .   t          t          |                                            |t          j        ||d          | _        n8t          j        ||d          | _        t          j        ||d          | _        || _        || _	        || _
        d S )NT)bias)superr   __init__r   Linearfcfc1fc2out_channelsmid_channelsreturn_feats)selfin_channelsr   fc_decayr   r   kwargs	__class__s          |/var/www/development/aibuddy-work/election-extract/venv/lib/python3.11/site-packages/rapidocr/networks/heads/rec_ctc_head.pyr   zCTCHead.__init__   s     	gt%%'''i  DGG y  DH
 y  DH )((    c                     | j         |                     |          }n*|                     |          }|                     |          }| j        r||f}n|}| j        st          j        |d          }|}|S )N   )dim)r   r   r   r   r   trainingFsoftmax)r   xlabelspredictsresults        r   forwardzCTCHead.forward&   s}    $wwqzzHHAxx{{H 	]FFF} 	yq111HFr   )r   r   NF)N)__name__
__module____qualname__r   r$   __classcell__)r   s   @r   r   r      s`         ) ) ) ) ) )@       r   r   )torch.nn.functionalr   
functionalr   torchModuler    r   r   <module>r.      sh                  1 1 1 1 1bi 1 1 1 1 1r   