преобразовать модель .pb в квантованную модель tflite

Совершенно новый для Tensorflow, я создал одну модель обнаружения объектов (.pb и .pbtxt), используя модель «быстрее_rcnn_inception_v2_coco_2018_01_28», которую я нашел в зоопарке TensorFlow. Он отлично работает с окнами, но я хочу использовать эту модель на TPU с коралловым краем Google. Как я могу преобразовать мою замороженную модель в квантованную модель edgetpu.tflite?


person mevada.ravikumar    schedule 24.06.2020    source источник


Ответы (1)


Есть еще два шага к этому конвейеру:

введите описание изображения здесь

1) Преобразование .pb в ›tflite:

Я не буду вдаваться в подробности, поскольку на официальной странице tenorflow есть документация, и она очень часто меняется, но я все же постараюсь ответить конкретно на ваш вопрос. Это можно сделать двумя способами:

  • Обучение с учетом квантования: это происходит во время обучения модели. Я не думаю, что это относится к вам, поскольку ваш вопрос, похоже, указывает на то, что вы не знали об этом процессе. Но, пожалуйста, поправьте меня, если я ошибаюсь.

  • Квантование после обучения: в основном загружаем вашу модель, где все тензоры имеют тип float, и преобразуем ее в форму tflite с помощью тензоров int8. Опять же, я не буду вдаваться в подробности, но приведу два реальных примера :) а) с кодом б) с инструментами tflite_convert < / а>

2) Скомпилируйте модель из tflite - ›edgetpu.tflite:

После того, как вы создали полностью квантованную модель tflite, поздравляю, ваша модель теперь намного более эффективна для платформы руки, а размер намного меньше. Однако он по-прежнему будет запускаться на процессоре, если вы не скомпилируете его для edgetpu. Вы можете просмотреть этот документ для установки и использования. Но скомпилировать это так же просто, как:

$ edgetpu_compiler -s your_quantized_model.tflite

Надеюсь это поможет!

person Nam Vu    schedule 24.06.2020