当前位置: 首页 > article >正文

深度学习篇---ViT

ViT是Vision Transformer的缩写是一种将 Transformer 架构从自然语言处理NLP迁移到计算机视觉CV领域的深度学习模型。它由 Google Brain 团队在 2020 年提出论文《An Image is Worth 16x16 Words》颠覆了长期以来 CNN卷积神经网络主导视觉任务的传统。一句话ViT 把图像切成一个个小方块Patch当成“单词”送给 Transformer 去理解就像 GPT 处理文本一样。一、ViT 的核心原理与 CNN 的根本区别1.1 CNN 的做法传统方法通过卷积核滑动窗口提取局部特征边缘、纹理、简单形状多层堆叠后感受野逐渐扩大最终看到全局归纳偏置假设邻近像素相关性高局部性1.2 ViT 的做法革命性变化关键突破完全抛弃卷积没有卷积核、没有池化、没有下采样全局感受野从第一层开始每个 Patch 可以“看到”所有其他 Patch 的关系依赖大规模预训练需要在 JFT-300M3 亿张图或 ImageNet-21K1400 万张上预训练才能超越 CNN二、ViT 的优势 vs 劣势维度ViTCNN如 ResNet、EfficientNet归纳偏置几乎没有纯数据驱动强局部性、平移不变性小数据集表现❌ 差容易过拟合✅ 好大数据集表现✅ 超越 CNNImageNet 88.5%→90.9%一般到达瓶颈计算复杂度O(N²)N 是 Patch 数量224x224 切 16x16 时 N196O(K²×H×W)K 是卷积核大小可解释性注意力图可可视化特征图较难解释参数量大ViT-Base 86MViT-Large 307M中等ResNet50 25M对遮挡的鲁棒性更强全局依赖较弱依赖局部纹理关键结论数据量决定选择—— 百万级图像用 CNN千万级图像用 ViT 或混合架构。三、ViT 在边缘计算Jetson上的挑战3.1 为什么 ViT 比 CNN 更难跑在 Orin Nano/NX 上瓶颈说明ViT 的影响CNN 的情况内存带宽自注意力的矩阵乘法需要频繁读取 Q、K、V极高1024x1024 的注意力矩阵中等卷积权重重用计算量FLOPsViT-B/16 处理 224x224~17 GFLOPsResNet50 ~4 GFLOPs内存占用存储中间注意力矩阵224x224 时约 196x19638K 个元素但大图512x512时飙升到 1024x10241M卷积层内存占用平稳算子支持需要高效实现 Softmax、LayerNorm、GELUJetson 的 TensorRT 支持较好从 8.0 开始非常成熟3.2 实际性能对比Jetson Orin NX 上实测模型输入尺寸参数量FLOPs推理 FPSFP16TensorRTResNet50224x22425M4 GFLOPs~1000 FPSEfficientNet-B3300x30012M1.8 GFLOPs~600 FPSViT-B/16224x22486M17 GFLOPs~65 FPSViT-L/16224x224307M60 GFLOPs~18 FPSSwin-T224x22428M4.5 GFLOPs~220 FPSSwin-TShifted Window Transformer是一种层级 ViT计算复杂度降为 O(N)更适合边缘设备。四、ViT 的变体更适合 Jetson 的版本模型创新点优势适合场景Swin Transformer窗口注意力 层级结构线性复杂度可做通用骨干目标检测、分割媲美 CNN 速度MobileViT轻量卷积 Transformer 混合参数量小2-6M适合移动端手机、无人机实时推理EfficientViT多尺度注意力 硬件友好设计在 ARM 上加速明显Jetson Nano / 树莓派Compact ViT蒸馏 剪枝ViT-B 压缩 10 倍精度不降小众任务、原型验证在 Jetson Orin 系列上优先推荐 Swin-T它比 ViT-B 快 3-4 倍精度相当而且支持 TensorRT 深度优化。五、在 Jetson 上部署 ViT 的实战建议5.1 什么时候必须用 ViT而不是 CNN任务需要全局上下文理解如 3D 姿态估计、全景分割、视觉问答你的训练数据量超过 1 亿张图如自动驾驶的原始采集数据输入图像尺寸巨大如 1024x1024 遥感图CNN 的感受野不够5.2 什么时候不要用 ViT摄像头是 IMX219800 万像素且目标很小如零件缺陷、人脸关键点推理帧率要求 100 FPSJetson 上跑 ViT 很难模型需要频繁更新或快速迭代ViT 训练成本高5.3 混合策略CNN 做特征提取ViT 做关系建模# 示例先走 EfficientNet 提取关键点再用 Tiny ViT 做时序注意力 1. 每帧图像 → EfficientNet-B0 → 512 维特征向量 2. 堆叠 16 帧的特征 → 16x512 → 小 ViT4 层→ 动作分类这种方案在 Orin NX 上可达 200 FPS。六、一句话总结 ViTViT 是计算机视觉的“GPT 时刻”它证明 Transformer 不需要卷积也能看懂图像但代价是需要巨大算力和数据。在 Jetson Orin NX 上ViT 勉强可用100 FPS而 Orin Nano 更适合它的轻量变体 Swin-T如果是 IMX219 做实时检测CNN 依然是最好的选择。

相关文章:

深度学习篇---ViT

ViT 是 Vision Transformer 的缩写,是一种将 Transformer 架构从自然语言处理(NLP)迁移到计算机视觉(CV)领域的深度学习模型。它由 Google Brain 团队在 2020 年提出(论文《An Image is Worth 16x16 Words》…...

100+中文词向量完全指南:如何高效使用预训练模型提升NLP任务性能

100中文词向量完全指南:如何高效使用预训练模型提升NLP任务性能 【免费下载链接】Chinese-Word-Vectors 100 Chinese Word Vectors 上百种预训练中文词向量 项目地址: https://gitcode.com/gh_mirrors/ch/Chinese-Word-Vectors Chinese Word Vectors项目提供…...

Cursor智能体开发:能力概述

计算机操作 每个 cloud agent 都在自己隔离的虚拟机中运行,并配备完整的桌面环境。这些 Agent 可以使用鼠标和键盘控制桌面和浏览器,使它们能够像人类开发者一样与自己构建的软件交互。 这意味着 Agent 可以启动开发服务器,在浏览器中打开应…...

geojson.io 数据验证与修复:确保你的GeoJSON文件完美无缺

geojson.io 数据验证与修复:确保你的GeoJSON文件完美无缺 【免费下载链接】geojson.io A quick, simple tool for creating, viewing, and sharing spatial data 项目地址: https://gitcode.com/gh_mirrors/ge/geojson.io GeoJSON作为一种轻量级的空间数据交…...

5个秘诀快速掌握ComfyUI图像增强插件:Impact Pack终极使用指南

5个秘诀快速掌握ComfyUI图像增强插件:Impact Pack终极使用指南 【免费下载链接】ComfyUI-Impact-Pack Custom nodes pack for ComfyUI This custom node helps to conveniently enhance images through Detector, Detailer, Upscaler, Pipe, and more. 项目地址: …...

向量范数在机器学习中的应用与优化策略

1. 向量范数在机器学习中的基础地位第一次接触机器学习中的优化问题时,我盯着损失函数求导公式里那个神秘的||w||符号发呆了半小时。后来才明白,这个双竖线标记代表着向量范数(Vector Norm)——它不仅是线性代数中的基础概念&…...

别再让服务器“跑偏”了:手把手教你排查和优化Linux下的NUMA性能问题

别再让服务器“跑偏”了:手把手教你排查和优化Linux下的NUMA性能问题 当数据库查询突然变慢,或是虚拟化平台出现性能抖动时,很多工程师会习惯性地检查CPU负载和内存使用率,却忽略了一个潜在的"性能杀手"——NUMA架构下的…...

评论系统实现详解:在React Native中构建Dribbble作品评论区

评论系统实现详解:在React Native中构建Dribbble作品评论区 【免费下载链接】react-native-dribbble-app Dribbble app built with React Native 项目地址: https://gitcode.com/gh_mirrors/re/react-native-dribbble-app 在React Native应用开发中&#xff…...

别再死记硬背了!用银行1104报表和反洗钱场景,一次搞懂数仓分层与拉链表设计

从银行监管实战出发:用1104报表与反洗钱案例解析数仓分层与拉链表设计 每次看到新入行的数据工程师对着数仓理论教材死记硬背,我都会想起自己第一次处理银行监管报送数据时的狼狈。那是一个周五的下午,风控部门突然要求提供过去三年所有可疑交…...

每日安全情报报告 · 2026-05-01

每日安全情报报告 2026-05-01 报告日期:2026年5月1日(劳动节)|风险摘要:今日披露多个正在被野外积极利用的高危漏洞,含cPanel百万级托管实例零日、Linux内核全系提权、Windows Shell APT28在野利用链&…...

不止于CRC:深入聊聊微信小程序里处理文本编码的那些事儿(TextEncoder平替方案盘点)

微信小程序文本编码处理实战:从标准缺失到工程化解决方案 微信小程序的JavaScript运行环境与标准浏览器环境存在诸多差异,其中对Web标准API的支持不完整是最令开发者头疼的问题之一。当我们需要在小程序中处理复杂的文本编码转换时,突然发现T…...

【MySQL | 第十一篇】InnoDB引擎

目录 一、InnoDB的逻辑存储结构 二、InnoDB的架构 1.内存架构 三、InnoDB的事务原理 1.redo log 2.undo log 四、MVCC(多版本并发控制) 1.基本概念 2.MVCC中的三个隐式字段 3.undo log版本链 4.readView 一、InnoDB的逻辑存储结构 表空间&…...

Boss-Key:一键隐藏窗口的终极隐私保护解决方案

Boss-Key:一键隐藏窗口的终极隐私保护解决方案 【免费下载链接】Boss-Key 老板来了?快用Boss-Key老板键一键隐藏静音当前窗口!上班摸鱼必备神器 项目地址: https://gitcode.com/gh_mirrors/bo/Boss-Key 在现代办公环境中,保…...

Bili2text:3步完成B站视频转文字的高效解决方案

Bili2text:3步完成B站视频转文字的高效解决方案 【免费下载链接】bili2text Bilibili视频转文字,一步到位,输入链接即可使用 项目地址: https://gitcode.com/gh_mirrors/bi/bili2text 在信息获取日益依赖视频内容的今天,Bi…...

Krita-AI-Diffusion:如何通过中文本地化技术让全球用户无障碍使用AI绘画插件

Krita-AI-Diffusion:如何通过中文本地化技术让全球用户无障碍使用AI绘画插件 【免费下载链接】krita-ai-diffusion Streamlined interface for generating images with AI in Krita. Inpaint and outpaint with optional text prompt, no tweaking required. 项目…...

DataScienceR项目实战:Facebook评论提取与社交数据分析

DataScienceR项目实战:Facebook评论提取与社交数据分析 【免费下载链接】DataScienceR a curated list of R tutorials for Data Science, NLP and Machine Learning 项目地址: https://gitcode.com/gh_mirrors/da/DataScienceR DataScienceR是一个精心策划…...

3D高斯散射技术与视觉幻觉攻击原理详解

1. 3D高斯散射技术基础与视觉幻觉攻击原理3D高斯散射(3D Gaussian Splatting,简称3DGS)是近年来计算机视觉领域突破性的三维场景表示方法。与传统的体素或网格表示不同,3DGS通过数万到数百万个各向异性的高斯分布点云来表征场景几…...

SST(固态变压器)设计核心参数与方案选型表

设计关键点核心场景 / 需求推荐方案 / 关键参数拓扑结构中高压(≥10 kV)应用三级拓扑(AC/DC 隔离 DC/DC 可选 DC/AC)低压小功率应用两级矩阵拓扑隔离级拓扑功率>50 kW/800 V 母线(电池 / 数据中心&#x…...

Qt布局实战:用QSplitter和QSpacer打造一个可拖拽分割的仿IDE界面

Qt布局实战:用QSplitter和QSpacer打造一个可拖拽分割的仿IDE界面 在桌面应用开发中,界面布局的灵活性和用户体验往往决定了产品的专业程度。对于需要频繁切换视图的开发工具(如IDE),可拖拽分割的面板设计能极大提升工作…...

Node.js二维码生成终极指南:使用node-qrcode快速创建个性化二维码

Node.js二维码生成终极指南:使用node-qrcode快速创建个性化二维码 【免费下载链接】node-qrcode qr code generator 项目地址: https://gitcode.com/gh_mirrors/no/node-qrcode 在数字化时代,二维码已成为信息传递的重要桥梁。node-qrcode作为一款…...

Vue项目里给Element UI的el-tabs加个丝滑的左右滑动动画(附完整代码)

为Element UI的el-tabs注入丝滑左右滑动动画的实战指南 在VueElement UI的中后台开发中,el-tabs组件作为高频使用的导航控件,其默认的标签切换效果往往显得生硬呆板。本文将带你从零实现一个无侵入式的动画增强方案,只需三步即可让静态Tab切换…...

Boss-Key老板键:Windows窗口隐私保护的终极解决方案

Boss-Key老板键:Windows窗口隐私保护的终极解决方案 【免费下载链接】Boss-Key 老板来了?快用Boss-Key老板键一键隐藏静音当前窗口!上班摸鱼必备神器 项目地址: https://gitcode.com/gh_mirrors/bo/Boss-Key 在当今快节奏的工作环境中…...

C++ 选择 引用传递还是指针传递

在C编程中,选择引用传递(pass-by-reference)还是指针传递(pass-by-pointer)取决于具体的需求和上下文。下面是一些关于它们各自特点和适用场景的分析:总的来说,除非特殊需求(如需要表…...

【C++篇】类与对象:从面向过程到面向对象的跨越

前言 大家好,我是“我想吃余”,很高兴你能和我一起进入到C的学习中,我会将我的学习过程中的宝贵经验不遗余力的输入到文章中,希望可以帮助到你的学习。本文涵盖了从面向过程与面向对象的区别,到类的定义、访问限定符、…...

【C++】第六节—内存管理

1. C/C内存分配 程序运行过程中内存分区域,见下: 现在我们必须要清楚,写一个程序,程序里面的变量都放在我们刚才介绍的那个区域呢?见下题目(面试题,面试会考这样的题,那可得好好学清…...

告别手动水印:semi-utils如何让每张照片自动拥有专业标识

告别手动水印:semi-utils如何让每张照片自动拥有专业标识 【免费下载链接】semi-utils 一个批量添加相机机型和拍摄参数的工具,后续「可能」添加其他功能。 项目地址: https://gitcode.com/gh_mirrors/se/semi-utils 在摄影创作中,你是…...

长期项目使用Taotoken的月度账单与用量分析体验

长期项目使用Taotoken的月度账单与用量分析体验 1. 项目背景与Taotoken接入 我们的项目组在过去六个月中持续使用Taotoken平台进行AI原型开发。作为一个需要频繁调用不同大模型API的长期项目,我们选择了Taotoken作为统一接入层,主要基于其多模型聚合能…...

5分钟实战:用ArchivePasswordTestTool找回遗忘的压缩包密码

5分钟实战:用ArchivePasswordTestTool找回遗忘的压缩包密码 【免费下载链接】ArchivePasswordTestTool 利用7zip测试压缩包的功能 对加密压缩包进行自动化测试密码 项目地址: https://gitcode.com/gh_mirrors/ar/ArchivePasswordTestTool 你是否曾经面对着一…...

手把手教你用iDriver搞定华为服务器Win16驱动:从下载、校验到静默安装一条龙

华为服务器Windows Server 2016驱动管理全攻略:iDriver高效实践指南 在华为FusionServer系列服务器上部署Windows Server 2016时,驱动管理往往是系统管理员面临的第一个技术门槛。不同于消费级PC的即插即用体验,企业级服务器的硬件组件需要精…...

从‘Building kernel modules’报错聊起:Linux内核模块与NVIDIA驱动的‘爱恨情仇’

从内核模块构建失败看NVIDIA驱动的技术困境与解决方案 当你在Linux系统上安装NVIDIA显卡驱动时,最令人头疼的莫过于看到"Building kernel modules"报错。这个看似简单的错误背后,隐藏着Linux内核与闭源驱动之间复杂的技术博弈。本文将带你深入…...