o
    ®Ÿ?eÂ	  ã                   @   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)Ú*ZEmptyTensorMapc                   C   s   t  ¡ S ©N)r   Úempty_tensor_map© r	   r	   ú^/home/www/facesmatcher.com/pyenv/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   Z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   Z	key_dtyper	   r	   r
   r   .   r   r   ZTensorMapLookupc                 C   s(   | j \}}tƒ }t|||ƒ}d }||fS r   )Úinputsr   r   )ÚopÚdvalÚ_ÚkÚmap_gradÚkey_gradr	   r	   r
   Ú
LookupGrad2   s
   
r    ZTensorMapInsertc                    sH   | j \}‰‰d }t tˆ ˆƒ‡ ‡‡fdd„‡ ‡fdd„¡\}}|||fS )Nc                      s   t ˆ ˆˆjƒtˆ ˆˆjƒfS r   )r   Zdtyper   r	   ©Údmapr   Úvr	   r
   Ú<lambda>?   s   zInsertGrad.<locals>.<lambda>c                      s   t  ˆ¡ˆ fS r   )r   Z
zeros_liker	   )r"   r#   r	   r
   r$   A   s    )r   r   r   )r   r"   r   r   Z
value_gradr   r	   r!   r
   Ú
InsertGrad:   s   ý
r%   ZTensorMapErasec                 C   s   d }|}||fS r   r	   )r   r"   r   r   r	   r	   r
   Ú	EraseGradD   s   r&   N)Ú__doc__Ztensorflow.python.frameworkr   Ztensorflow.python.opsr   r   r   Z!tensorflow.python.ops.gen_map_opsZNotDifferentiabler   r   r   r   r   r   r   ZRegisterGradientr    r%   r&   r	   r	   r	   r
   Ú<module>   s(   


	