itlab-vision / dl-benchmark

Deep Learning Inference benchmark. Supports OpenVINO™ toolkit, Caffe, TensorFlow, TensorFlow Lite, ONNX Runtime, OpenCV DNN, MXNet, PyTorch, Apache TVM, ncnn, etc.

Home Page:http://hpc-education.unn.ru/dli

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Результаты конвертации и бенчмаркина моделей в TFLite из списка 10 публичных моделей.

FenixFly opened this issue · comments

Для конвертации и бенчмаркинга моделей в рамках проекта предполагалась конвертация и запуск в TFLite следующих публичных моделей.

  • densenet-121-tf
  • googlenet-v1
  • googlenet-v4-tf
  • squeezenet1.1
  • resnet-50-pytorch
  • ssd_512_resnet50_v1_coco
  • ssd_512_vgg16_atrous_voc
  • ssd_300_vgg16_atrous_voc
  • ssd_512_mobilenet1.0_coco

Был реализован скрипт, который скачивает данные модели, и конвертирует их. TF модели конвертируются в TFLite напрямую, остальные через промежуточное сохранение в ONNX, затем с помощью скрипта в текущем репозитории tflite_converter.py в формат TFLite. Результаты следующие.

Результаты конвертации:

  • Модель densenet-121-tf сконвертировалась из TF в TFLite, бенчмарк запущен с batch 1 и 8.
  • Модель googlenet-v1 не сконвертировалась из Caffe в ONNX.
  • Модель googlenet-v4-tf сконвертировалась из TF в TFLite, бенчмарк запущен с batch 1 и 8.
  • Модель squeezenet1.1 сконвертировалась из Сaffe в ONNX и далее в TFLite, бенчмарк запущен с batch 1. В ONNX после конвертации зафиксирован batch 1, поэтому запуск batch 8 невозможен. Необходим инструмент для изменения размера batch в ONNX модели.
  • Модель resnet-50-pytorch сконвертировалась из PyTorch в ONNX и далее в TFLite, бенчмарк запущен с batch 1. В ONNX после конвертации зафиксирован batch 1, поэтому запуск batch 8 невозможен. Необходим инструмент для изменения размера batch в ONNX модели.
  • Модели ssd_512_resnet50_v1_coco, ssd_512_vgg16_atrous_voc, ssd_300_vgg16_atrous_voc, ssd_512_mobilenet1.0_coco сконвертировались из MXNet в ONNX с потерей NMS слоя модели (на выходе получилось 3 тензора). Конвертация из ONNX в TFLite падает с ошибкой о неверной размерности в слое ssd0_multiperclassdecoder0_slice_axis0.