Shortcuts

TiledTokenPositionalEmbedding

class torchtune.models.clip.TiledTokenPositionalEmbedding(max_num_tiles: int, embed_dim: int, tile_size: int, patch_size: int)[source]

用于平铺图像的标记位置嵌入,每个平铺图像不同,每个标记也不同。

此模块中有两个位置嵌入:

请注意,tile 与 patch(token)不同。详情请查看 torchtune.modules.vision_transformer.VisionTransformer 的文档。

Parameters:
  • max_num_tiles (int) – 图像可以被分割成的最大瓦片数。

  • embed_dim (int) – 每个标记嵌入的维度。

  • tile_size (int) – 如果图像已经预先进行了瓦片裁剪,则为图像瓦片的大小。否则,为输入图像的大小。在这种情况下,函数会将您的图像视为单个瓦片。

  • patch_size (int) – 每个补丁的大小。用于将瓦片分割成补丁。 例如,对于patch_size=40,形状为(400, 400)的瓦片将有一个10x10的补丁网格, 每个补丁的形状为(40, 40)。

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:

torch.Tensor