
    Ch                        S SK Jr  S SKJr   S SKJr  S SKJrJ	r	  S SK
Jr  S SKJrJr   " S S\5      rg	! \ a	    S SKJr   N0f = f)
    )annotations)Callable)Self)Tensornn)Module)fullnameimport_from_stringc                     ^  \ rS rSr% Sr/ SQrS\S'   S\R                  " 5       SS4           SU 4S jjjr	SS	 jr
SS
 jrS rSS.SS jjrS r\     S             SS jj5       rSrU =r$ )Dense   a  
Feed-forward function with activation function.

This layer takes a fixed-sized sentence embedding and passes it through a feed-forward layer. Can be used to generate deep averaging networks (DAN).

Args:
    in_features: Size of the input dimension
    out_features: Output size
    bias: Add a bias vector
    activation_function: Pytorch activation function applied on
        output
    init_weight: Initial value for the matrix of the linear layer
    init_bias: Initial value for the bias of the linear layer
in_featuresout_featuresbiasactivation_functionz	list[str]config_keysTNc                Z  > [         TU ]  5         Xl        X l        X0l        Uc  [
        R                  " 5       OUU l        [
        R                  " XUS9U l	        Ub%  [
        R                  " U5      U R                  l        Ub&  [
        R                  " U5      U R                  l        g g )N)r   )super__init__r   r   r   r   Identityr   Linearlinear	Parameterweight)selfr   r   r   r   init_weight	init_bias	__class__s          Z/var/www/html/shao/venv/lib/python3.13/site-packages/sentence_transformers/models/Dense.pyr   Dense.__init__'   s     	&(	4G4O2;;=Uh iiE"!#k!:DKK !||I6DKK !    c           	     n    UR                  SU R                  U R                  US   5      5      05        U$ )Nsentence_embedding)updater   r   )r   featuress     r    forwardDense.forward=   s4    -t/G/GT\]qTrHs/tuvr"   c                    U R                   $ )N)r   r   s    r     get_sentence_embedding_dimension&Dense.get_sentence_embedding_dimensionA   s       r"   c                r    U R                   U R                  U R                  [        U R                  5      S.$ )Nr   )r   r   r   r	   r   r*   s    r    get_config_dictDense.get_config_dictD   s3    ++ --II#+D,D,D#E	
 	
r"   safe_serializationc               D    U R                  U5        U R                  XS9  g )Nr0   )save_configsave_torch_weights)r   output_pathr1   argskwargss        r    save
Dense.saveL   s!    %Sr"   c                *    SU R                  5        S3$ )NzDense())r.   r*   s    r    __repr__Dense.__repr__P   s    ,,./q11r"   c                    UUUUUS.nU R                   " SSU0UD6n	[        U	S   5      " 5       U	S'   U " S0 U	D6n
U R                  " SXS.UD6n
U
$ )N)	subfoldertokencache_folderrevisionlocal_files_onlymodel_name_or_pathr   )rD   model )load_configr
   load_torch_weights)clsrD   r?   r@   rA   rB   rC   r7   
hub_kwargsconfigrE   s              r    load
Dense.loadS   sv     #(  0

 U4FU*U(:6BW;X(Y([$%f&&h:Lh]ghr"   )r   r   r   r   r   )r   intr   rN   r   boolr   z!Callable[[Tensor], Tensor] | Noner   Tensor | Noner   rP   )r&   zdict[str, Tensor])returnrN   )r5   strr1   rO   rQ   None) NNNF)rD   rR   r?   rR   r@   zbool | str | NonerA   
str | NonerB   rU   rC   rO   rQ   r   )__name__
__module____qualname____firstlineno____doc__r   __annotations__r   Tanhr   r'   r+   r.   r8   r<   classmethodrL   __static_attributes____classcell__)r   s   @r    r   r      s    K  AC%)#'77 7 	7
 ?7 #7 !7 7,!
 HL T2  #'#'#!&  !	
 !   
 r"   r   N)
__future__r   typingr   r   ImportErrortyping_extensionstorchr   r   #sentence_transformers.models.Moduler   sentence_transformers.utilr	   r
   r   rF   r"   r    <module>rg      s@    " '  6 CYF Y  '&'s   6 AA