Вывод нейронной сети с одним изображением: почему загрузка графического процессора не 100%? - PullRequest
0 голосов
/ 10 ноября 2018

Прежде всего: этот вопрос связан с выводом нейронной сети, а не с обучением.

Я обнаружил, что при выводе обученной нейронной сети с одним и тем же изображением снова и снова на графическом процессоре (например, P100) использование вычислительной мощности с Tensorflow не достигает 100%, а составляет около 70%. Это также тот случай, если изображение не нужно передавать в графический процессор. Следовательно, проблема должна быть связана с ограничениями в распараллеливании вычислений. Мои лучшие догадки по следующим причинам:

  • Tensorflow может только использовать возможности распараллеливания графического процессора до определенного уровня. (Также предполагается, что более высокое использование той же модели, что и модели TensorRT). В этом случае возникает вопрос: в чем причина?

  • Внутренняя структура нейронной сети с несколькими последующими уровнями позволяет избежать более высокого использования. Следовательно, проблема не в накладных расходах фреймворка, а в общем дизайне нейронных сетей. В этом случае возникает вопрос: каковы ограничения для этого?

  • Оба вышеперечисленных вместе взятых.

Спасибо за ваши идеи по этому вопросу!

1 Ответ

0 голосов
/ 10 ноября 2018

Почему вы ожидаете, что загрузка графического процессора достигнет 100%, когда вы запустите прогноз нейронной сети для одного изображения?

Использование графического процессора за единицу времени (например, 1 секунда). Это означает, что, когда алгоритм нейронной сети завершился до истечения этой единицы времени (например, в течение 0,5 с), тогда в остальное время графический процессор может использоваться другими программами или не использоваться вообще. Если графический процессор не используется никакими другими программами, тогда вы не достигнете 100%.

...