Skip to content

Optimization Note

SgDylan edited this page May 11, 2020 · 4 revisions

记录优化性能上的探索

2020-04-16

2020-05-11 更新测试结果

  1. 替换了可能存在错误的模型,更新了鲁棒性测试结果
  2. 由于无法使用 ONNX Simplifier 融合 BN 层,推理开销会大幅增加

尝试使用标称同等性能但推理速度显著提高(已知最大为原本的 5 倍)的 RegNet
根据论文说明,选择和 EfficientNet-b2 相近的 RegNetY-1.6GF 直接对照。

纯粹推理性能:
排除预处理阶段下,同样对已经标准化的图像做推理 1000 次。

模型 时间开销(s)
EfficientNet-b2 66.9710
RegNetY-1.6GF 35.2964
RegNetY-1.6GF(未合并 BN 层) 57.5169
RegNetY-8.0GF(未合并 BN 层) 153.1541
Once for All(flops@[email protected]_finetune@75) 60.3093

检索鲁棒性测试:
使用自制数据集,包含裁剪、旋转、翻转、噪音等方法处理后的同一张图片共 17 张。

模型 成功检索数量
EfficientNet-b2 15
RegNetY-1.6GF 12
RegNetY-8.0GF 13
Once for All(flops@[email protected]_finetune@75) 17

结论:
由于实际运算开销主要集中在图像处理阶段,推理开销占比不大。
故实际加速抵不上鲁棒性降低的损失,没有足够的理由更换模型为 RegNetY-1.6GF。
但从测试表现看,Once for All 模型有足够的价值作为升级方案。

2020-04-02

使用 onnx-simplifier 对模型简化,合并 BN 层的操作为模型带来了 40~55% 的性能提升。
在同样匹配结果下提速,故采纳新的优化方法并替换模型。

Clone this wiki locally