Есть ли способ рассчитать стоимость времени для каждого node в сети TensorFlow?
Мне трудно найти узкие места производительности.
EDIT: Профилировщик Timeline
действительно потрясающий (qaru.site/info/140831/...).
Есть ли способ рассчитать стоимость времени для каждого node в сети TensorFlow?
Мне трудно найти узкие места производительности.
EDIT: Профилировщик Timeline
действительно потрясающий (qaru.site/info/140831/...).
В настоящее время лучшим внешним способом является компиляция с профилировщиком CPU/GPU, но это нужно сделать вручную, изменив параметры в файлах BUILD
и tensorflow.bzl
(не уверен, где).
Затем вы можете получить информацию профиля о том, какие функции занимают больше всего времени и т.д. Это зависит от вас, вы можете использовать gperftools и визуализации pprof
Так как код TensorFlow связан через swig
, я не уверен на 100%, насколько легко будет получать символы при чтении профиля через pprof
. Вы можете указать его в файл swig .so
, который был создан.
Попробуйте и сообщите нам, если это сработает для вас!
Если вы хотите узнать, сколько времени было потрачено на каждую операцию в 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. Вот учебник о том, как его использовать.
https://github.com/tensorflow/tensorflow/tree/master/tensorflow/core/profiler
Основные возможности:
Измерение параметров модели, операций с плавающей запятой, тензорных форм.
Время выполнения команды op, запрошенный размер памяти и размещение устройства.
Осмотрите формы тензометров и их значения.
Выбирайте групповые, фильтрующие, учетные записи и заказы.