Team Ai
Apppublic

xdecoder/Instruct-X-Decoder

sourceHugging Faceafl-3.0updated 3y agoView on Hugging Face
163likes
misc.cpython-38.pyc45 linesDownload Raw Back to __pycache__
1U

2E$�c��@s�dZddlmZmZddlZddlmZddlZddlm	Z	dd�Z3Gdd�de�Zee	d	�d4d�Z
ded	�d
d�Zejjee	ed�dd��Zdd�ZdS)z`5Misc functions, including distributed helpers.6 7Mostly copy-paste from torchvision references.8�)�List�OptionalN)�TensorcCsB|d}|dd�D](}t|�D]\}}t|||�||<q q|S)Nr�)�	enumerate�max)�the_list�maxes�sublist�index�item�r
�,/data/arXiv/demo/Demo/xdecoder/utils/misc.py�_max_by_axiss9rc@s6eZdZeed�dd�Zdd�Zdd�Zdd	�Zd10S)�NestedTensor��maskcCs||_||_dS�N��tensorsr)�selfrrr
r
r�__init__szNestedTensor.__init__cCs@|j�|�}|j}|dk	r2|dk	s&t�|�|�}nd}t||�Sr)r�tor�AssertionErrorr)r�deviceZcast_tensorrZ	cast_maskr
r
rrszNestedTensor.tocCs|j|jfSrr�rr
r
r�	decompose(szNestedTensor.decomposecCs11t|j�Sr)�strrrr
r
r�__repr__+szNestedTensor.__repr__N)	�__name__�12__module__�__qualname__rrrrrrr
r
r
rrsr)�tensor_listcCs�|djdkr�t��rt|�Stdd�|D��}t|�g|}|\}}}}|dj}|dj}tj	|||d�}	tj13|||ftj|d�}14t||	|15�D]\\}}}
|d|j
d�d|j
d�d|j
d�f�|�d|
d|j
d�d|j
d�f<q�n�|djdk�r�t���rt|�Std	d�|D��}t|�g|}|\}}}|dj}|dj}tj	|||d�}	tj16||ftj|d�}17t||	|18�D]>\}}}
||d|j
d�d|j
d�f<d|
d|j
d�<�q�ntd19��t|	|20�S)Nr�cSsg|]}t|j��qSr
��list�shape��.0�imgr
r
r�21<listcomp>7sz2nested_tensor_from_tensor_list.<locals>.<listcomp>��dtyperr�FcSsg|]}t|j��qSr
r$)r(�txtr
r
rr*Isz
not supported)�ndim�torchvision�_is_tracing�$_onnx_nested_tensor_from_tensor_listr�lenr,r�torch�zeros�ones�bool�zipr&�copy_�22ValueErrorr)r"�max_size�batch_shape�b�c�h�wr,r�tensorrr)Zpad_img�m�lr.Zpad_txtr
r
r�nested_tensor_from_tensor_list.s823242$25262728 rD� cs^g}t|d���D]<�t�t��fdd�|D���tj���tj�}|�|�qt	|�}|\}}}||dkr||||nd}||dkr�|||nd}|||||f}g}	g}29|D]�}dd�t30|t	|j��D�}tjj
�|d|dd|dd|df�}
|	�|
�tj|dtj|jd�}tjj
�|d|dd|dfdd�}|31�|�tj��q�|	S)	Nrcsg|]}|j��qSr
�r&r'��ir
rr*\sz1_collate_and_pad_divisibility.<locals>.<listcomp>cSsg|]\}}||�qSr
r
�r(�s1�s2r
r
rr*msr-rr+�constant)�range�dimr4rrAr�float32�int64�append�tupler8r&�nn�32functional�pad�33zeros_like�intrr7)r"�divr;�34max_size_ir>r?r@Zpad_hZpad_w�padded_imgs�padded_masksr)�padding�35padded_imgrB�padded_maskr
rGr�_collate_and_pad_divisibilityXs.��36(37$r_)r"�returncs&g}t|d���D]<�t�t��fdd�|D���tj���tj�}|�|�qt	|�}g}g}|D]�}dd�t38|t	|j��D�}tjj
�|d|dd|dd|df�}|�|�tj|dtj|jd�}tjj
�|d|dd|dfdd�}	|�|	�tj��qft�|�}39t�|�}t|40|d	�S)41Nrcsg|]}|j��qSr
rFr'rGr
rr*~sz8_onnx_nested_tensor_from_tensor_list.<locals>.<listcomp>cSsg|]\}}||�qSr
r
rIr
r
rr*�sr-rr+rLr)rMrNr4r�stackrrOrPrQrRr8r&rSrTrUrVrWrr7r)r"r;rYrZr[r)r\r]rBr^rArr
rGrr2ys*��(42$4344r2cCst��sdSt��sdSdS)NFT)�dist�is_available�is_initializedr
r
r
r�is_dist_avail_and_initialized�s45re)rE)�__doc__�typingrrr4Ztorch.distributed�distributedrbr0rr�objectrrDr%r_�jit�unusedr2rer
r
r
r�<module>s*!