【ECCV2020】Spatially Adaptive Inference with Stochastic Feature Sampling and Interpolation
论文:https://arxiv.org/abs/2003.08866
代码:https://github.com/zdaxie/SpatiallyAdaptiveInference-Detection
这个论文的关键词是动态网络。如下图所示,动态网络目标是可以对 简单 和 困难 的样本分别 采用不同的网络进行推理。对于简单样本采用小网络,对于困难样本采用大网络,这样可以有效降低计算中的冗余。
这篇论文就是研究动态网络,只对输入feature map部分特征进行卷积,其余部分特征可以通过预测来生成,从而有效减少计算量。论文的整体架构如下图所示,包括两个步骤:
- 第一步:生成 sample mask M,采样一部分点,只在采样的点上进行卷积;
- 第二步:feature map 上剩余的点,通过插值来生成。
第一步里,如何生成 M 矩阵是一个关键问题,最简单的方法就是定义一个阈值,大于阈值的点就是显著点,很多方法都是这么做的(下图左列所示)。但是作者认为,这样选出来的点,还会存在冗余,因为距离近的点,特征是相似的,还可以再少取一些(sparse sampling)。因此,作者提出使用 Gumbel-Softmax distribution 生成矩阵M。(具体可以参考作者论文,这里不再多说)
第二步里,如何插值生成新的 feature map 是很关键的,作者在局部窗口内,用采样元素加权来计算未采样元素的值。加权方法可以有三种方法,Average pooling, conv, 和 RGF kernel ,作者也利用实验进行了选择。
在实际应用中,可以将 3x3 卷积层替换为这个方法,在ResNet中应用时,有三种方式,三个卷积共用一个 mask ,计算效率最高,但效果最差。经过实验,作者最终选择下图中第二个方案。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】博客园携手 AI 驱动开发工具商 Chat2DB 推出联合终身会员
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个适用于 .NET 的开源整洁架构项目模板
· 【开源】C#上位机必备高效数据转换助手
· .NET 9.0 使用 Vulkan API 编写跨平台图形应用
· MyBatis中的 10 个宝藏技巧!
· [.NET] 使用客户端缓存提高API性能