首页 > 解决方案 > MobileNet V3 比 V2 快多少?

问题描述

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

移动网络 V3

根据该论文,h-swish 和 Squeeze-and-excitation 模块是在 MobileNet V3 中实现的,但它们旨在提高准确性,而无助于提高速度。

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

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

我错过了什么吗?我仍然不知道 MobileNet V3 如何比 V2 更快,上面所说的在 V3 中实现。

我没有提到他们还修改了他们网络的最后一部分,因为我计划使用 MobileNet V3 作为主干网络并将其与 SSD 层结合起来进行检测,所以网络的最后一部分不会用过的。

下表(可在上述论文中找到)显示 V3 仍然比 V2 快。

用于比较的对象检测结果

标签: deep-learningmobilenet

解决方案


MobileNetV3 在分类任务上比 MobileNetV2 更快、更准确,但在不同的任务上不一定如此,例如对象检测。正如您自己提到的,他们在网络最深端所做的优化主要与分类变体相关,并且从您引用的表中可以看出,mAP 也好不到哪里去。

不过有几点需要考虑:

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

推荐阅读