首页 > 解决方案 > 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 量化权重的所有必要信息重写图。

标签: pythontensorflowtensorflow-lite

解决方案


推荐阅读