AWT项目最佳实践教程
1. 项目介绍
AWT(Transferring Vision-Language Models via Augmentation, Weighting, and Transportation)是一个创新性的框架,用于将预训练的视觉语言模型(VLMs)迁移到下游任务。AWT通过增强、权重和迁移技术,显著提升了VLMs的零样本能力,并通过对多模态适配器的整合,在少量样本学习方面表现出色。AWT在零样本和少量样本的图像和视频任务中均创下新的基准记录,达到了最先进的性能水平。
2. 项目快速启动
环境搭建
首先,创建一个conda环境并激活:
conda create -y -n awt python=3.8
conda activate awt
接着,安装PyTorch和相关依赖:
conda install pytorch==2.0.0 torchvision==0.15.0 torchaudio==2.0.0 pytorch-cuda=11.8 -c pytorch -c nvidia
pip install -r requirements.txt
数据准备
请参考项目指南准备相应的数据集。对于图像数据集,可以参考CoOp和SuS-X指南;对于视频数据集,则参考Open-VCLIP指南。
零样本图像分类
切换到AWT_zero_shot
目录,设置数据路径,并执行以下步骤:
cd AWT_zero_shot
bash ./scripts/pre_extract.sh [dataset_name]
bash ./scripts/evaluate.sh [dataset_name]
其中[dataset_name]
可以是imagenet
, oxford_flowers
等。
少量样本图像分类
切换到AWT_few_shot/MM_Adapter
目录,执行以下命令进行训练和评估:
# 训练
bash scripts/awt/main.sh [dataset_name] vit_b16_1_2_4_shot [n_shot]
# 评估
bash scripts/awt/test.sh [dataset_name] [config_you_use] [n_shot]
其中[dataset_name]
在./configs/datasets/
中定义,[n_shot]
代表使用的样本数量。
3. 应用案例和最佳实践
- 零样本视频动作识别:将视频帧视为增强视图,使用预训练的Open-VCLIP提取特征,然后使用
AWT_zero_shot
中的脚本进行评估。 - 描述生成:采用两步骤数据集感知提示策略生成每个类的描述,首先生成查询,然后生成类描述。
4. 典型生态项目
AWT项目是基于多个开源项目构建的,包括CoOp、PLOT、TPT、Dassl和Open-VCLIP等。这些项目为AWT提供了坚实的基础,并促进了其快速发展。我们鼓励用户在探索AWT的同时,也关注这些上游项目的最新进展。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考