GitHub 7.5k star量,各种视觉Transformer的PyTorch实现合集整理好了

简介: GitHub 7.5k star量,各种视觉Transformer的PyTorch实现合集整理好了

这个项目登上了今天的GitHub Trending。


近一两年,Transformer 跨界 CV 任务不再是什么新鲜事了。

自 2020 年 10 月谷歌提出 Vision Transformer (ViT) 以来,各式各样视觉 Transformer 开始在图像合成、点云处理、视觉 - 语言建模等领域大显身手。

之后,在 PyTorch 中实现 Vision Transformer 成为了研究热点。GitHub 中也出现了很多优秀的项目,今天要介绍的就是其中之一。

该项目名为「vit-pytorch」,它是一个 Vision Transformer 实现,展示了一种在 PyTorch 中仅使用单个 transformer 编码器来实现视觉分类 SOTA 结果的简单方法。

项目当前的 star 量已经达到了 7.5k,创建者为 Phil Wang,ta 在 GitHub 上有 147 个资源库。


项目地址:https://github.com/lucidrains/vit-pytorch

项目作者还提供了一段动图展示:



项目介绍

首先来看 Vision Transformer-PyTorch 的安装、使用、参数、蒸馏等步骤。

第一步是安装:

$ pip install vit-pytorch


第二步是使用:


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)


第三步是所需参数,包括如下:

image_size:图像大小

patch_size:patch 数量

num_classes:分类类别的数量

dim:线性变换 nn.Linear(..., dim) 后输出张量的最后维

depth:Transformer 块的数量

heads:多头注意力层中头的数量

mlp_dim:MLP(前馈)层的维数

channels:图像通道的数量

dropout:Dropout rate

emb_dropout:嵌入 dropout rate

……


最后是蒸馏,采用的流程出自 Facebook AI 和索邦大学的论文《Training data-efficient image transformers & distillation through attention》。

论文地址:https://arxiv.org/pdf/2012.12877.pdf


从 ResNet50(或任何教师网络)蒸馏到 vision transformer 的代码如下:

import torchfrom torchvision.models import resnet50from vit_pytorch.distill import DistillableViT, DistillWrapperteacher = resnet50(pretrained = True)
v = DistillableViT(
    image_size = 256,
    patch_size = 32,
    num_classes = 1000,
    dim = 1024,
    depth = 6,
    heads = 8,
    mlp_dim = 2048,
    dropout = 0.1,
    emb_dropout = 0.1
)
distiller = DistillWrapper(
    student = v,
    teacher = teacher,
    temperature = 3,           # temperature of distillationalpha = 0.5,               # trade between main loss and distillation losshard = False               # whether to use soft or hard distillation
)
img = torch.randn(2, 3, 256, 256)labels = torch.randint(0, 1000, (2,))
loss = distiller(img, labels)loss.backward()
# after lots of training above ...pred = v(img) # (2, 1000)


除了 Vision Transformer 之外,该项目还提供了 Deep ViT、CaiT、Token-to-Token ViT、PiT 等其他 ViT 变体模型的 PyTorch 实现。


对 ViT 模型 PyTorch 实现感兴趣的读者可以参阅原项目。

相关文章
|
3月前
|
Apache 数据安全/隐私保护 Docker
【开源问答系统】GitHub 14.9k star 的开源问答引擎来了,三分钟搭建完成~~~
Apache Answer 是一款开源问答系统,助力团队将零散知识沉淀为结构化资产。支持 Docker 快速部署、插件扩展、权限控制与多语言,兼具高效搜索、投票排序与私有化部署能力,适用于技术社区、企业知识库与用户支持场景。
597 22
|
3月前
|
机器学习/深度学习 自然语言处理 PyTorch
Transformer自回归关键技术:掩码注意力原理与PyTorch完整实现
掩码注意力是生成模型的核心,通过上三角掩码限制模型仅关注当前及之前token,确保自回归因果性。相比BERT的双向注意力,它实现单向生成,是GPT等模型逐词预测的关键机制,核心仅需一步`masked_fill_`操作。
367 0
Transformer自回归关键技术:掩码注意力原理与PyTorch完整实现
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
编码器-解码器架构详解:Transformer如何在PyTorch中工作
本文深入解析Transformer架构,结合论文与PyTorch源码,详解编码器、解码器、位置编码及多头注意力机制的设计原理与实现细节,助你掌握大模型核心基础。建议点赞收藏,干货满满。
999 3
|
2月前
|
机器学习/深度学习 自然语言处理 监控
23_Transformer架构详解:从原理到PyTorch实现
Transformer架构自2017年Google发表的论文《Attention Is All You Need》中提出以来,彻底改变了深度学习特别是自然语言处理领域的格局。在短短几年内,Transformer已成为几乎所有现代大型语言模型(LLM)的基础架构,包括BERT、GPT系列、T5等革命性模型。与传统的RNN和LSTM相比,Transformer通过自注意力机制实现了并行化训练,极大提高了模型的训练效率和性能。
|
4月前
|
缓存 自然语言处理 JavaScript
Github 3k+ star,中后台管理系统框架,支持多款 UI 组件库,兼容PC、移动端!比商业系统还专业!!
Fantastic-admin/basic 是基于 Vue3 与 TypeScript 的中后台管理系统框架,支持多款 UI 组件库,如 Element Plus、Arco Design、Naive-UI 等。它提供完整的项目结构、权限控制、国际化、多级缓存标签页等功能,兼容 PC、平板及移动端,适合快速搭建企业级后台应用。框架具备高度可定制性,拥有 3k+ GitHub Star,生态完善,适合中小团队和个人开发者提升效率。
236 2
|
4月前
|
数据采集 人工智能 数据可视化
GitHub 15.8k star 狂涨 DeerFlow,AI + 搜索 + 报告输出一次搞定!
DeerFlow 是字节跳动开源的深度研究框架,集成语言模型、搜索爬虫与代码执行工具,支持自动化完成复杂研究任务并生成多模态报告。具备多智能体协作、强搜索能力、Python 数据分析及可视化、报告自动生成等功能,适用于学术研究、内容创作与企业分析,部署灵活,社区活跃。
440 2
|
4月前
|
JavaScript 安全 API
Github 2.2k star,揭秘高效开发利器!之前我还手搓,现在有它,直接起飞
FastMCP 是一个由 punkpeye 开发的 TypeScript 框架,旨在简化 MCP 服务器构建流程,助力 LLM 无缝连接工具与数据资源。它提供工具(Tool)、资源(Resource)、Prompt、传输方式等模块,支持 Schema 校验、CLI 调试、HTTP Streaming/SSE 等特性,解决开发者在 MCP 协议实现中的复杂性问题。具备轻量高效、部署灵活、生态兼容等优势,适合桌面客户端与 Web 服务集成,助力开发者快速实现业务逻辑。项目持续活跃维护,GitHub 已获 2.2k star。
193 1
|
4月前
|
人工智能 编解码 JSON
不看后悔!GitHub 开源 MultiTalk .8k star 强大的人语音+图像绑定项目
MultiTalk 是 GitHub 上的开源项目,具备音频驱动、多人对话视频生成功能。支持多路音频与图像绑定,实现高同步唇动与角色互动,适用于教学、虚拟人及短视频创作,已获 8k 星标。
416 0
|
4月前
|
数据挖掘 调度 开发工具
Github 2.3k star 太牛x,京东(JoyAgent‑JDGenie)这个开源项目来得太及时啦,端到端多智能体神器!!!
JoyAgent-JDGenie是京东开源的端到端产品级多智能体系统,支持自然语言生成报告、PPT、网页等内容,准确率达75.15%。具备开箱即用、多智能体协同、高扩展性及跨任务记忆能力,支持多种文件格式输出,部署灵活,不依赖私有云平台。适合企业自动化报告生成、数据分析与行业定制化应用,是高效、实用的开源AI工具。
829 0
|
4月前
|
安全 数据可视化 项目管理
精品,Github 5000+ star,小型研发团队必备商业开源项目
DooTask 是一款开源在线项目任务管理工具,具备文档协作、流程图、任务分发、IM沟通等功能,支持私有部署与数据加密,已在 GitHub 获得 5000+ 星标,适合中小团队提升协作效率。
252 0

推荐镜像

更多