o
    Ô2úhÂ	  ã                   @   s¸   d Z ddlmZ ddlmZ ddlmZ ddlmZ ddlT e d¡ dd	„ Z	d
d„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Ze d¡dd„ ƒZe d¡dd„ ƒZe d¡dd„ ƒZdS ) z%Ops to manipulate hashmap of tensors.é    )Úops)Ú	array_ops)Úcond)Úgen_map_ops)Ú*ÚEmptyTensorMapc                   C   s   t  ¡ S ©N)r   Úempty_tensor_map© r
   r
   úX/var/www/html/chatgem/venv/lib/python3.10/site-packages/tensorflow/python/ops/map_ops.pyr	      s   r	   c                 C   s
   t  | ¡S r   )r   Útensor_map_size)Úinput_handler
   r
   r   r      s   
r   c                 C   ó   t  | ||¡S r   )r   Útensor_map_insert)r   ÚkeyÚvaluer
   r
   r   r   !   ó   r   c                 C   r   r   )r   Útensor_map_lookup©r   r   Úvalue_dtyper
   r
   r   r   $   r   r   c                 C   r   r   )r   Útensor_map_eraser   r
   r
   r   r   '   r   r   c                 C   ó   t  | |¡S r   )r   Útensor_map_has_key)r   r   r
   r
   r   r   *   ó   r   c                 C   r   r   )r   Útensor_map_stack_keys)r   Ú	key_dtyper
   r
   r   r   .   r   r   ÚTensorMapLookupc                 C   s(   | j \}}tƒ }t|||ƒ}d }||fS r   )Úinputsr	   r   )ÚopÚdvalÚ_ÚkÚmap_gradÚkey_gradr
   r
   r   Ú
LookupGrad2   s
   
r$   ÚTensorMapInsertc                    sH   | j \}‰‰d }t tˆ ˆƒ‡ ‡‡fdd„‡ ‡fdd„¡\}}|||fS )Nc                      s   t ˆ ˆˆjƒtˆ ˆˆjƒfS r   )r   Údtyper   r
   ©Údmapr!   Úvr
   r   Ú<lambda>?   s   zInsertGrad.<locals>.<lambda>c                      s   t  ˆ¡ˆ fS r   )r   Ú
zeros_liker
   )r(   r)   r
   r   r*   A   s    )r   r   r   )r   r(   r    r#   Ú
value_gradr"   r
   r'   r   Ú
InsertGrad:   s   ý
r-   ÚTensorMapErasec                 C   s   d }|}||fS r   r
   )r   r(   r#   r"   r
   r
   r   Ú	EraseGradD   s   r/   N)Ú__doc__Útensorflow.python.frameworkr   Útensorflow.python.opsr   r   r   Ú!tensorflow.python.ops.gen_map_opsÚNotDifferentiabler	   r   r   r   r   r   r   ÚRegisterGradientr$   r-   r/   r
   r
   r
   r   Ú<module>   s(   


	