【三等奖方案】基于TPU平台实现人群密度估计赛题「加速器」团队解题思路

WriteUp 10个月前 admin
169 0 0
【三等奖方案】基于TPU平台实现人群密度估计赛题「加速器」团队解题思路

2022 CCF BDCI

第十届CCF大数据与计算智能大赛


第十届CCF大数据与计算智能大赛(2022 CCF BDCI)已圆满结束。大赛官方竞赛平台DataFountain(简称DF平台)将陆续释出各赛题获奖队伍的方案思路。本方案为【基于TPU平台实现人群密度估计】赛题的三等奖获奖方案,赛题地址:

https://www.datafountain.cn/competitions/583(戳底部“阅读原文”可直达)

【三等奖方案】基于TPU平台实现人群密度估计赛题「加速器」团队解题思路


获奖团队简介


团队名称:加速器

团队成员:黄显钧,队长,现任某科技公司的高级工程师,技术栈涉足嵌入式全栈开发、AI 开发等领域,对技术充满热情,自驱力强,喜欢研究前沿的技术并将其应用于实际生产中。信奉的一句话是:实践出真知。

所获奖项:三等奖


摘要


第一步是选定好基础模型,然后在基础模型上使用不同的方案进行调优。根据经验调优方案是使用不同的输入尺度进行测试,最终效果明显。


关键词


VGG、图片预处理尺寸范围、模型输入尺寸


模型选择


我的经验是进行模型加速的流程第一步是选择不同模型在加速后的表现情况,表现好的模型才去进行下一步调优,因为如果一个模型加速之后表现不好,或者因其网络结构、算子不兼容的原因无法加速的话,我再怎么调优都是徒劳的,所以第一步是选择加速之后表现好的模型。

比赛页面提的官方 demo:https://github.com/sophon-ai-algo/contest-demos/tree/main/SOPHGO-CCF-Contest 提供了4个开源的模型权重:CANNet、CSRNet、MCNN、VGG。我先对每个权重进行转换TPU的bmodel。

下表是每个模型直接转FP32bmodel的测试结果一览表,所有模型均未进行调优:

【三等奖方案】基于TPU平台实现人群密度估计赛题「加速器」团队解题思路

表1:直接转FP32bmodel的测试结果一览表


从上表可以看出转bmodelFP32之后的推理结果成绩最高的是VGG模型权重,故我就选定了VGG作为我的初始模型去进行调优。


模型原理


我采用的模型VGG比较常用的有2种结构,分别是VGG16和VGG19。我使用的VGG指的是 VGG16,其结构包含16个子网络层,每个子网络层由13层卷积层+3层全连接层组成。下图是从VGG论文展示VGG网络图,共有6中不同结构,其中D列为我这次使用的VGG16的结构。

我可以看到,每个子网络层的结构基本一致,都是由3×3卷积外加max pool层。

【三等奖方案】基于TPU平台实现人群密度估计赛题「加速器」团队解题思路

图1:VGG 网络结构展示图


从图1看到,VGG的优点就是结构比较简单,而且随着网络的加深,效果也会逐步提升,不会到过拟合或者梯度爆炸的情况。

同时,使用了小的卷积——3×3卷积,而不是7×7的卷积,这样的计算量会大大的减少,而且3×3的卷积更有利于保持图像的信息。

VGG的结构让网络更加深的同时,让特征图更加宽。卷积专注于扩大通道数,max pool 层专注于缩小图片的宽高,使得模型对不同宽高的图片具有更强的泛化性。

VGG在测试的时候,将模型的3个全连接层替换为3个卷积模块,使得测试的时候得到的模型结构的输入不再局限于接受固定的大小的图片,而是可以接收任意高度或宽度的输入,这使得模型的易用性大大增强,同时也对不同图片的识别更加有利。


调优方案


确定好了网络结构,下一步是寻找优化方案。

我刚开始也是比较迷茫,于是乎我去研究官方提供demo的整体流程,在研究的过程中我发现数据预处理的过程中,会将图片大小进行缩放。从经验来看,对图片的缩放有助于提高速度,一个好的缩放比例能够保证图片缩小的情况下,精度还是会和之前持平,但是如果调整的不好的话精度有可能会下降明显,所以我就尝试着修改图片预处理时的图片大小。

除了图片尺寸,不同的batch size也可以加快模型的推理,因此我也测试了不一样的batch size 对模型的变化,我在转换模型的时候,将原本的batch size 1换成8,发现batch size变化之后,速度反而加倍了,根据以往提测的经验,分数和速度挂钩,若速度慢了,分数也会有一定的下降,而且这次翻倍了,分数应该不理想,故放弃修改batch size的调优方案。

我测试了很多组不同的输入大小,主要是从数据预处理的图片最大尺寸和最小尺寸,外加对模型的输入尺寸做调整,下面是我的记录表:

【三等奖方案】基于TPU平台实现人群密度估计赛题「加速器」团队解题思路

表2:图片尺寸优化测试结果一览表


从表2可以看出,最佳的成绩预处理设置图片最大尺寸780×780,最小尺寸是144×144,模型的输入尺寸设置为144×144是效果最好的,故选择该方案最为最佳方案。


最终成绩


从A榜的表现来看,我最终选择了VGG模型,图片预处理将最大图片尺寸设置为780×780,最小图片尺寸为144×144,模型输入尺寸设置为144×144,AB榜最佳的结果如下表所示:

【三等奖方案】基于TPU平台实现人群密度估计赛题「加速器」团队解题思路

表3:AB榜单的最佳成绩一览表


致谢


时间飞逝,比赛结束了,很荣幸能够参与本次大赛。本次大赛让我对TPU有了进一步的了解,对模型加速的理解更加深刻了。

感谢我自己的自驱力,让我不断进步,让我不满足于当下自己的技术水平,更加发奋学习新的技术,同时不断的发现问题和解决问题,让我的经验得到进一步的积累,从而使我在多数情况下能够快速解决问题。

另外,我还要感谢我家人的支持,倘若没有家人的支持,我就不能全心全意、全程专注地参与本次大赛,也不会获得我现在的成绩,是他们的支持,让我能够沉浸在技术的学习中去,不断突破自己。

最后,要感谢平台方、举办方举办了这个比赛,这个比赛让我的模型加速技术能力得到进一步的提升,让我的经验变得更加丰富。


参考


[1] Karen Simonyan, Andrew Zisserman(2014年)。Very Deep Convolutional Networks for Large-Scale Image Recognition。

https://arxiv.org/abs/1409.1556。


—End—


【三等奖方案】基于TPU平台实现人群密度估计赛题「加速器」团队解题思路
【三等奖方案】基于TPU平台实现人群密度估计赛题「加速器」团队解题思路

戳“阅读原文”,速来参赛办赛~

原文始发于微信公众号(DataFountain):【三等奖方案】基于TPU平台实现人群密度估计赛题「加速器」团队解题思路

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...