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

量化在TFLite图中是如何以及何时工作的?

满雨石
2023-03-14

我有一个TF模型,它经过量化训练,冻结,用TOCO转换成tflite,现在我有了tflite HTML图形模型和json

我可以看到,对于我的图中的每个张量,每个都有量化属性(min,max,scale,zero pt),我试图确定这些属性如何应用于每个张量。

例如,我理解量化数据的表示,并且我可以理解,采用量化权重/偏差,乘以比例并添加最小值会返回原始权重/偏差(几乎)。

我不明白的是:

  • 为什么有些张量有量化属性(如Relu、Sigmoid),但没有内在参数(如权重和偏差)?是因为它们是输出张量,并且在数据输入到下一个操作之前应用了量化吗

本质上,如果我将TFLite模型数据解析为一个numpy数组,那么为了从头开始重新创建模型进行推理,我需要知道关于通过网络的数据流(关于量化)的所有信息。

我似乎找不到任何与此相关的文档。任何帮助都将不胜感激。

共有1个答案

李疏珂
2023-03-14

卷积内环执行uint8值的macc。还有一个较小的外环用于计算macc的z偏移部分。在每个内核卷积结束时,您需要使用输入\刻度*内核\刻度/输出\刻度的降刻度乘法器将int32累加器降刻度到8位uint8范围。这三个量表值是在培训期间学习的,并且在tflite推断文件中。本文解释了这些操作。http://openaccess.thecvf.com/content_cvpr_2018/papers/Jacob_Quantization_and_Training_CVPR_2018_paper.pdf

 类似资料:
  • 问题内容: 经常出现在Python模块中。即使阅读了Python的文档,我也不明白它的用途以及使用时间/方式。 有人可以举例说明吗? 关于我收到的基本用法的一些答案似乎是正确的。 但是,我需要了解有关工作原理的另一件事: 对我来说,最令人困惑的概念是当前的python版本如何包含未来版本的功能,以及如何使用当前版本的Python成功地编译使用未来版本的功能的程序。 我猜想当前版本包含了将来的潜在功

  • 何时扩展RecyclerView.Adapter以及它是如何工作的? 我理解一段代码有困难。有人能解释一下这个方法什么时候扩展,它是用来做什么的吗?

  • 请参阅文章末尾的可能解决方案 我正在尝试完全量化rcmalli中的keras VGFace模型,以便在NPU上运行。该模型是一个Keras模型(不是tf.Keras)。 使用TF 1.15进行量化时: 模型已转换,但由于我需要完整的int8量化,我添加: 出现以下错误消息: ValueError:无法设置tensor:获取的值类型为UINT8,但输入0的类型应为FLOAT32,名称:input_1

  • 问题内容: 我正在尝试自己学习Socket。我对Oracle网站上的文字感到有些困惑。我对此有一些疑问。在此先感谢您的明确解释。 setSoTimeout 公共无效setSoTimeout(int超时)引发SocketException 以指定的超时时间启用/禁用SO_TIMEOUT,以毫秒为单位。将此选项设置为非零超时后,与此套接字关联的调用将仅在此时间量内阻塞。如果超时到期,则尽管Socket

  • 我读了一些文章来了解AngularJS的工作原理。 我不明白的一个术语是脏检查。 这到底是什么?看起来像观察者模式,但显然更好。 你能帮我理解这个吗? 编辑:对于那些想了解更多信息的人来说,几年前在NgEurope观看swiip的这段视频也很有用。

  • 我正在组织。冬眠LazyInitializationException异常。据我所知,之所以会出现此问题,是因为我在用户实体中懒散地获取了概要文件对象,并且在初始化代理对象之前,会话已关闭。 执行findAll()方法后会话是否关闭?是否有其他选项可以在同一事务中执行findAll()方法并进行解析,而不是在findAll()方法中进行解析? 我只想知道当调用服务中的findAll方法和UserU