Swin Transformer与Vision Transformer的不同设计

Swin Transformer与Vision Transformer的不同设计

图片分割

  • Swin使用一个卷积层进行分割,卷积层的滑动补偿等于核的尺寸,因此图片每个像素不会重复框选,卷积核数等于embedding编码长度,同时完成分割与掩码
  • Vision先老老实实地分割,并把每个patch的像素如(3, 16, 16)拉平,再接入mlp中转化为预定的embedding长度

cls_token

  • Swin不用cls_token,最后使用全局池化产生送入mlp中的向量
  • Vision可以使用cls_token,最后直接将cls_token提取出来送入mlp中,也可以选择不用

位置编码

  • Swin采用二维的相对位置编码,而且是在QK求完内积得到注意力分数之后作为偏置加在注意力分数上的,此后才做softmax处理。
  • Vision采用一维的绝对位置编码,在对图片切割为patches并embedding,再并上cls_token后进行一维绝对位置编码
  • Swin在在对图片切割为patches并embedding后,不适用cls_token,可选择添加绝对位置编码

attention层

  • Swin规定了头数与且QKV总的向量长度应与embdiing长度相等,因此每个头的QKV向量长度为embdiing长除以头数,经过多头自注意力后拼接各个头的V,得到的V向量的长度即为embedding长度,以此来保证embedding长度经过自注意力处理后不发生改变
  • Vision规定了头数和每个头的QKV向量长度,这样比较灵活,经过多头自注意力后拼接各个头的V,经过mlp将得到的V向量的长度转化为embedding长度,以此来保证embedding长度经过自注意力处理后不发生改变
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你好!对于将Swin Transformer替换Vision Transformer的问题,以下是我的回答: Swin Transformer是一个基于局部注意力机制的图像分类模型,它在处理大尺度图像时表现出色。与传统的Vision Transformer不同Swin Transformer引入了基于窗口分割的注意力机制,可以有效处理大尺度图像。 如果你想将Swin Transformer替换Vision Transformer,你可以按照以下步骤进行: 1. 确保你的数据集适合使用Swin TransformerSwin Transformer在处理大尺度图像时效果更好,因此如果你的数据集包含具有高分辨率的图像,那么考虑使用Swin Transformer可能会更合适。 2. 下载或实现Swin Transformer的代码。Swin Transformer的源代码和预训练模型可以在GitHub上找到,你可以下载并将其集成到你的项目中。 3. 调整模型架构和超参数。根据你的需求和数据集特点,调整Swin Transformer的模型架构和超参数。你可能需要做一些实验来找到最佳设置。 4. 重新训练或微调模型。根据你的数据集规模和训练目标,你可以选择从头训练一个Swin Transformer模型,或使用预训练的权重进行微调。 5. 验证和测试模型性能。在训练完成后,使用验证集评估模型的性能,并在测试集上进行最终的测试。根据结果进行调整和改进。 请注意,Swin TransformerVision Transformer在某些方面有所不同,因此在替换模型时,你可能需要重新评估和调整其他部分的代码,如数据预处理、损失函数和优化器等。 希望这些信息对你有帮助!如果你有其他问题,我会尽力回答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值