Привет, я обучил модель классификации 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)
Я получил модель tflite размером 85 МБ и построил файл apk размером 113 МБ, и я провел квантование модели с помощью следующей команды
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
Он дает мне tflite-модель размером 21 МБ, и когда я использую эту квантованную модель для создания apk, она генерирует файл apk размером 135 МБ.
Мои вопросы
Почему размер файла apk увеличивается при использовании квантованной модели?
Как уменьшить размер apk, созданный с помощью модели tflite?