Сжатие tflite-графа с 8 МБ до 2 МБ

#python-3.x #tensorflow #machine-learning #computer-vision

#python-3.x #тензорный поток #машинное обучение #компьютерное зрение

Вопрос:

У меня есть следующий замороженный график вывода deeplabv3_mnv2_pascal_tain. Я получил этот график с веб-сайта tensorflows, размер этого графика составляет 8,8 мб. Моя задача — преобразовать этот график в формат tflite таким образом, чтобы размер графика tflite составлял от 2 до 3 МБ.

Я использую следующий код для преобразования deeplabv3_mnv2_pascal_tain graph в tflite:

 $ bazel-bin/tensorflow/lite/toco/toco 
   --input_file=deeplabv3_mnv2_pascal_tain.pb 
   --output_file=output2/test.tflite 
   --inference_input_type=QUANTIZED_UINT8  
   --inference_type=FLOAT 
   --input_arrays=ImageTensor  
   --output_arrays=SemanticPredictions  
   --input_shapes=1,513,513,3 
   --mean_values=128 
   --std_dev_values=128
 

Однако выходной tflite-график, который я получаю, имеет размер 8,5 МБ. Вы можете увидеть выходной график здесь.

Как мне сжать этот tflite-график так, чтобы получить график размером 2,7 МБ

Чтобы быть более понятным, я хочу получить этот график tflite, сжав файл deeplabv3_mnv2_pascal_tain.pb

Комментарии:

1. Вы можете попробовать квантование после обучения. Используйте post_training_quantize= True флаг для квантования чисел с плавающей запятой высокой точности до 8-битных целых чисел.

2. Можете ли вы уточнить? не могли бы вы протестировать это на связанном графике? Я не получаю требуемого результата, используя ваше решение

Ответ №1:

Мне не нужно преобразовывать график размером 8 мб в 3 МБ, я обнаружил, что график размером 3 МБ уже доступен здесь http://download.tensorflow.org/models/deeplabv3_mnv2_dm05_pascal_trainaug_2018_10_01.tar.gz