当前位置: 首页 > 知识库问答 >
问题:

全量化tensorflow lite模型的输入图像

后易安
2023-03-14

我已经训练了一个简单的CNN模型在Ciafer-10上使用假量化(https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/quantize)。然后我用toco生成了一个. tflite文件。现在我想使用一个python解释器来测试tflite模型。

因为我用了tf。形象在训练期间,按图像标准化减去平均值并除以方差。我需要对测试数据做同样的事情,对吗?但是,问题是,我的模型已经被tflite完全量化了,它只接受uint8数据作为输入。要进行图像标准化,我需要将图像转换为float32。那么,我如何将其转换回uint8,或者在这种情况下,图像标准化对于测试数据来说是必要的吗?谢谢

共有1个答案

鲜于致远
2023-03-14

因此,我需要对测试数据进行标准化,以获得良好的准确性。为此,我直接将uint8输入图像馈送到tf。形象per_图像_标准化功能。该函数将uint8数据转换为float32,然后进行标准化(减去平均值,除以标准值)。您可以在此处找到该函数的源代码:https://github.com/tensorflow/tensorflow/blob/r1.11/tensorflow/python/ops/image_ops_impl.py

现在,我有了标准化的float32输入图像。我所做的是编写一个量化函数,将float32图像量化回uint8。数学来源于本文:https://arxiv.org/abs/1803.08607

现在,我有了标准化的uint8输入图像,然后我使用tflite解释器python API来测试模型。它按预期工作。

 类似资料:
  • 我使用以下代码生成量化的tflite模型 但是根据训练后量化: 生成的模型将完全量化,但为了方便起见,仍然采用浮点输入和输出。 要为Google Coral Edge TPU编译tflite模型,我还需要量化输入和输出。 在模型中,我看到第一个网络层将浮点输入转换为,最后一个网络层将转换为浮点输出。如何编辑tflite模型以除去第一个和最后一个浮动层? 我知道我可以在转换期间将输入和输出类型设置为

  • 我一直在尝试使用Keras构建一个多输入模型。我来自使用顺序模型,并且只有一个相当直接的输入。我一直在查看StackOverflow上的留档(https://keras.io/getting-started/functional-api-guide/)和一些答案(如何在Keras 2.0中“合并”顺序模型?)。基本上,我想要的是让两个输入训练一个模型。一个输入是一段文本,另一个是从该文本中提取的一

  • 我在理解如何将另一个类中的动态值分配到其他变量时遇到了一些问题-我尝试使用正确的名称空间、正确的语法并阅读错误提供的文档-但是即使尝试实现所示的示例,也没有运气。我对C#知之甚少,因为我主要从事前端工作,但我必须在我工作的公司里逐步提高并开始学习一些面向后端的东西 我目前的代码如下: BrazeConnectionInputs.cs CreateCampaign.cs

  • 我训练了一个模型,输入了张量:输入形状:[150]输入类型: 在输出中,该张量为:输出形状:[1 50 17]输出类型: 如何在Java中创建这些?在Android设备上使用它?谢谢

  • 问题内容: 我正在使用以下方式动态加载Python模块 有人可以告诉我什么是模块类型的正确类型注释。该模块不包含一个模块,在其他地方也找不到答案。 问题答案: 您正在寻找。

  • 我在android studio上运行了一个Tensorflow示例(https://github.com/Tensorflow/examples/blob/master/lite/examples/image_classification/android/readme.md),得到以下错误。