Подтвердить что ты не робот

Как профилировать сети TensorFlow?

Есть ли способ рассчитать стоимость времени для каждого node в сети TensorFlow?
Мне трудно найти узкие места производительности.

EDIT: Профилировщик Timeline действительно потрясающий (qaru.site/info/140831/...).

4b9b3361

Ответ 1

В настоящее время лучшим внешним способом является компиляция с профилировщиком CPU/GPU, но это нужно сделать вручную, изменив параметры в файлах BUILD и tensorflow.bzl (не уверен, где).

Затем вы можете получить информацию профиля о том, какие функции занимают больше всего времени и т.д. Это зависит от вас, вы можете использовать gperftools и визуализации pprof

Так как код TensorFlow связан через swig, я не уверен на 100%, насколько легко будет получать символы при чтении профиля через pprof. Вы можете указать его в файл swig .so, который был создан.

Попробуйте и сообщите нам, если это сработает для вас!

Ответ 2

Если вы хотите узнать, сколько времени было потрачено на каждую операцию в TF, вы можете сделать это в тензограмме, используя статистику времени выполнения. Вам нужно будет сделать что-то подобное (проверьте полный пример в вышеупомянутой ссылке):

run_options = tf.RunOptions(trace_level=tf.RunOptions.FULL_TRACE)
run_metadata = tf.RunMetadata()
sess.run(<values_you_want_to_execute>, options=run_options, run_metadata=run_metadata)
your_writer.add_run_metadata(run_metadata, 'step%d' % i)

Лучше, чем просто его распечатать, вы можете увидеть его в тензодаре:

Кроме того, нажатие на node отображает точную общую память, времени вычисления и размерах тензора.

Также теперь у тензорного потока есть debugger. Вот учебник о том, как его использовать.

[1]: https://www.tensorflow.org/get_started/graph_viz#

Ответ 3

https://github.com/tensorflow/tensorflow/tree/master/tensorflow/core/profiler

Основные возможности:

Измерение параметров модели, операций с плавающей запятой, тензорных форм.

Время выполнения команды op, запрошенный размер памяти и размещение устройства.

Осмотрите формы тензометров и их значения.

Выбирайте групповые, фильтрующие, учетные записи и заказы.