o
    1 ib
                     @   s  d dl mZmZmZ d dlZd dlmZ d dlm	Z	 d dl
mZ e	 \ZZZed dedefd	d
Ze					d!dedededeeef deeef dedee dee defddZe		d"dedededee dedefddZededefddZdS )#    )AnyOptionalTupleN)DeveloperAPI)try_import_tf)
TensorType      ?stdreturnc                    s   d fdd	}|S )Nc                    sT   t jj|  t|dr|jn|pt j}| t t |j	ddd 9 }t
|S )Nnamer   T)ZaxisZkeepdims)nprandomZrandnZastypehasattrr   float32sqrtZsquaresumtfZconstant)shapedtypeZpartition_infooutr	    d/home/app/PaddleOCR-VL-test/.venv_paddleocr/lib/python3.10/site-packages/ray/rllib/models/tf/misc.py_initializer   s
   "
z'normc_initializer.<locals>._initializer)NNr   )r	   r   r   r   r   normc_initializer   s   r      r      r   SAMExnum_filtersr   filter_sizestridepadr   collectionsc              	   C   s   |d u rt j}t|i d|d |d dg}|d |d t|  d |g}	t|	d d }
t|	d d | }td|
|  }tj	d|	|t
| ||d}tj	dddd|gtd	|d
}tj| |||| W  d    S 1 sxw   Y  d S )Nr   r   r         W)r%   b        )initializerr%   )r   r   tf1Zvariable_scopeint	get_shaper   prodr   get_variableZrandom_uniform_initializerconstant_initializernnconv2d)r    r!   r   r"   r#   r$   r   r%   Zstride_shapeZfilter_shapeZfan_inZfan_outZw_boundwr)   r   r   r   r3      s6   	
$r3   r*   sizer+   	bias_initc                 C   sL   t j|d |  d |g|d}t j|d |gt |d}t| || S )Nz/wr   )r+   z/b)r,   r0   r.   r1   r   matmul)r    r5   r   r+   r6   r4   r)   r   r   r   linearJ   s
    r8   c              	   C   s&   t | dt|   dd  gS )Nr   )r   Zreshaper   r/   r.   as_list)r    r   r   r   flattenY   s   &r;   )r   )r   r   r   NN)Nr*   )typingr   r   r   numpyr   Zray.rllib.utils.annotationsr   Zray.rllib.utils.frameworkr   Zray.rllib.utils.typingr   r,   r   Ztfvfloatr   r-   strr3   r8   r;   r   r   r   r   <module>   sf    

	0