CoolFace
Apppublic

XaviXva/Video-LLaVA

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

2p�6e�3�@s>ddlZddlmZddlmZmZmZGdd�dej�ZdS)�N)�CLIPVisionModel�CLIPImageProcessor�CLIPVisionConfigcs�eZdZd�fdd�	Zdd�Zdd�Ze��dd	��Ze	d4d��Z5e	dd
��Ze	dd��Ze	dd��Z
e	dd��Ze	dd��Z�ZS)�CLIPVisionTowerFcsNt���d|_||_|j|_t|dd�|_|s|��dSt	�6|j�|_dS)NF�mm_vision_select_feature�patch)�super�__init__�	is_loaded�vision_tower_name�mm_vision_select_layer�select_layer�getattr�select_feature�7load_modelr�from_pretrained�cfg_only)�self�vision_tower�args�8delay_load��	__class__��O/scc_cephfs/yy/lb/LLaVA-Video-YY/llava/model/multimodal_encoder/clip_encoder.pyr	s9zCLIPVisionTower.__init__cCs2t�|j�|_t�|j�|_|j�d�d|_dS)NFT)rrrZimage_processorrr�requires_grad_r10�rrrrrs11zCLIPVisionTower.load_modelcCsP|j|j}|jdkr|dd�dd�f}|S|jdkr |}|Std|j����)Nr�Z	cls_patchzUnexpected select feature: )�
hidden_statesr
r�12ValueError)r�image_forward_outs�image_featuresrrr�feature_selects1314��zCLIPVisionTower.feature_selectcCs�t|�tur.g}|D]!}|j|j|j|jd��d�dd�}|�|��|j�}|�|�q15|S|j|j|j|jd�dd�}|�|��|j�}|S)N��device�dtyperT)�output_hidden_states)	�type�listr�tor$r%�	unsqueezer"�append)r�imagesr!�imageZimage_forward_outZ
image_featurer rrr�forward's"�zCLIPVisionTower.forwardcCstjd|j|j|jd�S)Nrr#)�torch�zeros�hidden_sizer$r%rrrr�
dummy_feature5szCLIPVisionTower.dummy_featurecC�|jjS�N)rr%rrrrr%9�zCLIPVisionTower.dtypecCr3r4)rr$rrrrr$=r5zCLIPVisionTower.devicecCs|jr|jjS|jSr4)r16r�configrrrrrr6AszCLIPVisionTower.configcCr3r4)r6r1rrrrr1Hr5zCLIPVisionTower.hidden_sizecCs|jj|jjdS)N�)r6Z17image_sizeZ18patch_sizerrrr�num_patchesLszCLIPVisionTower.num_patches)F)�__name__�19__module__�__qualname__r	rr"r/�no_gradr.�propertyr2r%r$r6r1r8�
__classcell__rrrrrs$20 21
2223242526r)	r/�torch.nn�nn�transformersrrr�Modulerrrrr�<module>s