【问题标题】:Not all the values in DNN model are quantized after using tf.lite.Optimize.DEFAULT使用 tf.lite.Optimize.DEFAULT 后,并非 DNN 模型中的所有值都被量化
【发布时间】:2019-08-22 02:08:46
【问题描述】:

我正在尝试将 DNN 模型的 .pb 格式更改为 .tflite,并且我还想量化所有权重和偏差。使用以下代码时,权重被量化为 8 位,但偏差仍然是浮动的。

我已经使用了最新版本的 tf-nightly。代码是:

import tensorflow as tf

graph_def_file = "DNN_S.pb"

converter=tf.lite.TFLiteConverter.from_frozen_graph(graph_def_file,input_arrays,output_arrays,input_shapes)

converter.target_spec.supported_ops=[tf.lite.OpsSet.TFLITE_BUILTINS,tf.lite.OpsSet.SELECT_TF_OPS]

converter.optimizations = [tf.lite.Optimize.DEFAULT]

tflite_model = converter.convert()

open("model.tflite", "wb").write(tflite_model)

如何将偏差的格式也更​​改为 8 位整数?

【问题讨论】:

    标签: python tensorflow-lite


    【解决方案1】:

    当您在 TensorFlow Lite 中进行训练后量化时,您实际上并没有将整个模型转换为 8 位。

    相反,转换器正在创建一个混合模型,其中权重被量化,但模型的其余部分保留为浮点数。该技术已证明可以在减少量化精度下降的同时提供较大的模型压缩优势。

    要创建真正的量化模型,您必须查看量化感知训练。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-13
      • 2012-07-25
      • 2019-10-27
      • 1970-01-01
      • 2021-12-11
      • 1970-01-01
      • 2023-04-09
      • 2012-11-11
      相关资源
      最近更新 更多