Я выполняю вывод, используя одну из моделей из модуля обнаружения объектов 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: для сокращения времени вывода первого образа - в целях развертывания.