首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tensorflow Lite toco -mean_value?

Tensorflow Lite toco -mean_value?
EN

Stack Overflow用户
提问于 2019-01-18 21:40:34
回答 1查看 2.7K关注 0票数 4

因此,我训练了一个带有假量化的tensorflow模型,并将它与一个.pb文件作为输出进行冻结。现在,我想将这个.pb文件提供给tensorflow lite toco以进行完全量化,并获得.tflite文件。

我正在使用这个tensorflow示例:speech

我要问的部分是:

代码语言:javascript
复制
bazel run tensorflow/lite/toco:toco -- \
--input_file=/tmp/tiny_conv.pb --output_file=/tmp/tiny_conv.tflite \
--input_shapes=1,49,43,1 --input_arrays=Reshape_1 --output_arrays='labels_softmax' \
--inference_type=QUANTIZED_UINT8 --mean_values=0 --std_values=2 \
--change_concat_input_ranges=false

以上部分调用toco并进行转换。注意,谷歌将mean_values设置为0,std_values设置为2。他们是如何计算这两个数值的?对于这个特定的模式,它被训练识别单词“是”和“否”。如果我想识别这10位数字,在这种情况下是否需要更改平均值和std值呢?我没有找到任何官方文件来说明这一部分。任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-05 05:06:52

对于uint8量化模型,预期输入值在0到255之间。即使使用FakeQuantization,培训期间的输入值通常是不同范围内的浮动值(例如,0.0到1.0)。mean_value和std_value控制如何将0到255个范围内的uint8值映射到培训期间使用的浮点值。您可以使用这个启发式来确定这些值:

mean_value =对应于浮点0.0的0,255范围内的uint8值。因此,如果浮动范围为0.0,1.0,则mean_value =0。

std_value = (uint8_max - uint8_min) / (float_max - float_min)。因此,如果浮动范围为0.0,1.0,则std_value = 255 / 1.0 = 255。

我们正在研究使这件事更简单的方法。希望这能有所帮助!

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54261772

复制
相关文章

相似问题

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