TiledTokenPositionalEmbedding¶
- class torchtune.models.clip.TiledTokenPositionalEmbedding(max_num_tiles: int, embed_dim: int, tile_size: int, patch_size: int)[source]¶
用于平铺图像的标记位置嵌入,每个平铺图像不同,每个标记也不同。
此模块中有两个位置嵌入:
local_token_positional_embedding: 每个tile相同,每个token不同。等同于
torchtune.models.clip._position_embeddings.TokenPositionalEmbedding,但是有门控。global_token_positional_embedding: 每个tile不同,每个token也不同。
请注意,tile 与 patch(token)不同。详情请查看
torchtune.modules.vision_transformer.VisionTransformer的文档。- Parameters:
- forward(x: Tensor, aspect_ratio: Tensor) Tensor[source]¶
- Parameters:
x (torch.Tensor) – 形状为 (bsz * n_imgs, n_tiles, n_tokens_per_tile, embed_dim) 的 torch.Tensor。
aspect_ratio (torch.Tensor) – 形状为 (bsz * n_imgs, 2) 的 torch.Tensor, 其中 aspect_ratio[k] 表示在 tile-cropping 之前批次中第 k 张图像的宽高比,例如 aspect_ratio[k] = (2,1)。
- Returns:
添加了位置嵌入的输入张量。
- Return type: