CoolFace
Apppublic

XaviXva/Video-LLaVA

sourceHugging Faceapache-2.0updated 3y agoView on Hugging Face
0likes
mae_encoder.cpython-310.pyc28 linesDownload Raw Back to __pycache__
1o

2��Ne4�@s>ddlZddlmZddlmZmZmZGdd�dej�ZdS)�N)�ViTMAEForPreTraining�3AutoConfig�AutoImageProcessorcs�eZdZd�fdd�	Zdd�Zdd�Ze��d	d4��Ze	dd��Z5e	d
d��Ze	dd��Ze	dd��Z
e	dd��Ze	dd��Z�ZS)�MAEVisionTower�./cache_dirFcsZt���d|_||_||_|j|_t|dd�|_|s!|�	�dSt6j|j|jd�|_dS)NF�mm_vision_select_feature�patch��	cache_dir)
�super�__init__�	is_loadedr7�vision_tower_name�mm_vision_select_layer�select_layer�getattr�select_feature�8load_modelr�from_pretrained�cfg_only)�self�vision_tower�argsr9�10delay_load��	__class__��N/scc_cephfs/yy/lb/LLaVA-Video-YY/llava/model/multimodal_encoder/mae_encoder.pyrs11zMAEVisionTower.__init__cCsDtj|j|jd�|_tj|j|jd�}|j|_|j�d�d|_	dS)Nr	FT)12rrrr13�image_processorr�vitr�requires_grad_r
)rrrrrrs1415zMAEVisionTower.load_modelcCsP|j|j}|jdkr|dd�dd�f}|S|jdkr |}|Std|j����)Nr��	cls_patchzUnexpected select feature: )�
hidden_statesrr�16ValueError)r�image_forward_outs�image_featuresrrr�feature_selects1718��zMAEVisionTower.feature_selectcCs�t|�tur.g}|D]!}|j|j|j|jd��d�dd�}|�|��|j�}|�|�q19|S|j|j|j|jd�dd�}|�|��|j�}|S)N��device�dtyperT)�output_hidden_states)	�type�listr�tor)r*�	unsqueezer'�append)r�imagesr&�image�image_forward_out�
image_featurer%rrr�forward)s"�zMAEVisionTower.forwardcCstjd|j|j|jd�S)Nr!r()�torch�zeros�hidden_sizer)r*�rrrr�
dummy_feature7szMAEVisionTower.dummy_featurecC�|jjS�N)rr*r9rrrr*;�zMAEVisionTower.dtypecCr;r<)rr)r9rrrr)?r=zMAEVisionTower.devicecCs|jr|jjS|jSr<)r
r�configrr9rrrr>CszMAEVisionTower.configcCr;r<)r>r8r9rrrr8Jr=zMAEVisionTower.hidden_sizecCs|jj|jjdS)N�)r>�20image_size�21patch_sizer9rrr�num_patchesNszMAEVisionTower.num_patches)rF)�__name__�22__module__�__qualname__rrr'r6�no_gradr5�propertyr:r*r)r>r8rB�
__classcell__rrrrrs$23
2425262728r)	r6�torch.nn�nn�transformersrrr�Modulerrrrr�<module>s