Llama3VisionProjectionHead¶
- class torchtune.models.llama3_2_vision.Llama3VisionProjectionHead(layers: Module, output: Module, num_hidden_inputs: int = 0)[source]¶
投影转换器,用于将预训练的冻结编码器 (CLIP) 的输出适配到预训练的解码器模型。例如,nn.Sequential(CLIP(), Llama3VisionProjectionHead())。
- 参数:
layers (nn.Module) – Transformer 解码器层
output (nn.Module) – 输出线性层。输入维度为 (num_hidden + 1) * encoder_dim,输出维度为 decoder_dim。
num_hidden_inputs (int) – 预期的隐藏状态输入数量
- forward(x: Tensor, hidden_states: Optional[List[Tensor]] = None) Tensor [source]¶
- 参数:
x (torch.Tensor) – 形状为 [b x i x t x e x d] 的输入张量
hidden_states (Optional[List[torch.Tensor]]) – 来自编码器的隐藏状态列表。每个隐藏状态的形状与 x 相同。
- 返回:
- 嵌入序列的输出张量 [b x s x d]
其中序列长度为 num_imgs*num_tiles+num_embeds
- 返回类型:
Tensor
- 张量形状的表示法
b: 批大小
i: 图像数量
t: 图块数量(其中单个图像被分成多个图块)
e: 每个图块的嵌入数量(例如,CLS 嵌入 + patch 嵌入等)
s: 由 i*t*e 计算的序列长度
d: 嵌入维度