tenorflow lite (tflite) вызывает ошибку после изменения размера входного измерения

Я использую mobilenet_ssd.tflite в качестве режима из официального tenorflow github. Код ниже:

int input = interpreter->inputs()[0];
interpreter->ResizeInputTensor(input, sizes);

Это вызовет ошибку при вызове:

interpreter->AllocateTensors()

Если я закомментирую интерпретатор-> ResizeInputTensor (input, sizes); То все в порядке.

Какие-либо предложения?

Еще один вопрос, который я задал: измените размер входного изображения для mobilenet_ssd с использованием tenorflow


person xhsoldier    schedule 07.06.2018    source источник


Ответы (1)


ResizeInputTensor ограничен архитектурой нейронной сети. Это не удается, поскольку MobileNet и MobileNet SSD могут обрабатывать входные данные только фиксированного размера.

То, что может сработать, - это изменение размера партии. Например, вы можете попробовать изменить размер с (1, 244, 244, 3) на (4, 244, 244, 3) и выполнить вывод для 4 изображений за один Invoke вызов.

person miaout17    schedule 08.06.2018
comment
Размер MobileNet SSD можно изменить с помощью тензорного потока рабочего стола, я предполагаю, что есть оператор, который не может быть обработан tflite. Я хочу повторить эту операцию в tflite. но я не знаю, какая операция не поддерживает изменение размера в tflite. tenorflow / contrib / lite / kernels / reshape.cc: 68 num_input_elements! = num_output_elements (17328! = 4332) - person xhsoldier; 11.06.2018