SSD 和 SSD Lite 有什么区别??(Tensorflow)

Seo*_*Han 6 python tensorflow

我已经阅读了论文 MobileNetV2(arXiv:1801.04381​​)

并从Tensorflow model zoo运行模型

我注意到 SSD Lite MobileNetV2 的推理时间比 SSD MobileNetV2 快。

在 MobileNetV2 论文中,下面这句话中只有对 SSD Lite 的简短说明:

“我们用 SSD 预测层中的可分离卷积(深度方向后跟 1 × 1 投影)替换所有常规卷积”。

所以我的问题是,SSD 和 SSD Lite 有什么区别?

我不明白其中的区别,因为当 MobileNetV1(arXiv:1704.04861v1) 发布并应用于 SSD 时,它已经将所有卷积层替换为上面提到的深度可分离卷积。

Ala*_*son 8

令人沮丧的是,所有对 SSDLite 的搜索都会导致“我们称之为 SSDLite 的新框架”,所以我期待着一件事。但是,我怀疑SSDLite只是通过对常见SSD模型文件的一次修改(kernel_size)和两次添加(use_depthwise)来实现的。

比较模型文件ssd_mobilenet_v1_coco.configsdlite_mobilenet_v2_coco.config会产生以下结果:

model {
  ssd {
    box_predictor {
      convolutional_box_predictor {
        kernel_size: 3
        use_depthwise: true
      }
    }
    feature_extractor {
      use_depthwise: true
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我得试试看。


小智 8

正如已经指出的答案之一,配置的主要区别是 box_predictor 和 feature_extractor 的两个 use_depthwise 选项。代码库中已经实现了底层更改,基本上将 SSD 层中的所有常规卷积和最后一个框 + 类预测层替换为深度 + 逐点可分离卷积。我们的 MobilenetV2 论文中描述了理论参数和触发器的节省。

同样为了回答@Seongkyun Han 的问题,我们没有替换我们 v1 论文中 SSD 层中的所有 conv(只有所有属于 mobilenet 的层都是可分离的 conv)。