TensorFlow函数教程:tf.profiler.Profiler
tf.profiler.Profiler函数
类 Profiler
定义在:tensorflow/python/profiler/model_analyzer.py。
TensorFlow多步分析器。
https://github.com/tensorflow/tensorflow/tree/master/tensorflow/core/profiler/README.md
Typical use case:
# Currently we are only allowed to create 1 profiler per process.
profiler = Profiler(sess.graph)
for i in xrange(total_steps):
if i % 10000 == 0:
run_meta = tf.RunMetadata()
_ = sess.run(...,
options=tf.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()
__init__
__init__(
graph=None,
op_log=None
)
构造函数。
参数:
- graph:tf.Graph。如果为“None”或者未启用“eager执行”,请使用默认图形。
- op_log:可选的。tensorflow :: tfprof :: OpLogProto proto。用于定义额外的op类型。
方法
add_step
add_step(
step,
run_meta
)
添加步骤的统计信息。
参数:
- step:int,用于将一个或多个不同run_meta组合在一起的id 。使用profile_xxx API进行分析时,用户可以使用options中的step id来一起分析这些run_meta。
- run_meta:RunMetadata proto,包含会话运行的统计信息。
advise
advise(options)
自动检测问题并生成报告。
参数:
- options:options的一个dict。
返回:
一个包含所有检查者的报告的Advise原型。
profile_graph
profile_graph(options)
通过数据流图组织图形节点的统计信息。
参数:
- options:options的一个dict。
返回:
记录结果的GraphNodeProto。
profile_name_scope
profile_name_scope(options)
按名称范围组织图形节点的统计信息。
参数:
- options:options的一个dict。
返回:
记录结果的GraphNodeProto。
profile_operations
profile_operations(options)
描述操作类型的统计信息(例如:MatMul,Conv2D)。
参数:
- options:options的一个dict。
返回:
记录结果的MultiGraphNodeProto。
profile_python
profile_python(options)
描述Python代码的统计信息。
默认情况下,它显示来自root的调用堆栈。为避免冗余输出,您可以使用options过滤以下选项['show_name_regexes'] = ['.my_code.py.']
参数:
- options:options的一个dict。
返回:
记录结果的MultiGraphNodeProto。
serialize_to_string
serialize_to_string()
将ProfileProto序列化为二进制字符串。
用户可以通过tfprof命令行或图形界面将其写入文件以进行离线分析。
返回:
ProfileProto二进制字符串。