vit-large-patch16-224-in21k项目介绍
项目概述
vit-large-patch16-224-in21k是一个基于Vision Transformer (ViT)架构的大型视觉模型。这个模型在ImageNet-21k数据集上进行了预训练,该数据集包含了1400万张图像和21,843个类别。模型的输入图像分辨率为224x224像素。这个项目源于Dosovitskiy等人发表的论文《An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale》,并首次在Google Research的vision_transformer仓库中发布。
模型架构
ViT模型采用了类似BERT的Transformer编码器架构。它将输入图像划分为固定大小的patch(16x16像素),并对这些patch进行线性嵌入。模型还在序列开头添加了一个[CLS]标记,用于分类任务。此外,在将序列输入Transformer编码器层之前,还添加了绝对位置编码。
预训练过程
模型在TPUv3硬件(8核)上进行训练,批量大小为4096,学习率预热步数为10,000步。在训练过程中,研究人员发现对全局范数为1的梯度进行裁剪是有益的。预训练的图像分辨率为224x224像素。
模型用途
虽然这个模型可以直接用于图像嵌入,但它主要是为了在下游任务上进行微调。用户可以在预训练的编码器之上添加一个线性层,以适应特定的图像分类任务。通常,人们会在[CLS]标记的最后隐藏状态之上放置一个线性层,因为这个标记可以被视为整个图像的表示。
使用方法
使用这个模型非常简单。用户需要先导入必要的库,然后加载预训练的ViTImageProcessor和ViTModel。接下来,可以使用处理器对输入图像进行预处理,然后将处理后的输入传递给模型,即可获得输出。
局限性
目前,特征提取器和模型仅支持PyTorch框架。Tensorflow和JAX/FLAX的支持正在开发中,ViTFeatureExtractor的API可能会发生变化。
评估结果
对于多个图像分类基准的评估结果,用户可以参考原始论文中的表2和表5。值得注意的是,在微调过程中,使用更高的分辨率(384x384)可以获得最佳结果。当然,增加模型大小也会带来性能的提升。
通过这个项目,研究人员展示了Transformer架构在计算机视觉任务中的潜力,为未来的视觉模型研究开辟了新的方向。