CoolFace
Apppublic

XaviXva/Video-LLaVA

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

2^I7e�*�@s�ddlZddlmZddlmZddlmZddlmZddlm	Z	ddl3mZdd	lm
Z
dd4lmZddlmZddlmZdd
lmZddlmZddlmZddlmZddlmZddlmZddl m!Z!ddl"m#Z#ddl$m%Z%ddl&m'Z'ddl(m)Z)ddl*m+Z+e%ee
eed�Z,e'eeeed�Z-ee#ee+ed�Z.Gdd�dej/�Z0dd�Z1Gdd �d ej/�Z2Gd!d"�d"ej/�Z3Gd#d$�d$ej/�Z4dS)%�N)�nn)�5AutoConfig�)�LanguageBindImageConfig)�LanguageBindImage)�LanguageBindImageTokenizer)�LanguageBindImageProcessor)�LanguageBindVideoConfig)�LanguageBindVideo)�LanguageBindVideoTokenizer)�LanguageBindVideoProcessor)�LanguageBindDepthConfig)�LanguageBindDepth)�LanguageBindDepthTokenizer)�LanguageBindDepthProcessor)�LanguageBindAudioConfig)�LanguageBindAudio)�LanguageBindAudioTokenizer)�LanguageBindAudioProcessor)�LanguageBindThermalConfig)�LanguageBindThermal)�LanguageBindThermalTokenizer)�LanguageBindThermalProcessor��thermal�image�video�depth�audio)rrrrrcs&eZdZd�fdd�	Zdd�Z�ZS)	�LanguageBindrT�./cache_dircs�tt|���||_i|_i|_i|_i|_|D]*}d|����}t	|j6||d�}|j|j|<|j|j|<|j
|j|<|j|j|<q|j|jd<|j|jd<t�|j�|_t�|j�|_dS)NzLanguageBind/LanguageBind_��	cache_dir�language)�superr�__init__�use_temp�modality_encoder�
modality_proj�modality_scaleZmodality_config�7capitalize�8model_dict�from_pretrained�vision_model�visual_projection�logit_scale�config�9text_model�text_projectionr�10ModuleDict)�selfZ	clip_typer&r"�cZpretrained_ckpt�model��	__class__��FD:\LLaVA-Video\llava\model\multimodal_encoder\languagebind\__init__.pyr%7s"zLanguageBind.__init__cCs|i}|��D]5\}}|j|di|��d}|j||�}||jdddd�}|jr7|dkr7||j|��}|||<q|S)Nr������T)�p�dim�keepdimr#r9)�itemsr'r(�normr&r)�exp)r4�inputs�outputs�key�valuer9r9r:�forwardKs11zLanguageBind.forward)rTr ��__name__�12__module__�__qualname__r%rG�
__classcell__r9r9r7r:r6srcs�fdd�|��D�}|S)Ncsi|]13\}}||����qSr9)�to)�.0�k�v��devicer9r:�14<dictcomp>Xszto_device.<locals>.<dictcomp>)r@)�xrRZout_dictr9rQr:�	to_deviceWsrUc�eZdZd�fdd�	Zdd�Zdd�Ze��d	d15��Ze	dd��Z16e	d
d��Ze	dd��Ze	dd��Z
e	dd��Ze	dd��Z�ZS)�LanguageBindImageTowerFr c�Zt���d|_||_|j|_t|dd�|_||_|s!|�	�dSt17j|j|jd�|_dS�NF�mm_vision_select_feature�patchr!)
r$r%�	is_loaded�image_tower_name�mm_vision_select_layer�select_layer�getattr�select_featurer"�18load_modelrr,�cfg_only)r4�image_tower�args�19delay_loadr"r7r9r:r%_�20zLanguageBindImageTower.__init__cCs<tj|j|jd�}|j|_|j�d�t|j�|_	d|_21dS�Nr!FT)rr,r]r"r-rd�requires_grad_rr0�image_processorr\�r4r6r9r9r:rbps2223z!LanguageBindImageTower.load_modelcCsP|j|j}|jdkr|dd�dd�f}|S|jdkr |}|Std|j����)Nr[r�	cls_patch�Unexpected select feature: )�
hidden_statesr_ra�24ValueError)r4�image_forward_outs�image_featuresr9r9r:�feature_selectys2526��z%LanguageBindImageTower.feature_selectcC�t|�tur.g}|D]!}|j|j|j|jd��d�dd�}|�|��|j�}|�|�q27|S|j|j|j|jd�dd�}|�|��|j�}|S�N�rR�dtyperT)�output_hidden_states)	�type�listrdrMrRrv�	unsqueezerr�append)r4�imagesrqr�image_forward_out�
image_featurerpr9r9r:rG�s"�zLanguageBindImageTower.forwardcC�tjd|j|j|jd�S�Nrru��torch�zeros�hidden_sizerRrv�r4r9r9r:�
dummy_feature��z$LanguageBindImageTower.dummy_featurecC�|jjjjS�N)rd�28embeddings�class_embeddingrvr�r9r9r:rv��zLanguageBindImageTower.dtypecCr�r�)rdr�r�rRr�r9r9r:rR�r�zLanguageBindImageTower.devicecC�|jr|jjS|jSr�)r\rdr0rcr�r9r9r:r0��zLanguageBindImageTower.configcC�|jjSr��r0r�r�r9r9r:r���z"LanguageBindImageTower.hidden_sizecC�|jj|jjdS�Nr;�r0�29image_size�30patch_sizer�r9r9r:�num_patches��z"LanguageBindImageTower.num_patches�Fr �rIrJrKr%rbrrr��no_gradrG�propertyr�rvrRr0r�r�rLr9r9r7r:rW^s$	31 323334353637rWcs$eZdZ�fdd�Zdd�Z�ZS)�38temp_modelcstt|���dSr�)r$r�r%r�r7r9r:r%�sztemp_model.__init__cKst�dddd�S)N�r�i)r��randn)r4�kwargsr9r9r:rG�sztemp_model.forwardrHr9r9r7r:r��sr�crV)�LanguageBindVideoTowerFr crXrY)
r$r%r\�video_tower_namer^r_r`rar"rbr	r,rc)r4�video_towerrerfr"r7r9r:r%�rgzLanguageBindVideoTower.__init__cCs<tj|j|jd�}t|j�|_|j|_|j�	d�d|_39dSrh)r40r,r�r"rr0Zvideo_processorr-r�rir\rkr9r9r:rb�s4142z!LanguageBindVideoTower.load_modelcCs||j|j}|j\}}}}|jdkr(|dd�dd�dd�f}|�|d|�}|S|jdkr6|�|d|�}|Std|j����)Nr[rr<rlrm)rnr_�shapera�reshapero)r4�video_forward_outs�video_features�b�t�nr5r9r9r:rr�s4344��z%LanguageBindVideoTower.feature_selectcCrsrt)	rxryr�rMrRrvrzrrr{)r4�videosr�rZvideo_forward_outZ
video_featurer�r9r9r:rG�s"�zLanguageBindVideoTower.forwardcCrr�r�r�r9r9r:r��r�z$LanguageBindVideoTower.dummy_featurecCr�r�)r�r�r�rvr�r9r9r:rvr�zLanguageBindVideoTower.dtypecCr�r�)r�r�r�rRr�r9r9r:rRr�zLanguageBindVideoTower.devicecCr�r�)r\r�r0rcr�r9r9r:r0r�zLanguageBindVideoTower.configcCr�r�r�r�r9r9r:r�r�z"LanguageBindVideoTower.hidden_sizecCr�r�r�r�r9r9r:r�r�z"LanguageBindVideoTower.num_patchesr�r�r9r9r7r:r��s$454647484950r�)5r�r�transformersrZimage.configuration_imagerZimage.modeling_imagerZimage.tokenization_imagerZimage.processing_imagerZvideo.configuration_videor	Zvideo.modeling_videor51Zvideo.tokenization_videorZvideo.processing_videorZdepth.configuration_depthr
Zdepth.modeling_depthrZdepth.tokenization_depthrZdepth.processing_depthrZaudio.configuration_audiorZaudio.modeling_audiorZaudio.tokenization_audiorZaudio.processing_audiorZthermal.configuration_thermalrZthermal.modeling_thermalrZthermal.tokenization_thermalrZthermal.processing_thermalr�config_dictr+Ztransform_dict�ModulerrUrWr�r�r9r9r9r:�<module>s\���!Q