Я думаю, что вы можете использовать tf.profiler даже во время обслуживания, потому что это, наконец, график Tensorflow, и изменения, внесенные во время обучения (включая профилирование, как я понимаю), будут отражены и в обслуживании.
Найдите приведенный ниже код Tensorflow:
# User can control the tracing steps and
# dumping steps. User can also run online profiling during training.
#
# Create options to profile time/memory as well as parameters.
builder = tf.profiler.ProfileOptionBuilder
opts = builder(builder.time_and_memory()).order_by('micros').build()
opts2 = tf.profiler.ProfileOptionBuilder.trainable_variables_parameter()
# Collect traces of steps 10~20, dump the whole profile (with traces of
# step 10~20) at step 20. The dumped profile can be used for further profiling
# with command line interface or Web UI.
with tf.contrib.tfprof.ProfileContext('/tmp/train_dir',
trace_steps=range(10, 20),
dump_steps=[20]) as pctx:
# Run online profiling with 'op' view and 'opts' options at step 15, 18, 20.
pctx.add_auto_profiling('op', opts, [15, 18, 20])
# Run online profiling with 'scope' view and 'opts2' options at step 20.
pctx.add_auto_profiling('scope', opts2, [20])
# High level API, such as slim, Estimator, etc.
train_loop()
После этого мы можем запустить следующие команды в командной строке:
bazel-bin/tensorflow/core/profiler/profiler \
--profile_path=/tmp/train_dir/profile_xx
tfprof> op -select micros,bytes,occurrence -order_by micros
# Profiler ui available at: https://github.com/tensorflow/profiler-ui
python ui.py --profile_context_path=/tmp/train_dir/profile_xx
Код для визуализации времени и памяти:
# The following example generates a timeline.
tfprof> graph -step -1 -max_depth 100000 -output timeline:outfile=<filename>
generating trace file.
******************************************************
Timeline file is written to <filename>.
Open a Chrome browser, enter URL chrome://tracing and load the timeline file.
******************************************************
Атрибут Время выполнения графика TensorFlow для ваших кодов Python:
tfprof> code -max_depth 1000 -show_name_regexes .*model_analyzer.*py.* -select micros -account_type_regexes .* -order_by micros
Показать переменные модели и количество параметров:
tfprof> scope -account_type_regexes VariableV2 -max_depth 4 -select params
Показать самые дорогиетипы операций:
tfprof> op -select micros,bytes,occurrence -order_by micros
Автоматический профиль:
tfprof> advise
Для получения более подробной информации по этому вопросу вы можете обратиться по ссылкам ниже:
Понимать все упомянутые классына этой странице =>
https://www.tensorflow.org/api_docs/python/tf/profiler
Код подробно указан в ссылке ниже:
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/profiler/README.md