Tensorflow Tensor flow摄像头演示在android设备上花费更多时间。如何优化它?

Tensorflow Tensor flow摄像头演示在android设备上花费更多时间。如何优化它?,tensorflow,Tensorflow,在Lenovo Yoga Tab 3平板电脑上运行TF摄像头演示的Tensor Flow(TF)模块需要4秒钟左右的时间 这是在使用TF工具优化接口之后 如何提高延迟?图像大小是否可以减小?现在它以299x299图像作为输入。如果“是”,建议的图像大小是多少?或者可以使用任何内置TF优化技术吗?为了改善延迟,也许您可以尝试TensorFlow提供的8位量化工具。他们有一个专门的工具来实现这一点:图形变换您可以阅读更多内容 例如,在将冻结模型构建到APK之前,我会对其执行以下操作: /home/k

在Lenovo Yoga Tab 3平板电脑上运行TF摄像头演示的Tensor Flow(TF)模块需要4秒钟左右的时间 这是在使用TF工具优化接口之后


如何提高延迟?图像大小是否可以减小?现在它以299x299图像作为输入。如果“是”,建议的图像大小是多少?或者可以使用任何内置TF优化技术吗?

为了改善延迟,也许您可以尝试TensorFlow提供的8位量化工具。他们有一个专门的工具来实现这一点:图形变换您可以阅读更多内容

例如,在将冻结模型构建到APK之前,我会对其执行以下操作:

/home/kwotsin/tensorflow-android/tensorflow/bazel-bin/tensorflow/tools/graph_transforms/transform_graph \
--in_graph=./frozen_model_mobilenet.pb \
--out_graph=./quantized_model_mobilenet.pb \
--inputs='Placeholder_only' \
--outputs='MobileNet/Predictions/Softmax' \
--transforms='
  add_default_attributes
  strip_unused_nodes(type=float, shape="1,299,299,3")
  remove_nodes(op=Identity, op=CheckNumerics)
  fold_constants(ignore_errors=true)
  fold_batch_norms
  fold_old_batch_norms
  quantize_weights
  quantize_nodes
  strip_unused_nodes
  sort_by_execution_order'
要更改输入大小,我想这将取决于您的模型从一开始需要的输入大小。目前,对于我的应用程序,我使用的图像大小也是299,我可以说推断速度非常快,通常不到1秒(当然,这也取决于硬件。我在LG G3上运行了它)。如果你的模型接受了一批形状为[None,299,299,3]的张量,那么我猜你的图像大小应该是299。否则,您可以尝试更改
classifiercivity.java
文件中的图像大小


我认为没有推荐的图像大小,因为分类器的性能将取决于需要完成的任务。例如,如果你正在做一个非常简单的任务,简单地对颜色进行分类,我认为你不需要一个非常高分辨率的图像来完成它。另一方面,如果您尝试对外观非常相似的对象进行分类,则较大的图像大小可能有助于为分类器提供更多信息。同样,这取决于您的模型所做的训练。

为了提高延迟,您可以尝试TensorFlow提供的8位量化工具。他们有一个专门的工具来实现这一点:图形变换您可以阅读更多内容

例如,在将冻结模型构建到APK之前,我会对其执行以下操作:

/home/kwotsin/tensorflow-android/tensorflow/bazel-bin/tensorflow/tools/graph_transforms/transform_graph \
--in_graph=./frozen_model_mobilenet.pb \
--out_graph=./quantized_model_mobilenet.pb \
--inputs='Placeholder_only' \
--outputs='MobileNet/Predictions/Softmax' \
--transforms='
  add_default_attributes
  strip_unused_nodes(type=float, shape="1,299,299,3")
  remove_nodes(op=Identity, op=CheckNumerics)
  fold_constants(ignore_errors=true)
  fold_batch_norms
  fold_old_batch_norms
  quantize_weights
  quantize_nodes
  strip_unused_nodes
  sort_by_execution_order'
要更改输入大小,我想这将取决于您的模型从一开始需要的输入大小。目前,对于我的应用程序,我使用的图像大小也是299,我可以说推断速度非常快,通常不到1秒(当然,这也取决于硬件。我在LG G3上运行了它)。如果你的模型接受了一批形状为[None,299,299,3]的张量,那么我猜你的图像大小应该是299。否则,您可以尝试更改
classifiercivity.java
文件中的图像大小


我认为没有推荐的图像大小,因为分类器的性能将取决于需要完成的任务。例如,如果你正在做一个非常简单的任务,简单地对颜色进行分类,我认为你不需要一个非常高分辨率的图像来完成它。另一方面,如果您尝试对外观非常相似的对象进行分类,则较大的图像大小可能有助于为分类器提供更多信息。同样,这取决于您的模型所做的训练。

我也有推理时间问题。我发现默认的应用程序非常快,但任何自定义模型都非常慢,即使这些模型被认为是相似的。我也有推理时间问题。我发现默认应用程序速度非常快,但任何自定义模型都非常慢,即使这些模型被认为是相似的。我使用了TF transform_graph函数,并对接口函数进行了优化和未优化,但生成的结果与原始结果不相同,并且不正确。该函数似乎与硬件相关,至少在我的联想平板电脑上不起作用。我使用了TF transform_graph函数,并对接口函数进行了优化和未优化,但生成的结果与原始结果不同,并且不正确。似乎此功能具有硬件依赖性,至少在我的联想平板电脑上不起作用