Преобразовать модель Keras в квантованную модель Tensorflow Lite, которую можно использовать в Edge TPU - PullRequest
0 голосов
/ 26 сентября 2019

У меня есть модель Keras, которую я хочу запустить на устройстве Coral Edge TPU.Для этого должна быть модель Tensorflow Lite с полным целочисленным квантованием.Я смог преобразовать модель в модель TFLite:

model.save('keras_model.h5')

converter = tf.lite.TFLiteConverter.from_keras_model_file("keras_model.h5")
tflite_model = converter.convert()
open("converted_model.tflite", "wb").write(tflite_model)

Но когда я запускаю edgetpu_compiler converted_model.tflite, я получаю эту ошибку:

Edge TPU Compiler version 2.0.267685300
Invalid model: converted_model.tflite
Model not quantized

Это потому, что мне нужно квантоватьмодель, но я не уверен, как это сделать.Я нашел эту страницу , которая говорит мне, как это сделать, но он хочет, чтобы я сделал генератор входных данных.Вот пример, который он предоставляет:

def representative_dataset_gen():
  for _ in range(num_calibration_steps):
    # Get sample input data as a numpy array in a method of your choosing.
    yield [input]

Как я могу адаптировать этот код для работы с моими входными данными?Откуда взялся num_calibration_steps?Есть лучший способ сделать это?(Я видел ссылки на tf.contrib.tpu.keras_to_tpu_model, но он устарел)

...