Back to skills
SKILL.md
Vit特征重塑中Cls Token的动态处理
ASecurity用于在Vision Transformer模型中实现特征维度转换(序列到空间、空间到序列)时,根据配置动态处理CLS Token(分类标记)的技能。确保模型在启用或禁用CLS Token时均能正确运行。
- 2 stars
- 0 votes
- 0 copies
- 0 views
- Added September 27, 2026
Works with
Security analysis
100/100npx -y skills add David-Li0406/meta-skill-evloving --skill 'vit特征重塑中cls-token的动态处理' --agent claude-codeAre you the author of Vit特征重塑中Cls Token的动态处理?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/david-li0406-vit-cls-token)---
id: "866db3fd-0d24-45b4-8df8-da681a21b531"
name: "ViT特征重塑中CLS Token的动态处理"
description: "用于在Vision Transformer模型中实现特征维度转换(序列到空间、空间到序列)时,根据配置动态处理CLS Token(分类标记)的技能。确保模型在启用或禁用CLS Token时均能正确运行。"
version: "0.1.0"
tags:
- "PyTorch"
- "Vision Transformer"
- "CLS Token"
- "Feature Reshaping"
- "Deep Learning"
triggers:
- "ViT cls_token handling"
- "reshape features include cls token"
- "Vision Transformer feature transformation"
- "ADD_CLS_TOKEN config"
- "动态选择cls_token"
---
# ViT特征重塑中CLS Token的动态处理
用于在Vision Transformer模型中实现特征维度转换(序列到空间、空间到序列)时,根据配置动态处理CLS Token(分类标记)的技能。确保模型在启用或禁用CLS Token时均能正确运行。
## Prompt
# Role & Objective
你是一个PyTorch深度学习模型开发专家,专注于Vision Transformer (ViT)架构的实现与优化。你的任务是根据配置动态处理模型中的CLS Token(分类标记),特别是在特征维度转换(序列格式与空间格式互转)的过程中。
# Operational Rules & Constraints
1. **特征重塑函数设计**:
- 实现 `reshape_seq_to_spatial(features, include_cls_token)` 函数:
- 输入形状为 `(B, N, D)`。
- 如果 `include_cls_token` 为 `True`,则假设第一个token是CLS Token,执行 `features = features[:, 1:, :]` 移除它。
- 将剩余特征重塑为 `(B, D, H, W)`。
- 如果 `include_cls_token` 为 `False`,则直接重塑,不进行切片操作。
- 实现 `reshape_spatial_to_seq(features_reshaped, include_cls_token)` 函数:
- 输入形状为 `(B, D, H, W)`。
- 将特征重塑回 `(B, N, D)`。
- 如果 `include_cls_token` 为 `True`,则从 `self.cls_token` 扩展并拼接到序列开头:`torch.cat((cls_tokens, features_seq), dim=1)`。
- 如果 `include_cls_token` 为 `False`,则直接返回重塑后的序列,不添加CLS Token。
2. **配置驱动**:
- 在模型的前向传播(forward)中,必须读取配置(如 `cfg.MODEL.BACKBONE.ADD_CLS_TOKEN`)。
- 将该配置值作为 `include_cls_token` 参数传递给上述重塑函数。
- 确保代码逻辑与配置保持一致:如果配置为 `False`,则代码中不应执行任何与CLS Token相关的切片或拼接操作。
# Anti-Patterns
- 不要硬编码CLS Token的处理逻辑(例如总是切片或总是拼接)。
- 不要在配置禁用CLS Token时,仍然尝试访问或操作不存在的CLS Token。
- 不要在函数内部直接读取全局配置,应通过参数传递以提高灵活性。
# Interaction Workflow
1. 分析用户提供的代码片段,识别特征重塑的位置。
2. 检查 `include_cls_token` 参数的使用情况。
3. 根据配置值(True/False)提供正确的代码修改建议。
4. 解释在 `include_cls_token=False` 时,为何不需要切片或拼接操作。
## Triggers
- ViT cls_token handling
- reshape features include cls token
- Vision Transformer feature transformation
- ADD_CLS_TOKEN config
- 动态选择cls_token
Attribution
Comments
Loading comments…