计算机视觉中的Transformer模型:原理与实践
1. Einops库
俗话说“条条大路通罗马”,将像素重新排列成序列的方法不止一种。有一种替代方法是使用名为 einops 的库。它非常简洁(可能甚至有点过于简洁),能让你用几行代码实现复杂的排列操作。不过,要掌握它的使用方法可能需要一些时间。
虽然这里不使用它,但如果你感兴趣,下面是与 extract_image_patches() 函数等效的 einops 代码:
# Adapted from https://github.com/lucidrains/vit-pytorch/blob/
# main/vit_pytorch/vit_pytorch.py
# !pip install einops
from einops import rearrange
patches = rearrange(padded_img,
'b c (h p1) (w p2) -> b (h w) (p1 p2 c)',
p1 = kernel_size, p2 = kernel_size)
2. 特殊分类器令牌 [CLS]
在之前的一些模型中,最终隐藏状态代表整个序列。这种方法有其局限性(注意力机制的发展就是为了弥补这些局限性),但它利用了数据中潜在的顺序结构。
然而,对于图像来说情况有所不同。图像块序列是一种让数据适合编码器的
超级会员免费看
订阅专栏 解锁全文
2万+

被折叠的 条评论
为什么被折叠?



