
    +sg                    z    d dl mZ d dlZd dlZd dlZd dlmZ d dlmZ	 d dlm
Z
mZ  G d dej                        Zy)    )annotationsN)
load_model)
save_model)Tensornnc                  H     e Zd Zd fdZddZd Zdd	dZed        Z xZ	S )
	LayerNormc                d    t         |           || _        t        j                  |      | _        y N)super__init__	dimensionr   r	   norm)selfr   	__class__s     Y/var/www/html/venv/lib/python3.12/site-packages/sentence_transformers/models/LayerNorm.pyr   zLayerNorm.__init__   s%    "LL+	    c                4    | j                  |d         |d<   |S )Nsentence_embedding)r   )r   featuress     r   forwardzLayerNorm.forward   s!    )-8<P3Q)R%&r   c                    | j                   S r   )r   )r   s    r    get_sentence_embedding_dimensionz*LayerNorm.get_sentence_embedding_dimension   s    ~~r   c                   t        t        j                  j                  |d      d      5 }t	        j
                  d| j                  i|d       d d d        |r+t        | t        j                  j                  |d             y t        j                  | j                         t        j                  j                  |d             y # 1 sw Y   yxY w)Nconfig.jsonwr      )indentmodel.safetensorspytorch_model.bin)openospathjoinjsondumpr   save_safetensors_modeltorchsave
state_dict)r   output_pathsafe_serializationfOuts       r   r)   zLayerNorm.save   s    "'',,{M:C@ 	EDII{DNN3T!D	E "4kCV)WXJJt("'',,{DW*XY	E 	Es   %CCc                D   t        t        j                  j                  | d            5 }t	        j
                  |      }d d d        t        di }t        j                  j                  t        j                  j                  | d            r,t        |t        j                  j                  | d             |S |j                  t        j
                  t        j                  j                  | d      t        j                  d      d             |S # 1 sw Y   xY w)Nr   r   r    cpuT)map_locationweights_only )r!   r"   r#   r$   r%   loadr	   existsload_safetensors_modelload_state_dictr(   device)
input_pathfInconfigmodels       r   r3   zLayerNorm.load"   s    "'',,z=9: 	$cYYs^F	$ #F#77>>"'',,z3FGH"5"'',,zCV*WX  !!

GGLL-@APUP\P\]bPcrv
 	$ 	$s   DD)r   int)r   zdict[str, Tensor])T)r,   boolreturnNone)
__name__
__module____qualname__r   r   r   r)   staticmethodr3   __classcell__)r   s   @r   r	   r	      s,    ,
Z  r   r	   )
__future__r   r%   r"   r(   safetensors.torchr   r5   r   r'   r   r   Moduler	   r2   r   r   <module>rH      s*    "  	  B B $		 $r   