vit-pytorch

用纯 Transformer 做图像分类,代码简洁易上手,快速复现 SOTA 效果。

vit-pytorch 是一个基于 PyTorch 实现的 Vision Transformer(ViT)模型库,由 Phil Wang(lucidrains)开发。它用简洁的代码实现了 ViT 论文中的核心思想,即通过纯 Transformer 编码器处理图像分类任务,无需卷积神经网络。该项目解决了传统 CNN 在图像分类中依赖局部感受野的问题,提供了一种全局注意力机制来捕捉图像中的长距离依赖关系。核心能力包括:完整的 ViT 模型实现、支持多种变体(如 DeiT、CaiT、DeepViT 等)、灵活的 patch 嵌入和位置编码、易于扩展的模块化设计。代码风格清晰,注释详尽,适合研究者和开发者快速理解 Transformer 在视觉领域的应用。项目在 GitHub 上拥有超过 2.5 万星标,是计算机视觉领域最流行的 ViT 参考实现之一。

开源 free 计算机视觉
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 25520
维护状态 活跃
是否开源
定价模式 free

项目数据

分类计算机视觉
开发团队lucidrains
所属国家
官网地址
定价模式free
价格说明开源项目,MIT许可证,完全免费,无付费版本。
访问状态
是否开源
开源协议MIT
主要语言Python
技术栈/模型artificial-intelligence,attention-mechanism,computer-vision,image-classification,transformers
GitHub 星标★ 25520
30天Star增速
HF 下载量
上线时间2020-10-03 00:00:00
最近更新2026-09-22 00:00:00
维护状态活跃
中文支持
访问方式
移动端支持
综合评分
收录时间2026-08-10
浏览次数7

使用教程

难度:入门 约 10 分钟 部署方式:库/依赖 4 步

环境要求

  • 可用的 Python 环境(README 示例为 Python 代码)
  • 已安装 PyTorch(示例代码中有 import torch)
  • 可访问 PyPI 的 pip 网络环境

安装与启动步骤

  1. 1安装 vit-pytorch

    使用 pip 从 PyPI 安装官方发布的 vit-pytorch 包,建议在虚拟环境中执行。

    pip install vit-pytorch
  2. 2确认 PyTorch 环境

    README 示例依赖 torch,安装前请确保本机已能正常 import torch(README 未给出 PyTorch 安装命令)。

  3. 3编写 ViT 示例脚本

    把 README 的 Usage 示例保存为 demo.py,按需修改 image_size、patch_size、num_classes 等参数。

    import torch
    from vit_pytorch import ViT
    
    v = ViT(
        image_size = 256,
        patch_size = 32,
        num_classes = 1000,
        dim = 1024,
        depth = 6,
        heads = 16,
        mlp_dim = 2048,
        dropout = 0.1,
        emb_dropout = 0.1
    )
    
    img = torch.randn(1, 3, 256, 256)
    
    preds = v(img) # (1, 1000)
  4. 4运行示例脚本

    在保存 demo.py 的目录下执行脚本,观察是否成功输出形状为 (1, 1000) 的预测张量。

    python demo.py

关键配置

配置项必填说明示例
image_size输入图像的长宽尺寸256
patch_size切分图像时每个 patch 的边长32
num_classes图像分类的类别数量,决定输出维度1000
dimTransformer 隐层特征维度1024
depthTransformer 编码器的层数6
heads多头注意力机制的头数16

如何确认成功

运行 demo.py 后无报错,且 preds 的形状输出为 (1, 1000),与 num_classes 一致。

常见问题

Q:没有安装 PyTorch 可以直接用吗?

A:不可以。README 示例第一行就 import torch,需先自行准备好可用的 PyTorch 环境,再安装 vit-pytorch。

Q:如何修改处理不同尺寸的图像?

A:调整 ViT 初始化时的 image_size 参数,示例里为 256,输入张量形状需与之一致,如 (1, 3, 256, 256)。

Q:输出类别数由哪个参数决定?

A:由 num_classes 决定,示例设为 1000,因此输出 preds 的形状为 (1, 1000)。

Q:除了基础 ViT,还支持哪些变体?

A:README 目录列出了 DeiT、CaiT、DeepViT、CrossViT、MaxViT、MobileViT 等多种变体,可查看对应章节。

注意事项

  • README 只提供 pip 安装与推理示例,未给出训练、数据集和预训练权重说明。
  • 示例中的参数值仅作演示,实际使用时需按自己的图像尺寸和类别数调整。
  • 更多模型变体的用法请参考 README 目录中对应的小节。

核心亮点

  • 代码简洁模块化,每个组件独立清晰,便于学习和二次开发
  • 支持多种 ViT 变体(DeiT、CaiT、DeepViT 等),覆盖前沿研究
  • 文档和示例丰富,附带论文链接和详细注释,上手门槛低

不足之处

  • 仅提供模型实现,不包含训练脚本和预训练权重,需自行训练
  • 对大规模数据集训练效率较低,需配合分布式等优化手段

适用场景

  • 学术研究:快速实验 ViT 架构变体,验证新想法
  • 教学演示:讲解 Transformer 在视觉任务中的原理
  • 模型对比:在自定义数据集上对比 ViT 与 CNN 的性能

替代项目

timm、huggingface/transformers、pytorch-image-models

项目介绍

vit-pytorch 是计算机视觉领域的开源项目,由 lucidrains 开发,2020 年首次发布。

在全站 13,014 个收录项目中,它的 GitHub 星标数(25,520)位列前 2%,在计算机视觉分类的 446 个项目里位列前 3%。

近 44 天,它的 GitHub 星标从 25,473 增加到 25,520,净增 47。

项目目前处于活跃维护状态,最近一次代码更新于 2026-09-22。MIT许可证,完全免费,无付费版本。

它主要面向的使用场景是:学术研究:快速实验ViT架构变体,验证新想法。同类可对比的替代方案包括 timm、huggingface/transformers、pytorch-image-models。

上一篇:mediapipe

下一篇:vision

同类项目推荐

modlens 开源

给纯文本编码代理装上眼睛,粘贴图片即刻获得结构化视觉证据。

The first vision plugin for DeepSeek Harness, and the vision bridge for every text-o···

★ 4019 2026-08-19
opencv 开源

开箱即用的视觉算法库,搞定图像视频处理与识别

Open Source Computer Vision Library

★ 90930 2026-08-10
OpenCVTutorials 开源

中文 OpenCV 教程,从入门到实战,边看边跑代码

OpenCV-Python4.1 中文文档

★ 1430 2026-08-20
DEIMv2 开源

用DINOv3做实时检测,又快又准,直接落地。

[DEIMv2] Real Time Object Detection Meets DINOv3

★ 2046 2026-08-14