Typical use case:
# Currently we are only allowed to create 1 profiler per process.
profiler = Profiler(sess.graph)
for i in range(total_steps):
if i % 10000 == 0:
run_meta = tf.compat.v1.RunMetadata()
_ = sess.run(...,
options=tf.compat.v1.RunOptions(
trace_level=tf.RunOptions.FULL_TRACE),
run_metadata=run_meta)
profiler.add_step(i, run_meta)
# Profile the parameters of your model.
profiler.profile_name_scope(options=(option_builder.ProfileOptionBuilder
.trainable_variables_parameter()))
# Or profile the timing of your model operations.
opts = option_builder.ProfileOptionBuilder.time_and_memory()
profiler.profile_operations(options=opts)
# Or you can generate a timeline:
opts = (option_builder.ProfileOptionBuilder(
option_builder.ProfileOptionBuilder.time_and_memory())
.with_step(i)
.with_timeline_output(filename).build())
profiler.profile_graph(options=opts)
else:
_ = sess.run(...)
# Auto detect problems and generate advice.
profiler.advise()
Аргументы
graph
tf.Graph. Если None и жадное выполнение не включено, используется граф по умолчанию.
op_log
необязательно. tensorflow::tfprof::OpLogProto протокол. Используется для определения дополнительных типов операций.
целое число, идентификатор, используемый для группирования одной или нескольких различных run_meta вместе. При профилировании с помощью API profile_xxx пользователь может использовать идентификатор step в options для профилирования этих run_meta вместе.
run_meta
протокол RunMetadata, содержащий статистику выполнения сеанса.
По умолчанию отображается стековый след с корня. Чтобы избежать избыточного вывода, можно использовать опции для фильтрации, как показано ниже options['show_name_regexes'] = ['.my_code.py.']
Аргументы
options
Словарь опций. См. core/profiler/g3doc/options.md.
Возвращает
MultiGraphNodeProto, который записывает результаты.