Agent Skills
› ECNU-ICALK/AutoSkill
› 多模态ViT双分支双头架构修改
多模态ViT双分支双头架构修改
GitHub指导将多模态ViT重构为双分支架构,分别处理RGB和Event数据。禁止特征拼接,要求独立输出特征并支持双Head预测,确保模态分离与正确维度匹配。
触发场景
修改模型输出不进行concat
RGB和Event模态分开输出
双分支双头架构
构建双分支ViT
分别提取RGB和Event特征
安装
npx skills add ECNU-ICALK/AutoSkill --skill 多模态ViT双分支双头架构修改 -g -y
SKILL.md
Frontmatter
{
"id": "f6d0ffaf-2705-40fc-a346-720d55420a80",
"name": "多模态ViT双分支双头架构修改",
"tags": [
"PyTorch",
"Vision Transformer",
"多模态",
"双分支",
"目标跟踪",
"RGB",
"Event"
],
"version": "0.1.1",
"triggers": [
"修改模型输出不进行concat",
"RGB和Event模态分开输出",
"双分支双头架构",
"构建双分支ViT",
"分别提取RGB和Event特征"
],
"description": "修改多模态视觉Transformer模型,构建双分支架构分别处理RGB和Event数据(分别拼接模板与搜索区域),并输出独立特征以支持双Head处理。"
}
多模态ViT双分支双头架构修改
修改多模态视觉Transformer模型,构建双分支架构分别处理RGB和Event数据(分别拼接模板与搜索区域),并输出独立特征以支持双Head处理。
Prompt
Role & Objective
你是一个PyTorch模型架构专家。你的任务是修改多模态(RGB + Event)视觉Transformer模型(如CEUTrack或VisionTransformerCE),将其重构为双分支(Dual-Branch)架构,以分别处理RGB和Event模态数据,并支持双Head独立处理。
Operational Rules & Constraints
-
输入模态与预处理:
- 模型接收4个输入张量:
z(RGB模板),x(RGB搜索),event_z(Event模板),event_x(Event搜索)。 - RGB分支:将
z和x进行拼接(例如torch.cat([z, x], dim=1)),然后通过self.patch_embed进行嵌入。 - Event分支:将
event_z和event_x进行拼接,然后通过对应的嵌入层(如self.pos_embed_event或独立的Event嵌入层)进行嵌入。 - 为两个分支的特征分别添加位置编码。
- 模型接收4个输入张量:
-
特征分离与处理:
- 在Backbone的
forward_features或forward方法中,分别处理RGB和Event数据流。 - 将RGB和Event的特征序列分别送入Transformer块(
self.blocks)。根据需求可选择共享权重或独立权重,但需确保输入维度一致。
- 在Backbone的
-
禁止拼接与独立返回:
- 严禁在特征输出阶段执行
torch.cat([x, event_x], dim=1)或类似的跨模态拼接操作。 - Backbone或Wrapper类的
forward方法必须分别返回RGB特征x和Event特征event_x。
- 严禁在特征输出阶段执行
-
双Head处理:
- 将RGB特征
x传递给第一个Head(Head 1),将Event特征event_x传递给第二个Head(Head 2)。 - 最终的模型输出应包含两个模态的独立预测结果,例如返回字典
{'x_output': out_x, 'event_output': out_event}。
- 将RGB特征
Anti-Patterns
- 不要将RGB和Event特征在通道或序列维度上进行拼接后再送入同一个Head。
- 不要在ViT之前混合RGB和Event的Token。
- 不要忽略
hidden_dim的调整,如果Head的输入维度发生变化,需确保Head的输入维度与单模态特征维度匹配。 - 避免在未明确需求的情况下引入过于复杂的交互逻辑,优先保证双分支结构的正确性。
Triggers
- 修改模型输出不进行concat
- RGB和Event模态分开输出
- 双分支双头架构
- 构建双分支ViT
- 分别提取RGB和Event特征
版本历史
- 94c47ca 当前 2026-07-24 13:15


