为啥 timm 视觉变压器位置嵌入初始化为零?
Posted
技术标签:
【中文标题】为啥 timm 视觉变压器位置嵌入初始化为零?【英文标题】:Why is the timm visual transformer position embedding initializing to zeros?为什么 timm 视觉变压器位置嵌入初始化为零? 【发布时间】:2021-05-09 06:00:22 【问题描述】:我正在查看视觉转换器的timm
实现,对于位置嵌入,他正在用零初始化他的位置嵌入,如下所示:
self.pos_embed = nn.Parameter(torch.zeros(1, num_patches + 1, embed_dim))
请看这里: https://github.com/rwightman/pytorch-image-models/blob/master/timm/models/vision_transformer.py#L309
我不确定当稍后将其添加到补丁中时,这实际上是如何嵌入有关该位置的任何内容的?
x = x + self.pos_embed
感谢任何反馈。
【问题讨论】:
【参考方案1】:位置嵌入是包含在计算图中并在训练期间更新的参数。所以,如果你用零初始化也没关系;它们是在训练中学习的。
【讨论】:
以上是关于为啥 timm 视觉变压器位置嵌入初始化为零?的主要内容,如果未能解决你的问题,请参考以下文章