问题标签 [tensorflow-lite]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1500 浏览

tensorflow - tensorflow lite 模型是否已经量化?

转换后的tensorflow lite模型是否总是有量化的计算和输出?还是取决于张量流模型的输入和推理类型?

0 投票
1 回答
1431 浏览

tensorflow - 我正在尝试对 tensorflow lite 模型进行量化的 mobilenet 模型,但遇到错误

首先,我从 Mobilenet 下载了一个量化模型。它包含在 Mobilenet_v1_1.0_224 中。然后我做了以下

以下是图表摘要

所以通过进行转换,我遇到了以下错误

140 个运算符,232 个数组(0 个量化) 2018-03-01 23:12:03.374916:I tensorflow/contrib/lite/toco/graph_transformations/graph_transformations.cc:39] 一般图形转换通过 1:63 个运算符,152 个数组( 1 个量化)2018-03-01 23:12:03.376325:I tensorflow/contrib/lite/toco/graph_transformations/graph_transformations.cc:39] 预量化图转换之前:63 个运算符,152 个数组(1 个量化)2018-03 -01 23:12:03.377492: F tensorflow/contrib/lite/toco/tooling_util.cc:1272] 数组 MobilenetV1/MobilenetV1/Conv2d_0/Relu6,它是 DepthwiseConv 算子的输入,产生输出数组 MobilenetV1/MobilenetV1/Conv2d_1_depthwise/ Relu6,缺少最小/最大数据,这是量化所必需的。要么针对非量化输出格式,

谢谢你的帮助

0 投票
1 回答
1922 浏览

android - 在移动设备上运行循环神经网络(推理)的最快方法

我所拥有的:Tensorflow 中经过训练的循环神经网络。

我想要的:一个可以尽可能快地运行这个网络的移动应用程序(仅限推理模式,无需训练)。

我相信有多种方法可以实现我的目标,但我希望您提供反馈/更正和补充,因为我以前从未这样做过。

  1. 张量流精简版。Pro:直截了当,可在 Android 和 iOS 上使用。魂斗罗:可能不是最快的方法,对吧?
  2. 张量RT。Pro:非常快 + 我可以编写自定义 C 代码以使其更快。魂斗罗:用于 Nvidia 设备,所以在 Android 和 iOS 上运行并不容易,对吧?
  3. 自定义代码 + 库,如 openBLAS。Pro:可能非常快,并且有可能在 iOS 上的 Android 上链接到它(如果我没记错的话)。对比:循环神经网络有多大用处?它真的在 Android + iOS 上运行良好吗?
  4. 重新实现 Everything。我还可以用 C/C++ 重写整个计算,这对于循环神经网络来说应该不会太难。Pro:可能是最快的方法,因为我可以优化所有内容。反对:需要很长时间,如果网络发生变化,我也必须更新我的代码(尽管如果它真的是最快的,我愿意这样做)。另外,在 Android 上调用库 (C/C++) 的速度有多快?我是否受到 Java 接口的限制?

有关移动应用程序的一些详细信息。该应用程序将记录用户的声音,进行一些处理(如 Speech2Text)并输出文本。我不想找到“足够快”的解决方案,而是最快的选择,因为这将发生在非常大的声音文件上。所以几乎每一次速度改进都很重要。你有什么建议,我应该如何解决这个问题?

最后一个问题:如果我想雇人来帮助我,我应该寻找 Android/iOS-、Embedded- 或 Tensorflow- 类型的人吗?

0 投票
1 回答
5316 浏览

tensorflow - 我可以将 tensorflow inception pb 模型转换为 tflite 模型吗?

我看到了转换tensorflow pb模型的指南,只给了mobilenet模型

https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/lite#step-2-model-format-conversion

所以我的问题是,我可以将 tensorflow inception pb 模型转换为 tflite 模型吗?

如果是,我在哪里可以获得检查点 (ckpt) 文件?我在https://github.com/tensorflow/models/tree/master/research/slim/nets中找不到它们的初始模型。

我错过了什么吗?

0 投票
1 回答
432 浏览

android - 如何将 tensorflow 模型文件转换为 tensorflow lite?graph.pb 到 graph.lite

(base) C:\tensorflow-master>bazel run --config=opt \ //tensorflow/contrib/lite/toco:toco -- \ --input_file=optimized_graph.pb \ --output_file=abc.tflite \ -- input_format=TENSORFLOW_GRAPHDEF \ --output_format=TFLITE \ --inference_type=FLOAT \ --input_shape=1,128,128,3 \ --input_array=input \ --output_array=final_result 警告:配置值未在任何 .rc 文件中定义:选择错误:未找到运行目标信息:经过时间:11.002 秒失败:构建未成功完成(加载了 0 个包)错误:构建失败。未运行目标

0 投票
1 回答
1195 浏览

tensorflow - tensorflow lite 推理与常规推理给出不同的结果

我有一个模型,可以从图像中提取 512 个特征(-1,1 之间的数字)。我使用这里的说明将这个模型转换为 tflite 浮点格式 https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/lite

我使用原始模型和 tflite 模型对同一图像进行推理。

我得到了不同的向量结果,我期望得到非常相似的结果,因为我没有使用量化格式。据我了解,tf-lite 应该只提高推理性能时间而不影响特征计算。

我的问题这正常吗?其他人遇到过这个吗?我在任何地方都没有找到任何关于这个的话题。

用代码更新。

我有这个我训练过的网络(删除了许多项目,因为我无法共享完整的网络)placeholder = tf.placeholder(name='input', dtype=tf.float32,shape=[None, 128,128, 1])

bazel-bin/tensorflow/contrib/lite/toco/toco --input_file=/tmp/network_512.pb --input_format=TENSORFLOW_GRAPHDEF --output_format=TFLITE --output_file=/tmp/tffiles/network_512.tflite --inference_type=FLOAT --input_type=FLOAT --input_arrays=input --output_arrays=embeddings --input_shapes=1,128,128,1

我在 python 中使用 tensorflow 运行 network_512.pb,使用https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/lite/java/demo 中的代码运行 network_512.tflite,我在其中修改了代码以加载我的联网并运行它。

0 投票
1 回答
2006 浏览

tensorflow - 使用 toco 将假量化 tensorflow 模型(.pb)转换为 tensorflow lite 模型(.tflite)失败

我尝试按照tensorflow 量化中的说明生成量化的 tensorflow lite 模型。

首先,我在训练过程中使用 tf.contrib.quantize.create_training_graph() 和 tf.contrib.quantize.create_eval_graph() 将假量化节点插入到图中,最后生成一个冻结的 pb 文件(model.pb)。

其次,我使用以下命令将我的假量化 tensorflow 模型转换为量化 tensorflow lite 模型。

隐蔽过程失败,日志如下:

有什么问题,我错在哪里?

0 投票
1 回答
147 浏览

android - Tensorflow Lite 示例:Wifi 摄像头支持?

我想在 iOS/Android 上使用带有 Wifi 摄像头的Tensorflow Lite 示例。目前支持吗?

注意:移动设备将充当 Wifi 热点,摄像机将通过RTSP进行直播。

如果不支持,我可以在 GitHub 上打开功能请求吗?

提前致谢。

编辑:我完全错了使用相机馈送的这个样本。它使用一个简单的图像。对于那个很抱歉。

0 投票
1 回答
235 浏览

tensorflow - Tensorflow Lite 导出看起来不添加权重并添加不受支持的操作

我想用检查点中保存的权重重新加载我的一些模型变量,然后将其导出到 tflite 文件。

没有查看代码,这个问题有点棘手,所以我用完整的代码制作了这个 Colab jupyter notebook 以更好地解释它(所有代码都在工作,你实际上可以复制一个新的协作并根据需要进行更改):

https://colab.research.google.com/drive/1wSor4CxEz36LgElVi4y_N8uiSt4-j9b2#scrollTo=XKBQzoW_wd4A

我让它工作但有两个问题:

  • 导出的 .tflite 文件就像 3Ks,所以我不相信它是包含权重的整个模型。只有输入是128x128x3的图像,每一个权重超过3K。
  • 当我最终在 Android 中导入模型时,出现此错误:“未找到名称‘VariableV2’的自定义操作/n 未找到名称‘ReorderAxes’的自定义操作/n 注册失败。”

也许最后一个错误是导致保存/恢复操作?当我保存图形定义时,它们看起来就在那里。

提前致谢。

0 投票
4 回答
4878 浏览

tensorflow - 如何在制作 TensorFlow Lite 模型时设置 input_array 和 output_array 名称

操作系统平台和发行版:Linux Ubuntu 14.04 TensorFlow 版本:来自二进制的 tensorflow (1.4.0),CUDA/cuDNN 版本:cuda 8.0

我已经使用 tensorflow 训练了一个自定义模型,并且我正在尝试将其作为移动应用程序的 tensorflow lite 模型。我的模型定义如下:

其中 conv4_1 和 conv4_2 是输出层。

我冻结模型:

之后,我可以使用 tensorboard 来查看图表。当我读回来仔细检查时,我得到了与检查点模型相同的信息。

然后,我尝试将 frozen_model.pb 保存到 tensorflow lite 模型。虽然 tensorflow 1.4.0 没有 tensorflow lite 模块,但我从 github 和 bazel run toco 签出了 tensorflow,如下所示:

但是,我收到有关未找到输出数组的错误:

问题:

  1. 如何设置--output_array=Squeeze,Squeeze_1参数?我认为它与张量板中的输出节点相同freeze_graph(),我确实找到了“Squeeze”和“Squeeze_1”节点在此处输入图像描述

  2. 如何设置--input_shape=1,128,128,3 --input_array=image_height,image_width,input_image参数?我检查并发现手机确实有固定大小的图像输入,但在我的模型中,输入图像的大小和完全卷积输入没有固定大小,例如:

并重塑为 1高*3 在此处输入图像描述

那么,如何将其写为输入形状?