MobileNet V3如何比V2快?

时间:2019-07-09 09:47:16

标签: deep-learning mobilenet

这是有关MobileNet V3的论文的链接。

MobileNet V3

根据本文,h-swish和“挤压和激励”模块是在MobileNet V3中实现的,但它们旨在提高准确性,而无助于提高速度。

h-swish比swish更快,有助于提高准确性,但如果我没有记错的话,它比ReLU慢得多。

SE还有助于提高准确性,但会增加网络参数的数量。

我想念什么吗?我仍然不知道通过上述在V3中实现的功能,MobileNet V3如何比V2更快。

我没有提到他们也修改了网络的最后一部分的事实,因为我计划使用MobileNet V3作为骨干网络并将其与SSD层结合用于检测目的,因此赢得了网络的最后一部分不被使用。

可以在上述论文中找到的下表显示,V3仍比V2快。

Object detection results for comparison

1 个答案:

答案 0 :(得分:0)

在分类任务上,MobileNetV3比MobileNetV2更快,更准确,但是在其他任务(例如对象检测)上不一定是正确的。 就像您自己提到的那样,它们在网络最深层进行的优化与分类变量最相关,并且从您引用的表中可以看出,mAP并不更好。

不过要考虑的几件事:

  • 确实是SE和h-swish都使网络速度变慢了一点。 SE添加 一些FLOP和参数,以及h-swish会增加复杂度,并且两者 导致一些延迟。但是,两者都添加为 精度-延迟权衡更好,这意味着延迟 加法值得增加精度,或者您可以保持相同 准确性,同时减少其他工作量,从而减少总体延迟。 特别是关于h-swish,请注意他们主要在 更深的层,张量较小。它们比较厚,但是 由于分辨率(高度x宽度)呈二次方下降,因此 总体上较小,因此h-swish导致较小的延迟。
  • 搜索架构本身(无h-swish,甚至不考虑SE)。这意味着它比“原始的” MobileNetV2更适合于任务,因为该体系结构是“手工较少”的,并且实际上已针对任务进行了优化。例如,您可以看到,就像在MNASNet中一样,某些内核已增长到5x5(而不是3x3),并不是所有的扩展率都是x6,等等。
  • 他们对网络最深处所做的一项更改也与对象检测有关。奇怪的是,当使用SSDLite-MobileNetV2时,原始作者选择保留最后的1x1卷积,其深度从320扩展到1280。尽管对于1000个类别的分类来说,这种数量的功能是有意义的,但对于80个类别的检测,它可能是多余的,因为这些作者MNv3的用户说自己在第7页的中间(第二列的第一列的顶部)。