Vision Transformer简介
Transformer模型的提出,极大地促进了自然语言处理模型的发展。由于具有计算效率和可扩展性,它已经能够训练具有超过100B参数的模型。
ViT模型主要应用于图像分类领域。
模型解析
Transformer模型基于Attention机制的编码器-解码器型结构,以下为该模型结构图:
其中Encoder与Decoder由许多结构组成,以下为其详细结构图 :
ViT模型的输入
在ViT模型中:通过将输入图像在每个channel上划分为1616个patch,这一步是通过卷积操作来完成的,卷积操作达到目的同时还可以进行一次而外的数据处理;再将每一个patch的矩阵拉伸成为一个一维向量,从而获得了近似词向量堆叠的效果。
输入图像在划分为patch之后,会经过pos_embedding 和 class_embedding两个过程。
ViT模型利用了Transformer模型在处理上下文语义时的优势,将图像转换为一种“变种词向量”然后进行处理。
模型训练与推理
需要设定损失函数,优化器,回调函数,接着再进行模型训练。通过模型输出可以查看当前训练的loss值和时间等指标。
模型验证过程主要用ImageFolderDataset接口来读取数据集;用CrossEntropySmooth接口来将损失函数实例化;用Model接口来编译模型。
总结
学习本案例我掌握了Multi-Head Attention,TransformerEncoder,pos_embedding等关键概念。