1

我有 2 个 Tensorflow Lite 模型(它们是 Yolo V2 Tiny 模型):

  • 模型 A)从互联网上下载,对 80 个类别的对象进行检测和分类。.tflite 文件重 44,9mb。
  • 模型 B)我自己使用 Darknet 训练,用 52 个类检测和分类对象。.tflite 文件重 20.8mb。该模型使用 Darkflow 转换为 TFLite。

然而,无论是在手机上还是在计算机上,模型 B 的预测时间都比模型 A 多 10 倍(即使模型 B 检测到的类别更少且文件更轻)。此外,模型似乎可以处理大小为 416x416 的输入图像并使用浮点数。

模型 A 比模型 B 快的原因是什么?如何找出模型 A 更快的原因?

我遇到的问题之一是模型 A,因为我自己没有训练过它,所以我没有包含整个设置的 .cfg 文件......

4

1 回答 1

2

您应该尝试以下两种方法来获得更多洞察力,因为模型碰巧比预期慢的原因可能有多种。

使用像 Netron 这样的工具检查两个网络。您可以上传您的 flatbuffer (TF Lite) 模型文件并可视化 TF Lite 转换后的网络架构。在那里,您可以看到两种模型之间的差异所在。例如,如果与 A 相比,模型 B 中碰巧有额外的重塑操作或类似操作,这可能是一个原因。要下载 Netron,请遵循https://github.com/lutzroeder/netron

测量模型在其每一层上花费的时间。为此,您可以使用 Tensorflow 存储库中直接提供的 TF Lite 基准测试工具。在这里查看https://github.com/tensorflow/tensorflow/blob/master/tensorflow/lite/tools/benchmark/README.md

于 2020-03-16T17:11:29.083 回答