CUSTOM: операция работает с неподдерживаемым типом данных EDGETPU

Я пытаюсь переобучить модель пользовательского детектора объектов для Coral USB и следую руководствам по coral ai по этой ссылке; https://coral.ai/docs/edgetpu/retrain-detection/#requirements < / а>

Переобучил модель ssd_mobilenet_v2, преобразовав модели edge tpu с помощью компилятора edge tpu. Результат компилятора:

Operator Count Status
CUSTOM 1 Operation is working on an unsupported data type
ADD 10 Mapped to Edge TPU
LOGISTIC 1 Mapped to Edge TPU
CONCATENATION 2 Mapped to Edge TPU
RESHAPE 13 Mapped to Edge TPU
CONV_2D 55 Mapped to Edge TPU
DEPTHWISE_CONV_2D 17 Mapped to Edge TPU

И визуализируйте из netron;

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

Пользовательский оператор не сопоставлен. Все операции отображаются и работают на tpu, но custom работает на cpu. Я видел такого же оператора в ssd_mobilenet_v1

Как я могу преобразовать всех операторов в модели edgetpu? Что такое кастомный оператор? (вы можете найти поддерживаемых операторов здесь https://coral.ai/docs/edgetpu/models-intro/#supported-operations)


person Cansel Oğuz    schedule 16.03.2021    source источник
comment
После запуска модели TF Lite через компилятор Edge TPU все, что сопоставлено с Edge TPU, помещается в одну операцию (edgetpu-custom-op). Это означает, что если модель полностью работает на Edge TPU, вся модель находится в этой операции и вводе / выводе. См.: coral.ai/docs/notes/build-coral/   -  person Manoj    schedule 19.03.2021
comment
@Manoj спасибо, проверю свои версии   -  person Cansel Oğuz    schedule 22.03.2021
comment
@Manoj все еще не справляется .... версии есть; ~ $ edgetpu_compiler -v --- ›Edge TPU Compiler версии 15.0.340273435 ~ $ python3 -c import pycoral.utils.edgetpu; print (pycoral.utils.edgetpu.get_runtime_version ()) ----- ›BuildLabel (COMPILER = 5.4.0 20160609, DATE = отредактировано, TIME = отредактировано), RuntimeVersion (13)   -  person Cansel Oğuz    schedule 23.03.2021


Ответы (1)


Это правильный вывод для модели SSD. TFLite_Detection_PostProcess - это настраиваемая операция, которая не выполняется на EdgeTPU. Если вы запускаете netron на одной из наших моделей SSD по умолчанию на https://coral.ai/models/, в этом случае вы увидите, что PostProcess работает на CPU.

В случае вашей модели каждая часть модели была успешно преобразована. Последний этап (который принимает выходные данные модели и преобразует их в различные полезные выходные данные) - это настраиваемая реализация в TFLite, которая уже оптимизирована для скорости, но представляет собой общие вычисления, а не операции TFLite, которые ускоряет EdgeTPU.

person Manoj    schedule 30.03.2021