Максимальное время выполнения логического потока на первой точке данных уменьшается, на последующих точках данных - PullRequest
1 голос
/ 08 апреля 2019

Я выполняю вывод, используя одну из моделей из модуля обнаружения объектов TensorFlow. Я зацикливаюсь на своих тестовых изображениях в том же сеансе и выполняю sess.run (). Однако при профилировании этих прогонов я понимаю, что первый прогон всегда имеет более высокое время по сравнению с последующими прогонами.

Я нашел ответ здесь о том, почему это происходит, но не было никакого решения, как исправить.

Я развернул конвейер вывода обнаружения объектов на процессоре Intel i7. Время для одного session.run (), для 1,2,3 и 4-го изображения выглядит примерно так (в секундах):

1. 84.7132628
2. 1.495621681
3. 1.505012751
4. 1.501652718

Просто предыстория того, что я пробовал:

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

  • Я пытался использовать наборы данных TensorFlow для подачи данных, но я не был уверен, как обеспечить ввод, так как во время вывода мне нужно предоставить ввод для ключа «тензор изображения» на графике. Любые идеи о том, как использовать это, чтобы обеспечить ввод для замороженного графика?

Любая помощь будет принята с благодарностью!

TLDR: для сокращения времени вывода первого образа - в целях развертывания.

1 Ответ

0 голосов
/ 24 мая 2019

Несмотря на то, что я видел, что первый вывод занимает больше времени, разница (84 против 1,5), показанная здесь, кажется немного невероятной.Вы также рассчитываете время загрузки модели, внутри этой метрики времени?Может ли это быть причиной большой разницы во времени?Является ли топология такой сложной, чтобы можно было оправдать эту разницу во времени?

Мои предложения:

  1. Попробуйте Openvino: посмотрите, поддерживается ли топология, над которой вы работаетев опенвино.Известно, что OpenVino значительно ускоряет логические рабочие нагрузки благодаря своей способности оптимизировать сетевые операции.Кроме того, время, необходимое для загрузки модели openvino, сравнительно меньше в большинстве случаев.

  2. Что касается подхода TFRecords, не могли бы вы поделиться точной ошибкой и на каком этапе вы получилиошибка?

  3. Что касается наборов данных Tensorflow, не могли бы вы проверить https://github.com/tensorflow/tensorflow/issues/23523 & https://www.tensorflow.org/guide/datasets. Относительно ключа «тензор изображения» на графике, я надеюсь,ваш оригинальный конвейер вывода должен дать вам некоторые подсказки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...