量化的tflite模型的apk比未量化的大

时间:2018-12-20 09:58:58

标签: android tensorflow tensorflow-lite

嗨,我已经使用自定义数据集训练了InceptionV3分类模型,并获得了retrained.pb和retrained_labels.txt。我想在手机中使用该模型,并使用以下代码转换了模型

import tensorflow as tf
graph_def_file = "retrained_graph.pb"
input_arrays = ["Mul"]
output_arrays = ["final_result"]
converter = tf.lite.TFLiteConverter.from_frozen_graph(
  graph_def_file,input_arrays,output_arrays)
tflite_model = converter.convert()
open("converted_model.tflite", "wb").write(tflite_model)

我得到了大小为85 MB的tflite模型,并构建了一个大小为113 MB的apk文件,并使用以下命令对模型进行了量化

tflite_convert \
  --output_file=foo.tflite \
  --graph_def_file=retrained_graph.pb \
  --inference_type=QUANTIZED_UINT8 \
  --input_arrays=Mul \
  --output_arrays=final_result \
  --mean_values=128 \
  --std_dev_values=127 \
  --default_ranges_min=0 \
  --default_ranges_max=6 

它为我提供了一个大小为21 MB的tflite模型,当我使用此量化模型来构建apk时,它会生成一个大小为135 MB的apk文件。

我的问题是

  1. 为什么我使用量化模型时apk文件的大小增加了?

  2. 如何减少使用tflite模型构建的apk大小?

1 个答案:

答案 0 :(得分:0)

我认为您已经忘记从APK中删除原始模型。因此,您实际上是在将量化模型和浮动模型构建到APK中。