训练后量化后仍“未量化模型”

时间:2019-08-11 06:50:34

标签: tensorflow tensorflow-lite google-coral

我从Custom Vision下载了一个tensorflow模型,并希望在珊瑚tpu上运行它。因此,我将其转换为tensorflow-lite并应用混合后训练量化(据我所知,这是唯一的方法,因为我无法访问训练数据)。 您可以在此处查看代码:https://colab.research.google.com/drive/1uc2-Yb9Ths6lEPw6ngRpfdLAgBHMxICk 然后,当我尝试为边缘tpu编译它时,得到以下信息:

EnumSet

知道我的问题是什么吗?

2 个答案:

答案 0 :(得分:1)

tflite模型无法使用converter.optimizations = [tf.lite.Optimize.OPTIMIZE_FOR_SIZE]进行完全量化。您可以使用制图表达数据集看一下训练后的完整整数量化:https://www.tensorflow.org/lite/performance/post_training_quantization#full_integer_quantization_of_weights_and_activations,只需调整生成器函数以产生代表性样本(例如,相似的图像,以达到图像分类网络应预测的水平)即可。很少有图像足以使转换器识别出最小值和最大值并量化模型。但是,与量化意识学习相比,您的准确性通常较低。

答案 1 :(得分:0)

我找不到源,但是我相信边缘TPU当前仅支持8位量化模型,并且没有混合运算符。

编辑:在珊瑚FAQ上,他们提到该模型需要完全量化。

  

您需要将模型转换为TensorFlow Lite,并且必须为   使用量化意识训练(推荐)或   全整数训练后量化。