Как преобразовать модели Tensorflow .pb в Tensforflow Lite - PullRequest
0 голосов
/ 19 марта 2020

Мне нужно преобразовать модель tenorflow pb в tenorflow lite , используя Google CoLab .

Процедуры преобразования следующие:

1) Чтобы загрузить модель:

from google.colab import files
pbfile = files.upload()

2) Чтобы преобразовать ее:

import tensorflow as tf
pb_file = 'data_513.pb'
tflite_file = 'data_513.tlite'

converter = tf.lite.TFLiteConverter.from_frozen_graph(pb_file, ['ImageTensor'], ['SemanticPredictions'], 
                                                      input_shapes={"ImageTensor":[1,513,513,3]})

tflite_model = converter.convert()
open(tflite_file,'wb').write(tflite_model) 

Преобразование завершается ошибкой со следующей ошибкой

Проверка не удалась: array.data_type == array.final_data_type Массив "ImageTensor" содержит несоответствующие фактические и окончательные типы данных (data_type = uint8, final_data_type = float).

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

1 Ответ

0 голосов
/ 19 марта 2020

Наконец-то нашел решение. Вот разрез для использования другими:

import tensorflow as tf
pb_file = 'model.pb'
tflite_file = 'model.tflite'

converter = tf.lite.TFLiteConverter.from_frozen_graph(pb_file, ['ImageTensor'], ['SemanticPredictions'], 
                                                      input_shapes={"ImageTensor":[1,513,513,3]})


converter.inference_input_type=tf.uint8
converter.quantized_input_stats = {'ImageTensor': (128, 127)}  # (mean, stddev)

tflite_model = converter.convert()
open(tflite_file,'wb').write(tflite_model) 

interpreter = tf.lite.Interpreter(model_content=tflite_model)
interpreter.allocate_tensors()

files.download(tflite_file)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...