关于gpu:恒源云Gpusharecom-RTX-3090独家训练实录MMDetectionV2-ResNeSt

17次阅读

共计 2546 个字符,预计需要花费 7 分钟才能阅读完成。

进入干货之前,先简略自我介绍一下吧,笔者次要从事深度学习 CV 畛域,近一年,因为工作须要,再加上个人兴趣,在指标检测、实例宰割工作方面,花了不少工夫调研和浏览论文。

对此,笔者也跑过了有数试验,加入过大大小小的较量,emmm,有最终取得第一的,有遗憾取得第二的,有初赛就被淘汰无缘复赛的,也有做到一半因为各种起因放弃的,有机会当前能够和大家唠一唠 …

言归正传,明天想和大家分享的独家干货是,MMDetectionV2 + ResNeSt + RTX3090 的训练实录,CVer 会比拟相熟,这三款别离来自框架、算法、硬件畛域的产品,都是 2020 年新推出的爆款,目前还没有看过三者联合的公开试验分享。

正好,笔者最近租用了一台双卡 24G 的 GeForce RTX 3090 设施,就顺便降级了一下 MMDetection 至 V2.7.0(2020 年 11 月底公布,之前因为其更新速度太快,下半年始终停留在 V2.2.0 版本),并发现此次更新,减少了对 ResNeSt 作为 backbone 的反对,立即决定跑个试验测试一下性能,心愿能给大家一些参考。

接下来,别离简略介绍一下:

【MMDetection】

这是港中大 OpenMMLab 及商汤科技开源的基于 PyTorch 的检测宰割框架,该团队在加入 2018 MS COCO Detection Challenge 后开源,于 2018 年 10 月首次公布 V0.5.1 版本,2020 年 1 月公布 V1.0.0 版本,2020 年 6 月推出全新降级的 V2.0.0 版本。

相比于其余相似的开源框架,例如 Facebook 的 maskrcnn-benchmark 及 Detectron2 或百度的 PaddleDetection,MMDetection 是目前最受欢迎、关注度最高的框架,次要起因在于,其性能全覆盖面广、性能高、以及更新速度快等特点。

【ResNeSt】

号称最强 ResNet 改进版,“ResNeSt: Split-Attention Networks”这篇论文出自亚马逊李沐,张航团队,于 2020 年 4 月上传至 arXiv(截止目前还未在会议或期刊上发表,不出意外,2021 年的 CVPR 或 ICCV 等顶会应该会有它的身影)。

此文一出反应热烈,一方面,因为其在图像分类、指标检测、实例宰割、语义宰割等多项工作中都有显著晋升。

另一方面,一些质疑声也随之而来,次要来源于其比照试验,例如 ResNeSt-50 vs. ResNet-50,采纳了大量最新发表的训练及数据加强策略,而在 ResNet-50 于 2015 年提出时,这些技术并不存在,因而其公平性受到挑战。

无论如何,ResNeSt 在最近各大较量中频繁退场并大放荣耀,可见其泛化能力极强。

【RTX 3090】

英伟达 GeForce RTX 30 系列,于 2020 年 9 月正式公布,其中的 3090 版本比照上一任“老大哥”GeForce RTX 2080 Ti,不论是性能还是价格都齐全碾压。

再加上疫情起因,以至于推出后很长时间,在国内市场都处于缺货、抢购、价格贬低等景象,即使在美国也是一卡难求,这无疑让深度学习爱好者对其充斥向往。

介绍完背景后,当初进入正题,本次试验的相干配置如下:

Python 3.8.7
PyTorch 1.7.1
torchvision 0.8.2
CUDA 11.0
cuDNN 8.0.5
GCC 7.3
MMDetection 2.7.0
MMCV 1.2.4

数据方面,采纳了经典的 MS COCO 2017,其中训练集 train、验证集 val 以及测试集 test-dev 的数量别离约为 118K、5K、20K。

算法方面,本次试验抉择了 ResNeSt-101 + FPN + SyncBN + Cascade Mask RCN 作为检测器,这里并没有应用最新的 HTC 或 DetectoRS,次要是想和 ResNeSt 论文中给出的试验后果做间接比照。

训练及测试细节如下:

训练时长采纳“2x schedule”,即 24 周期,step=[16,22]
多尺度训练 1600x[400,1200],这里参考了 HTC 论文里的尺度,而非 ResNeSt 论文中的 1333x[640,800]
单尺度测试 1600×1000,同上,未抉择传统的 1333×800
双卡训练,每卡 2 张图片,即 batch size 为 4
初始学习率设定为 0.01,这里稍高于传统指标检测 linear scaling rule 定义的 0.005
依据 ResNeSt 论文举荐,backbone 及 head 都采纳 SyncBN
其余设置及超参数不变

训练一个周期大概 11.5 小时,训练时显存简直占满,如下图所示。因为是双卡跑“2x schedule”,如果依照个别论文中的 8 卡跑“1x schedule”配置来算的话,整个训练过程大概须要 34.5 小时,算是比拟快的。这里顺便提一下,经亲测,同样的配置 8 卡 2080 Ti 跑“1x schedule”个别须要 2 天多一些(49 至 50 小时)。

受资源限度,多尺度训练并未采纳 HTC 的 1600x[400,1400]。同样的,backbone 并没退出最近比拟风行的 DCNv2,退出后 mAP 个别能够晋升 1 至 2 个百分点左右,如下图所示(来自于 ResNeSt 原文中的 Table 12)。

依据以往教训,多尺度测试个别 mAP 可晋升 1.5 至 2.5 个百分点左右,因为本次试验并非为了较量或刷榜,为节省时间测试阶段采纳单尺度,后果如下:

下面两张图,别离为模型在验证集上的检测 bbox mAP 以及宰割 segm mAP 后果,比照下图中的后果(来自于 ResNeSt 原文中的 Table 6),本次试验成果略微好一些(bbox 49.4% vs. 48.3%,segm 43.1% vs. 41.6%),可能得益于较大的尺度及较长的训练时长,但不论如何,双卡的 RTX 3090 能够复现作者的 8 卡后果还是令人比较满意的。

上面三张图别离为测试集 test-dev 上的 bbox mAP、segm mAP(须要将 json 文件上传至 COCO 的官方网站)以及原文中的 Table 10。须要留神的是原文中的后果应用了 DCNv2,而本次试验并未对 backbone 做额定的加强操作,也达到了一样的成果(bbox 50.0% vs. 50.0%,segm 43.7% vs. 43.0%)。

综上,通过测试“新一代卡皇”GeForce RTX 3090 的性能,最终后果还是比拟令人满意的。

正文完
 0