首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于量化LeNet5模型的TFLite推理。如何使用M参数将int32缩小到int8?

基于量化LeNet5模型的TFLite推理。如何使用M参数将int32缩小到int8?
EN

Stack Overflow用户
提问于 2021-12-22 09:08:05
回答 1查看 88关注 0票数 0

我用Keras/TensorFlow训练了LeNet5 CNN。我使用TensorFlow Lite来量化FP32权重,并激活INT8。我提取并可视化了重量,偏倚,零分的鳞片,多亏了尼特恩.

我需要用C语言设计LeNet5 CNN。在FP32格式中,我的模型推理工作得很好。但是,我不明白用INT8格式进行推断的要点。

从“有效整数-算术推理的神经网络量化和训练”:https://arxiv.org/abs/1712.05877中,作者详细描述了用量化INT8卷积进行推理的工作流程:在输入和权值之间的卷积步骤之后的卷积INT8推理,然后加上偏差,作者精确地说明了从INT32到INT8的降尺度是由M= (S1*S2)/S3定义的M常数完成的。

S1是输入的规模。对我来说,S2是权重的尺度,S3是输出的尺度。

然而,在Netron中,对于conv2d权重,我无法查看所涉及的秤:Netron中的conv2d滤波器

但我可以查看完全连接操作的规模:内强重物

我的问题是:卷积的S2是什么?这是Netron可视化的问题,还是我误解了卷积过程的M下采样因子?

谢谢你的帮助

EN

回答 1

Stack Overflow用户

发布于 2022-01-24 07:11:29

Netron不支持tflite的每通道量化参数.

每个输出通道都有一个刻度。使用tflite解释器检查这些。

代码语言:javascript
复制
i = tf.lite.Interpreter('/path/to/my_model.tflite')
[y['quantization_parameters'] for y in i.get_tensor_details() \
  if y['name'] == 'sequential/conv2d_1/Conv2D']
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70446587

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档