在Lenovo Yoga Tab 3平板电脑https://github.com/tensorflow/tensorflow/tree/master/tensorflow/examples/android上运行TF相机演示的Tensor Flow(TF)模块时,自定义模型大约需要4秒钟 它是在使用TF工具优化界面之后。
如何改善延迟?可以减小TF的图像尺寸吗?现在它需要299x299图像作为输入。如果"是"什么是推荐的图像尺寸?或者是否可以使用任何室内TF优化技术?
答案 0 :(得分:0)
为了改善延迟,您可以尝试使用TensorFlow提供的8位量化工具。他们只有一个特殊工具:图表转换您可以阅读更多here。
例如,在我将其构建到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上运行它)。如果你的模型接受了一批形状为[无,299,299,3]的张量,那么我猜你的图像大小需要为299.否则,你可以尝试更改ClassifierActivity.java
文件中的图像大小。
我认为没有推荐的图像尺寸,因为分类器性能将取决于需要完成的任务。例如,如果你正在做一个简单的颜色分类的简单任务,我认为你不需要一个非常高分辨率的图像。另一方面,如果您尝试对具有非常相似外观的对象进行分类,则较大的图像大小可能有助于为分类器提供更多信息。同样,这取决于您的模型所做的培训。