问题标签 [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 投票
4 回答
3200 浏览

tensorflow - Raspberry Pi 上的 Tensorflow Lite - 安装

在我当前的项目中,我在 Raspberry Pi 上使用机器学习来进行传感器融合。自从我听说了 Tensorflow Lite 的发布后,我对部署和使用它在平台上运行 Lite 模型非常感兴趣。

Tensorflow 网站上有 Android 和 iOS 的提示,但我找不到任何其他平台的提示。是否有(WIP)安装/编译指南将 TF Lite 引入 Raspi?

TIA

0 投票
1 回答
568 浏览

android - 有没有办法为 Android 的 tensorflowlite 启用 gpu

有没有办法为 Android 的 tensorflowlite 启用 gpu?我在 android 中使用带有 tensorflow lite 的 inceptionv3 预训练模型,但推理大约需要 1-1.5 秒。我检查了 android 神经网络 api,但它只支持 android 8.1 及更高版本。

0 投票
1 回答
929 浏览

android - Android Tensorflow Lite 解释器崩溃

我正在将 TensorFlow Lite 模型加载到我的 Android 应用程序中,但该应用程序不断崩溃(没有打印出任何错误):

根据 github 上 tensorflow repo 上的一些问题,我的理解是,这是由于tflite模型不好;实际上,如果我从存储库加载演示模型,它工作正常。

如何检查.tflite模型的正确性?.pb我从一个从 repo转换而来的 tensorflow 模型文件创建了它,toco它既没有给我错误也没有给我积极的反馈。tensorflow 模型来自于 keras 模型的转换。

0 投票
1 回答
1402 浏览

python - 找不到命令“toco”

我正在尝试按照 Google 代码实验室将我新训练的 mobilenet 模型转换为 tflite,以便将其与 Android 应用程序一起使用。 https://codelabs.developers.google.com/codelabs/tensorflow-for-poets-2-tflite/index.html#3

我在 Ubuntu 16.04 LTS 机器上。它说

找不到命令“toco”

谷歌告诉我 toco 不能在 Windows 上运行,但我在 Ubuntu 机器上,我的 TensorFlow 非常适合训练和推理。

由于 TensorFlow 有效,并且 toco 与 TensorFlow 一起提供,因此理想情况下,toco 应该可以正常工作,但实际上不能。

它作为命令行脚本安装,带有 TensorFlow,因此您可以轻松访问它。

需要帮助解决 toco(TensorFlow Lite 优化转换器)的问题,以便我可以将我的模型转换为 .lite 文件并在 Android 设备上运行它。

0 投票
1 回答
954 浏览

android - 将模型转换为 Tensorflow-lite 时出错

我已经使用 DNN 训练了一个自定义模型,并尝试使用 TF_Lite 在 Android 中使用它。我在演示应用程序中使用相同的方法来加载资产文件。

但我收到以下错误。

我使用 toco 进行转换... Android 中的单个 Activity 类。

0 投票
1 回答
790 浏览

tensorflow-lite - inceptionV3 tflite 模型的准确度得分不如 retrained_graph.pb 文件

将 retrained_graph.pb 转换为 tflite 文件后模型得分不好。

我们按照以下步骤获取 tflite 文件:

步骤1。收集数据图像(.jpg)并放入文件夹结构中

Step2 在训练之前,设置图像大小以及训练模型所需的架构。(inceptionV3/MobileNet)

设置图像大小:

设置inception_v3的架构:

Step3:使用默认的 4000 epoch 重新训练模型:

在我的情况下,行尾的输出:

Step4:修改scripts/label_image.py如下

Step5:使用 retrained_graph.pb 对图像进行分类

输出:评估时间(1张图像):0.816s

德国蟑螂 0.88213 brownbandedcockroach 0.0920959 美国蟑螂 0.024512 澳大利亚蜘蛛甲虫 0.000708872 温室蟑螂 0.000419116

Step6:优化模型

Step7:使用optimized_graph.pb验证优化模型:

评估时间(1-image):0.713s

Step8:将模型转换为TFLite格式:(1)使用retrained_graph.pb

(2) 使用优化的_graph.pb

(3) 使用 bazel 转换 tflite retrained_graph.pb 并添加 input_names 和 output_names 参数:

(4) 使用 bazel 转换 tflite optimized_graph.pb 并添加 input_names 和 output_names 参数:

在这里,您可以比较我们在转换为 tflite 文件之前获得的分数,即直接从重新训练的图形和转换为 tflite 文件之后获得的分数

来自 retarined_graph.pb 的分数:

来自 TensorFlow .lite 文件的分数:

请让我知道需要做些什么来解决它。

0 投票
2 回答
780 浏览

android - TFLite 演示模型上的静态图像精度低

我正在尝试使用来自TensorFlow for Poets 2 的Mobile Net Transfer Learning 示例进行图像分类的 TFLite 实现

我能够使用代码实验室中的四个花朵样本成功完成迁移学习并获得以下屏幕 迁移学习后的应用

这是被分类的连续图像流。

我需要在拍照而不是流后对图像进行分类,然后根据结果采取一些行动。以下是我的方法。

  1. 创建一个基本的相机应用程序
  2. 拍照并保存到存储
  3. 保存图像的 uri,然后从 URI 创建一个可绘制对象。
  4. 然后将此可绘制对象转换为位图。
  5. 位图大小转换为 224 x 224 以匹配 Mobile Net 模型的输入
  6. 我收到的准确度在 0.05 和 0.06 范围内,而不是来自 Code Labs 的连续流样本,它在经过训练的花卉类中给出了 0.80 - 0.90 范围内的准确度

下面是我将位图转换为 224 x 224 大小的代码

即使我将原始位图传递给本身将图像转换为 224 x 224 的分类器,结果也是相同的。我应该对图像进行更多的额外处理还是需要更改模型中的任何配置?

0 投票
1 回答
362 浏览

android - TfLite 图像分类分数不一致,同一图像会不断增加,直到达到一定的饱和度(实际分数)

对于相同的“解释器”实例,相同图像的分数会增加,直到达到某种饱和度。

为 ImageClassifier 创建实例并使用相同的实例对 Frame 进行分类并为同一图像运行推理。

对同一图像的帧进行分类。可以从 SD 卡中获取相同的图像。

ClassifyFrame() ImageClassifier.java 的方法

ImageClassifier.java 的 applyFilter() 方法

打印前 K 个标签,作为结果显示在 UI 中。

在应用程序第一次启动时,图像分类得分为 0.06,然后如果我们在某些事件上调用分类图像(),点击得分再次增加到 0.13,并且在相同的过程中它不断增加,直到达到 0.86(饱和度)。

我不确定它为什么会发生,但它发生在两种类型的 TfLite 模型 inceptionV3 和 MobileNet 上。

0 投票
2 回答
165 浏览

gpu - 我想在 tensorflow lite 中操作使用 gpu 的方式,我可以为此学习什么

首先,让我解释一下我必须做什么。我的开发环境是 Tizen OS。可能你不熟悉,反正这个操作系统使用基于 Linux 内核的 redhat 并针对移动设备、电视等。我的目标设备由 exynos 5422 和 arm mali-t628 组成。我的主要工作是实现一些 gpu 库,让 tensorflow lite 的操作可以使用该库。我继续构建并安装 tensorflow lite 作为 rpm 包文件。我在谷歌上搜索了很多次关于 tensorflow 和 gpu 的信息。并获得一些关于 cuda 的无用信息。我没有看到任何关于我的案例的信息(tizen 和 mali gpu)。我认为 linux 有像 cpu 或库这样的 gpu 指令.. 但我找不到它们。你能建议搜索关键字或文件吗?

0 投票
0 回答
371 浏览

python - Tensorflow:数组activation1,它是Div运算符的输入,产生输出数组dropout/div,缺少最小/最大数据

我正在使用张量流 1.8.0rc1。我正在尝试将一个非常简单的 NN 模型保存为 tflite 格式,并按照以下文档进行权重量化:https ://www.tensorflow.org/performance/quantization 。

但是,使用 toco 转换时,我收到此错误:

Array Relu 是生成输出数组 dropout/div 的 Div 运算符的输入,缺少最小/最大数据,这是量化所必需的。以非量化输出格式为目标,或者更改输入图以包含最小/最大信息,或者如果您不关心结果的准确性,则传递 --default_ranges_min= 和 --default_ranges_max=。\n"

这是图表:

在某些时候,它并没有抱怨 RELU,而是分配操作(不知道如何解决),如果我删除 RELU 层,它会抱怨添加层。知道发生了什么吗?

编辑:

刚刚意识到在 dropout_1 和 activation2 之间(见图)有一个 act_quant 节点,它必须是 activation2 的假量化(一个 RELU)。这不会发生在第一层,在 dropout 和 activation1 之间。我猜这是问题?根据 tensorflow 量化教程(之前附上),那里描述的脚本应该用 toco 量化权重的所有必要信息重写图。