CVPR2022 | 在线Re-Param | OREPA让AI训练速度进一步加快,精度略胜RepVGG!(二)

简介: CVPR2022 | 在线Re-Param | OREPA让AI训练速度进一步加快,精度略胜RepVGG!(二)

4实验


4.1 消融实验

1、线性缩放层和优化多样性

image.png

图7

首先进行实验来验证核心思想,即所提出的线性缩放层与BN层起着相似的作用。根据3.4中的分析。文章展示了缩放层和BN层都能够多样化优化方向。为了验证这一点,作者可视化了图7中所有分支的分支级相似性。作者发现,缩放层的使用可以显著增加不同分支的多样性。

image.png

在表2中验证了这种多样性的有效性。以ResNet-18结构为例,这两种层(BN和线性缩放)带来了相似的性能增益(即0.42vs.0.40)。这有力地支持了本文的观点,即在重参化中,最重要的是缩放部分,而不是统计标准化部分。

2、各种线性化策略

本文作者尝试了各种尺度层的线性化策略。具体来说4种变体:

  • Vector:利用一个通道级向量,并沿着通道轴执行缩放操作。
  • Scalar:用一个标量来缩放整个特征图。
  • W/o scaling:删除分支级缩放层。
  • W/o post-addition BN:删除后BN层。

image.png

从表3中发现,无论是部署标量缩放层还是不部署缩放层,都会导致较差的结果。因此,选择向量缩放作为默认策略。

作者还研究了加法后BN层的有效性。如3.2中所述。添加了后BN层来稳定训练过程。为了证明这一点,作者删除了这些层,如表3中的最后一行所示,梯度变成无穷大,模型无法收敛。

3、每个组件都很重要

对ResNet-18和ResNet-50的结构都进行了实验。如表2所示,每个组件都有助于提高性能。

4、Online vs. offline

作者比较了OREPA-ResNet-18与DBB-18的训练成本进行了对比。举例说明了消耗的内存(图8(a))和训练时间(图8(b))。

随着组件数量的增加,离线重参化模型面临着内存利用率快速增加和训练时间长的问题。由于高内存成本,甚至不能在ResNet-18模型中引入Deep Stem。相比之下,在线重参化策略将训练速度提高了4×,并节省了高达96+%的额外GPU内存。总体的训练开销大致与基本模型(普通ResNet)的水平相同。

4.2 与其他重参化对比

从表4中观察到在ResNet系列上,OREPA可以在各种模型上的性能持续提高+0.36%。同时,它将训练速度加速了1.5×至2.3×,并节省了约70+%的额外训练时间内存。

image.png

作者还对VGG结构进行了实验,比较了OREPA-VGG和RepVGG。对于OREPA-VGG模型,简单地用在OREPA-中使用的OREPA-res-3×3分支。这种修改只引入了边际的额外训练成本,同时也带来了明显的性能增益(+0.25%∼+0.6%)。

4.3 目标检测与语义分割

4.4 局限性

当简单地将所提出的OREPA从ResNet转移到RepVGG时,作者发现基于残差和无残差(VGG-like)结构之间的性能不一致。因此,在RepVGG块中保留了所有的三个分支,以保持具有竞争性的精度,这就略微增加了计算成本。这是一个有趣的现象。


5参考


[1].OREPA: Online Convolutional Re-parameterization


6推荐阅读


深度可分离ViT | SepViT | 深度可分离卷积造就深度可分离Transformer

即插即用 | XBN让ResNet、ShuffleNet彻底解决BN的局限和缺点

PP-YoLoE | PP-YoLov2全面升级Anchor-Free,速度精度完美超越YoLoX和YoLov5

Aug-ShuffleNets | ShuffleNetV2参数和FLOPs降低,性能却提升,简单暴力有效!

相关文章
|
2月前
|
JSON 人工智能 数据格式
AI计算机视觉笔记二十六:YOLOV8自训练关键点检测
本文档详细记录了使用YOLOv8训练关键点检测模型的过程。首先通过清华源安装YOLOv8,并验证安装。接着通过示例权重文件与测试图片`bus.jpg`演示预测流程。为准备训练数据,文档介绍了如何使用`labelme`标注工具进行关键点标注,并提供了一个Python脚本`labelme2yolo.py`将标注结果从JSON格式转换为YOLO所需的TXT格式。随后,通过Jupyter Notebook可视化标注结果确保准确性。最后,文档展示了如何组织数据集目录结构,并提供了训练与测试代码示例,包括配置文件`smoke.yaml`及训练脚本`train.py`,帮助读者完成自定义模型的训练与评估。
|
1月前
|
Python 机器学习/深度学习 人工智能
手把手教你从零开始构建并训练你的第一个强化学习智能体:深入浅出Agent项目实战,带你体验编程与AI结合的乐趣
【10月更文挑战第1天】本文通过构建一个简单的强化学习环境,演示了如何创建和训练智能体以完成特定任务。我们使用Python、OpenAI Gym和PyTorch搭建了一个基础的智能体,使其学会在CartPole-v1环境中保持杆子不倒。文中详细介绍了环境设置、神经网络构建及训练过程。此实战案例有助于理解智能体的工作原理及基本训练方法,为更复杂应用奠定基础。首先需安装必要库: ```bash pip install gym torch ``` 接着定义环境并与之交互,实现智能体的训练。通过多个回合的试错学习,智能体逐步优化其策略。这一过程虽从基础做起,但为后续研究提供了良好起点。
138 4
手把手教你从零开始构建并训练你的第一个强化学习智能体:深入浅出Agent项目实战,带你体验编程与AI结合的乐趣
|
2月前
|
人工智能 开发工具 计算机视觉
AI计算机视觉笔记三十:yolov8_obb旋转框训练
本文介绍了如何使用AUTODL环境搭建YOLOv8-obb的训练流程。首先创建虚拟环境并激活,然后通过指定清华源安装ultralytics库。接着下载YOLOv8源码,并使用指定命令开始训练,过程中可能会下载yolov8n.pt文件。训练完成后,可使用相应命令进行预测测试。
|
2月前
|
人工智能 PyTorch 算法框架/工具
AI计算机视觉笔记二十二:基于 LeNet5 的手写数字识别及训练
本文介绍了使用PyTorch复现LeNet5模型并检测手写数字的过程。通过搭建PyTorch环境、安装相关库和下载MNIST数据集,实现了模型训练与测试。训练过程涉及创建虚拟环境、安装PyTorch及依赖库、准备数据集,并编写训练代码。最终模型在测试集上的准确率达到0.986,满足预期要求。此项目为后续在RK3568平台上部署模型奠定了基础。
|
2月前
|
人工智能 测试技术 PyTorch
AI计算机视觉笔记二十四:YOLOP 训练+测试+模型评估
本文介绍了通过正点原子的ATK-3568了解并实现YOLOP(You Only Look Once for Panoptic Driving Perception)的过程,包括训练、测试、转换为ONNX格式及在ONNX Runtime上的部署。YOLOP由华中科技大学团队于2021年发布,可在Jetson TX2上达到23FPS,实现了目标检测、可行驶区域分割和车道线检测的多任务学习。文章详细记录了环境搭建、训练数据准备、模型转换和测试等步骤,并解决了ONNX转换过程中的问题。
|
2月前
|
存储 人工智能 数据可视化
AI计算机视觉笔记二十一:PaddleOCR训练自定义数据集
在完成PaddleOCR环境搭建与测试后,本文档详细介绍如何训练自定义的车牌检测模型。首先,在`PaddleOCR`目录下创建`train_data`文件夹存放数据集,并下载并解压缩车牌数据集。接着,复制并修改配置文件`ch_det_mv3_db_v2.0.yml`以适应训练需求,包括设置模型存储目录、训练可视化选项及数据集路径。随后,下载预训练权重文件并放置于`pretrain_models`目录下,以便进行预测与训练。最后,通过指定命令行参数执行训练、断点续训、测试及导出推理模型等操作。
|
2月前
|
机器学习/深度学习 人工智能 测试技术
AI计算机视觉笔记二十五:ResNet50训练部署教程
该项目旨在训练ResNet50模型并将其部署到RK3568开发板上。首先介绍了ResNet50网络,该网络由何恺明等人于2015年提出,解决了传统卷积神经网络中的退化问题。项目使用车辆分类数据集进行训练,并提供了数据集下载链接。环境搭建部分详细描述了虚拟环境的创建和所需库的安装。训练过程中,通过`train.py`脚本进行了15轮训练,并可视化了训练和测试结果。最后,项目提供了将模型转换为ONNX和PT格式的方法,以便在RK3568上部署。
|
2月前
|
人工智能 计算机视觉 Python
AI计算机视觉笔记十九:Swin Transformer训练
本文介绍了使用自定义数据集训练和测试目标检测模型的步骤。首先,通过安装并使用标注工具labelme准备数据集;接着修改配置文件以适应自定义类别,并调整预训练模型;然后解决训练过程中遇到的依赖冲突问题并完成模型训练;最后利用测试命令验证模型效果。文中提供了具体命令及文件修改指导。
|
2月前
|
人工智能 PyTorch 算法框架/工具
AI计算机视觉笔记十二:基于 LeNet5 的手写数字识别及训练
本文档介绍了如何使用PyTorch框架复现经典的LeNet5模型,并通过MNIST数据集进行训练与测试。首先,创建虚拟环境并安装所需库,接着下载MNIST数据集。训练部分涉及四个主要文件:`LeNet5.py`、`myDatast.py`、`readMnist.py` 和 `train.py`。通过这些文件搭建模型并完成训练过程。最后,通过测试脚本验证模型准确性,结果显示准确率达到0.986,满足预期需求。文档还提供了详细的环境配置和代码实现细节。
|
3月前
|
机器学习/深度学习 人工智能 算法
就AI 基础设施的演进与挑战问题之大模型训练过程中的问题如何解决
就AI 基础设施的演进与挑战问题之大模型训练过程中的问题如何解决
下一篇
无影云桌面