deep-learning - MobileNet V3 比 V2 快多少?

标签 deep-learning mobilenet

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

MobileNet V3

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

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

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

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

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

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

Object detection results for comparison

最佳答案

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

不过有几点需要考虑:

  • 确实 SE 和 h-swish 都会稍微减慢网络速度。 SE 添加
    一些 FLOP 和参数,并且 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 页的中间(第一列的底部到第二列的顶部)说自己。
  • 关于deep-learning - MobileNet V3 比 V2 快多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56949807/

    相关文章:

    image-processing - 我想知道MS COCO数据集中有没有服装对象类?

    python - 如何为图像集安装两个 keras ImageDataGenerator

    python - Tensorflow:尝试迁移学习时出错:无效的 JPEG 数据或裁剪窗口

    machine-learning - 我们可以只使用 model.fit 而不是 model.fit_generator 吗?

    tensorflow - 使用MobileNet重新训练图像检测

    machine-learning - *从头开始重新启动数据预取*在caffe中是什么意思

    machine-learning - 使用深度学习进行对象检测的数据增强

    tensorflow - 导出推理图后,ssd_mobilenet_v2_coco 无法检测自定义训练对象

    machine-learning - 为什么我们要增加 resnet-50 架构的维度?