o
    sÒh¶  ã                   @   sB   d dl Z d dlZd dlmZ d dlmZmZ G dd„ dejƒZdS )é    N)ÚDict)ÚTensorÚnnc                       sR   e Zd ZdZddef‡ fdd„Zdeeef fdd„Z	d	d
„ Z
edd„ ƒZ‡  ZS )ÚDropoutzUDropout layer.

    Args:
        dropout: Sets a dropout value for dense layer.
    çš™™™™™É?Údropoutc                    s&   t t| ƒ ¡  || _t | j¡| _d S )N)Úsuperr   Ú__init__r   r   Údropout_layer)Úselfr   ©Ú	__class__© úb/var/www/html/alpaca_bot/venv/lib/python3.10/site-packages/sentence_transformers/models/Dropout.pyr	      s   zDropout.__init__Úfeaturesc                 C   s   |  d|  |d ¡i¡ |S )NÚsentence_embedding)Úupdater
   )r   r   r   r   r   Úforward   s   zDropout.forwardc                 C   sL   t tj |d¡dƒ}t d| ji|¡ W d   ƒ d S 1 sw   Y  d S )Núconfig.jsonÚwr   )ÚopenÚosÚpathÚjoinÚjsonÚdumpr   )r   Úoutput_pathÚfOutr   r   r   Úsave   s   "ÿzDropout.savec                 C   sN   t tj | d¡ƒ}t |¡}W d   ƒ n1 sw   Y  tdi |¤Ž}|S )Nr   r   )r   r   r   r   r   Úloadr   )Ú
input_pathÚfInÚconfigÚmodelr   r   r   r      s
   ÿzDropout.load)r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úfloatr	   r   Ústrr   r   r   Ústaticmethodr   Ú__classcell__r   r   r   r   r      s    r   )	r   r   Útypingr   Útorchr   r   ÚModuler   r   r   r   r   Ú<module>   s
    