1、类
class AdviceProto
class GraphNodeProto
class MultiGraphNodeProto
class OpLogProto
class ProfileOptionBuilder
: 用于分析API的选项生成器。class Profiler
: TensorFlow多步骤的分析器。
2、函数
advise(...)
: 自动配置和建议。profile(...)
: 概要文件的模型。write_op_log(...)
: Log提供了'op_log',并在下面添加了额外的模型信息。
3、tf.profiler.AdviceProto
1、__init__
代码语言:javascript复制__init__(**kwargs)
2、性质
checkers
repeated CheckersEntry checkers
3、ByteSize
代码语言:javascript复制ByteSize()
4、Clear
代码语言:javascript复制Clear()
5、ClearField
代码语言:javascript复制ClearField(field_name)
6、DiscardUnknownFields
代码语言:javascript复制DiscardUnknownFields()
7、FindInitializationErrors
代码语言:javascript复制FindInitializationErrors()
查找未初始化的必需字段。
返回值:
- 字符串列表。每个字符串是从顶级消息到未初始化字段的路径,例如。“foo.bar [5] .baz”。
8、FromString
代码语言:javascript复制@staticmethod
FromString(s)
9、HasField
代码语言:javascript复制HasField(field_name)
10、IsInitialized
代码语言:javascript复制IsInitialized(errors=None)
检查是否设置了消息的所有必需字段。
参数:
errors
:如果提供了一个列表,它将填充所有缺少的必需字段的字段路径。
返回值:
- 如果指定的消息已设置所有必需字段,则为True。
11、ListFields
代码语言:javascript复制ListFields()
12、MergeFrom
代码语言:javascript复制MergeFrom(msg)
13、MergeFromString
代码语言:javascript复制MergeFromString(serialized)
14、RegisterExtension
代码语言:javascript复制@staticmethod
RegisterExtension(extension_handle)
15、SerializePartialToString
代码语言:javascript复制SerializePartialToString(**kwargs)
16、SerializeToString
代码语言:javascript复制SerializeToString(**kwargs)
17、SetInParent
代码语言:javascript复制SetInParent()
将_cached_byte_size_dirty位设置为true,并将其传播给侦听器(如果这是状态更改)。
18、UnknownFields
代码语言:javascript复制UnknownFields()
19、WhichOneof
代码语言:javascript复制WhichOneof(oneof_name)
返回其中一个或None中当前设置字段的名称。
20、__eq__
代码语言:javascript复制__eq__(other)
4、tf.profiler.AdviceProto.Checker
1、__init__
代码语言:javascript复制__init__(**kwargs)
2、ByteSize
代码语言:javascript复制ByteSize()
3、Clear
代码语言:javascript复制Clear()
4、ClearField
代码语言:javascript复制ClearField(field_name)
5、DiscardUnknownFields
代码语言:javascript复制DiscardUnknownFields()
6、FindInitializationErrors
代码语言:javascript复制FindInitializationErrors()
查找未初始化的必需字段。
返回值:
- 字符串列表。每个字符串是从顶级消息到未初始化字段的路径,例如。“foo.bar [5] .baz”。
7、FromString
代码语言:javascript复制@staticmethod
FromString(s)
8、HasField
代码语言:javascript复制HasField(field_name)
9、IsInitialized
代码语言:javascript复制IsInitialized(errors=None)
检查是否设置了消息的所有必需字段。
参数:
errors
:如果提供了一个列表,它将填充所有缺少的必需字段的字段路径。
返回值:
- 如果指定的消息已设置所有必需字段,则为True。
10、ListFields
代码语言:javascript复制ListFields()
11、MergeFrom
代码语言:javascript复制MergeFrom(msg)
12、MergeFromString
代码语言:javascript复制MergeFromString(serialized)
13、RegisterExtension
代码语言:javascript复制@staticmethod
RegisterExtension(extension_handle)
14、SerializePartialToString
代码语言:javascript复制SerializePartialToString(**kwargs)
15、SerializeToString
代码语言:javascript复制SerializeToString(**kwargs)
16、SetInParent
代码语言:javascript复制SetInParent()
将_cached_byte_size_dirty位设置为true,并将其传播给侦听器(如果这是状态更改)。
17、UnknownFields
代码语言:javascript复制UnknownFields()
18、WhichOneof
代码语言:javascript复制WhichOneof(oneof_name)
返回其中一个或None中当前设置字段的名称。
19、__eq__
代码语言:javascript复制__eq__(other)
5、tf.profiler.AdviceProto.CheckersEntry
1、__init__
代码语言:javascript复制__init__(**kwargs)
2、ByteSize
代码语言:javascript复制ByteSize()
3、Clear
代码语言:javascript复制Clear()
4、ClearField
代码语言:javascript复制ClearField(field_name)
5、DiscardUnknownFields
代码语言:javascript复制DiscardUnknownFields()
6、FindInitializationErrors
代码语言:javascript复制FindInitializationErrors()
查找未初始化的必需字段。
返回值:
- 字符串列表。每个字符串是从顶级消息到未初始化字段的路径,例如。“foo.bar [5] .baz”。
7、FromString
代码语言:javascript复制@staticmethod
FromString(s)
8、HasField
代码语言:javascript复制HasField(field_name)
9、IsInitialized
代码语言:javascript复制IsInitialized(errors=None)
检查是否设置了消息的所有必需字段。
参数:
errors
:如果提供了一个列表,它将填充所有缺少的必需字段的字段路径。
返回值:
- 如果指定的消息已设置所有必需字段,则为True。
10、ListFields
代码语言:javascript复制ListFields()
11、MergeFrom
代码语言:javascript复制MergeFrom(msg)
12、MergeFromString
代码语言:javascript复制MergeFromString(serialized)
13、RegisterExtension
代码语言:javascript复制@staticmethod
RegisterExtension(extension_handle)
14、SerializePartialToString
代码语言:javascript复制SerializePartialToString(**kwargs)
15、SerializeToString
代码语言:javascript复制SerializeToString(**kwargs)
16、SetInParent
代码语言:javascript复制SetInParent()
将_cached_byte_size_dirty位设置为true,并将其传播给侦听器(如果这是状态更改)。
17、UnknownFields
代码语言:javascript复制UnknownFields()
18、WhichOneof
代码语言:javascript复制WhichOneof(oneof_name)
返回其中一个或None中当前设置字段的名称。
19、__eq__
代码语言:javascript复制__eq__(other)
6、tf.profiler.advise
自动配置和建议。
代码语言:javascript复制tf.profiler.advise(
graph=None,
run_meta=None,
options=_DEFAULT_ADVISE_OPTIONS
)
构建概要文件并自动检查各个方面的异常。更多信息:https://github.com/tensorflow/tensorflow/tree/master/tensorflow/core/profiler/README.md
参数:
graph
:tf.Graph。如果没有启用None和eager执行,则使用默认图。- run_meta:可选tensorflow。RunMetadata原型。支持运行时信息分析(如时间和内存)是必要的。
options
:参见上面的ALL_ADVICE示例。默认检查一切。
返回值:
- 返回AdviceProto原型
7、tf.profiler.GraphNodeProto
1、__init__
代码语言:javascript复制__init__(**kwargs)
2、ByteSize
代码语言:javascript复制ByteSize()
3、Clear
代码语言:javascript复制Clear()
4、ClearField
代码语言:javascript复制ClearField(field_name)
5、DiscardUnknownFields
代码语言:javascript复制DiscardUnknownFields()
6、FindInitializationErrors
代码语言:javascript复制FindInitializationErrors()
查找未初始化的必需字段。
返回值:
- 字符串列表。每个字符串是从顶级消息到未初始化字段的路径,例如。“foo.bar [5] .baz”。
7、FromString
代码语言:javascript复制@staticmethod
FromString(s)
8、HasField
代码语言:javascript复制HasField(field_name)
9、IsInitialized
代码语言:javascript复制IsInitialized(errors=None)
检查是否设置了消息的所有必需字段。
参数:
- errors:如果提供了一个列表,它将填充所有缺少的必需字段的字段路径。
返回值:
- 如果指定的消息已设置所有必需字段,则为True。
10、ListFields
代码语言:javascript复制ListFields()
11、MergeFrom
代码语言:javascript复制MergeFrom(msg)
12、MergeFromString
代码语言:javascript复制MergeFromString(serialized)
13、RegisterExtension
代码语言:javascript复制@staticmethod
RegisterExtension(extension_handle)
14、SerializePartialToString
代码语言:javascript复制SerializePartialToString(**kwargs)
15、SerializeToString
代码语言:javascript复制SerializeToString(**kwargs)
16、SetInParent
代码语言:javascript复制SetInParent()
将_cached_byte_size_dirty位设置为true,并将其传播给侦听器(如果这是状态更改)。
17、UnknownFields
代码语言:javascript复制UnknownFields()
18、WhichOneof
代码语言:javascript复制WhichOneof(oneof_name)
返回其中一个或None中当前设置字段的名称。
19、__eq__
代码语言:javascript复制__eq__(other)
8、tf.profiler.GraphNodeProto.InputShapesEntry
1、__init__
代码语言:javascript复制__init__(**kwargs)
2、ByteSize
代码语言:javascript复制ByteSize()
3、Clear
代码语言:javascript复制Clear()
4、ClearField
代码语言:javascript复制ClearField(field_name)
5、DiscardUnknownFields
代码语言:javascript复制DiscardUnknownFields()
6、FindInitializationErrors
代码语言:javascript复制FindInitializationErrors()
查找未初始化的必需字段。
返回值:
- 字符串列表。每个字符串是从顶级消息到未初始化字段的路径,例如。“foo.bar [5] .baz”。
7、FromString
代码语言:javascript复制@staticmethod
FromString(s)
8、HasField
代码语言:javascript复制HasField(field_name)
9、IsInitialized
代码语言:javascript复制IsInitialized(errors=None)
检查是否设置了消息的所有必需字段。
参数:
- errors:如果提供了一个列表,它将填充所有缺少的必需字段的字段路径。
返回:
- 如果指定的消息已设置所有必需字段,则为True。
10、ListFields
代码语言:javascript复制ListFields()
11、MergeFrom
代码语言:javascript复制MergeFrom(msg)
12、MergeFromString
代码语言:javascript复制MergeFromString(serialized)
13、RegisterExtension
代码语言:javascript复制@staticmethod
RegisterExtension(extension_handle)
14、SerializePartialToString
代码语言:javascript复制SerializePartialToString(**kwargs)
15、SerializeToString
代码语言:javascript复制SerializeToString(**kwargs)
16、SetInParent
代码语言:javascript复制SetInParent()
将_cached_byte_size_dirty位设置为true,并将其传播给侦听器(如果这是状态更改)。
17、UnknownFields
代码语言:javascript复制UnknownFields()
18、WhichOneof
代码语言:javascript复制WhichOneof(oneof_name)
返回其中一个或None中当前设置字段的名称。
19、__eq__
代码语言:javascript复制__eq__(other)
9、tf.profiler.MultiGraphNodeProto
1、__init__
代码语言:javascript复制__init__(**kwargs)
2、ByteSize
代码语言:javascript复制ByteSize()
3、Clear
代码语言:javascript复制Clear()
4、ClearField
代码语言:javascript复制ClearField(field_name)
5、DiscardUnknownFields
代码语言:javascript复制DiscardUnknownFields()
6、FindInitializationErrors
代码语言:javascript复制FindInitializationErrors()
查找未初始化的必需字段。
返回值:
- 字符串列表。每个字符串是从顶级消息到未初始化字段的路径,例如。“foo.bar [5] .baz”。
7、FromString
代码语言:javascript复制@staticmethod
FromString(s)
8、HasField
代码语言:javascript复制HasField(field_name)
9、IsInitialized
代码语言:javascript复制IsInitialized(errors=None)
检查是否设置了消息的所有必需字段。
参数:
- errors:如果提供了一个列表,它将填充所有缺少的必需字段的字段路径。
返回值:
- 如果指定的消息已设置所有必需字段,则为True。
10、ListFields
代码语言:javascript复制ListFields()
11、MergeFrom
代码语言:javascript复制MergeFrom(msg)
12、MergeFromString
代码语言:javascript复制MergeFromString(serialized)
13、RegisterExtension
代码语言:javascript复制@staticmethod
RegisterExtension(extension_handle)
14、SerializePartialToString
代码语言:javascript复制SerializePartialToString(**kwargs)
15、SerializeToString
代码语言:javascript复制SerializeToString(**kwargs)
16、SetInParent
代码语言:javascript复制SetInParent()
将_cached_byte_size_dirty位设置为true,并将其传播给侦听器(如果这是状态更改)。
17、UnknownFields
代码语言:javascript复制UnknownFields()
18、WhichOneof
代码语言:javascript复制WhichOneof(oneof_name)
返回其中一个或None中当前设置字段的名称。
19、__eq__
代码语言:javascript复制__eq__(other)
10、tf.profiler.OpLogProto
1、__init__
代码语言:javascript复制__init__(**kwargs)
2、ByteSize
代码语言:javascript复制ByteSize()
3、Clear
代码语言:javascript复制Clear()
4、ClearField
代码语言:javascript复制ClearField(field_name)
5、DiscardUnknownFields
代码语言:javascript复制DiscardUnknownFields()
6、FindInitializationErrors
代码语言:javascript复制FindInitializationErrors()
查找未初始化的必需字段。
返回值:
- 字符串列表。每个字符串是从顶级消息到未初始化字段的路径,例如。“foo.bar [5] .baz”。
7、FromString
代码语言:javascript复制@staticmethod
FromString(s)
8、HasField
代码语言:javascript复制HasField(field_name)
9、IsInitialized
代码语言:javascript复制IsInitialized(errors=None)
检查是否设置了消息的所有必需字段。
参数:
- errors:如果提供了一个列表,它将填充所有缺少的必需字段的字段路径。
返回值:
- 如果指定的消息已设置所有必需字段,则为True。
10、ListFields
代码语言:javascript复制ListFields()
11、MergeFrom
代码语言:javascript复制MergeFrom(msg)
12、MergeFromString
代码语言:javascript复制MergeFromString(serialized)
13、RegisterExtension
代码语言:javascript复制@staticmethod
RegisterExtension(extension_handle)
14、SerializePartialToString
代码语言:javascript复制SerializePartialToString(**kwargs)
15、SerializeToString
代码语言:javascript复制SerializeToString(**kwargs)
16、SetInParent
代码语言:javascript复制SetInParent()
将_cached_byte_size_dirty位设置为true,并将其传播给侦听器(如果这是状态更改)。
17、UnknownFields
代码语言:javascript复制UnknownFields()
18、WhichOneof
代码语言:javascript复制WhichOneof(oneof_name)
返回其中一个或None中当前设置字段的名称。
19、__eq__
代码语言:javascript复制__eq__(other)
11、tf.profiler.OpLogProto.IdToStringEntry
1、__init__
代码语言:javascript复制__init__(**kwargs)
2、ByteSize
代码语言:javascript复制ByteSize()
3、Clear
代码语言:javascript复制Clear()
4、ClearField
代码语言:javascript复制ClearField(field_name)
5、DiscardUnknownFields
代码语言:javascript复制DiscardUnknownFields()
6、FindInitializationErrors
代码语言:javascript复制FindInitializationErrors()
查找未初始化的必需字段。
返回值:
- 字符串列表。每个字符串是从顶级消息到未初始化字段的路径,例如。“foo.bar [5] .baz”。
7、FromString
代码语言:javascript复制@staticmethod
FromString(s)
8、HasField
代码语言:javascript复制HasField(field_name)
9、IsInitialized
代码语言:javascript复制IsInitialized(errors=None)
检查是否设置了消息的所有必需字段。
参数:
- errors:如果提供了一个列表,它将填充所有缺少的必需字段的字段路径。
返回值:
- 如果指定的消息已设置所有必需字段,则为True。
10、ListFields
代码语言:javascript复制ListFields()
11、MergeFrom
代码语言:javascript复制MergeFrom(msg)
12、MergeFromString
代码语言:javascript复制MergeFromString(serialized)
13、RegisterExtension
代码语言:javascript复制@staticmethod
RegisterExtension(extension_handle)
14、SerializePartialToString
代码语言:javascript复制SerializePartialToString(**kwargs)
15、SerializeToString
代码语言:javascript复制SerializeToString(**kwargs)
16、SetInParent
代码语言:javascript复制SetInParent()
将_cached_byte_size_dirty位设置为true,并将其传播给侦听器(如果这是状态更改)。
17、UnknownFields
代码语言:javascript复制UnknownFields()
18、WhichOneof
代码语言:javascript复制WhichOneof(oneof_name)
返回其中一个或None中当前设置字段的名称。
19、__eq__
代码语言:javascript复制__eq__(other)
12、tf.profiler.profile
概要文件的模型。
代码语言:javascript复制tf.profiler.profile(
graph=None,
run_meta=None,
op_log=None,
cmd='scope',
options=_DEFAULT_PROFILE_OPTIONS
)
教程和示例可以在https://github.com/tensorflow/tensorflow/tree/master/tensorflow/core/profiler/README.md找到
参数:
graph
:tf.Graph。如果没有启用None和eager执行,则使用默认图。- run_meta:可选tensorflow。RunMetadata原型。支持运行时信息分析(如时间和内存)是必要的。
- op_log: tensorflow.tfprof。OpLogProto原型。用户可以使用op_log为图形节点分配“类型”。“types”允许用户使用选项['accounted_type_regexes']灵活地分组和帐户配置文件。
- cmd:字符串。“op”、“scope”、“graph”或“code”。“op”视图使用操作类型组织配置文件。(例如MatMul)“范围”视图使用图节点名称范围组织概要文件。“图形”视图使用图形节点输入/输出组织概要文件。“code”视图使用Python调用堆栈组织配置文件。
options
:选项的dict。看到核心/分析器/ g3doc / options.md。
返回值:
- 如果cmd是“scope”或“graph”,则返回GraphNodeProto proto。如果cmd是'op'或'code',返回MultiGraphNodeProto proto。副作用:stdout /文件/时间表。json依赖于选项['output']
13、tf.profiler.ProfileOptionBuilder
用于分析API的选项生成器。有关这些选项的教程,请参见https://github.com/tensorflow/tensorflow/tree/master/tensorflow/core/profiler/g3doc/options.md
代码语言:javascript复制# Users can use pre-built options:
opts = (
tf.profiler.ProfileOptionBuilder.trainable_variables_parameter())
# Or, build your own options:
opts = (tf.compat.v1.profiler.ProfileOptionBuilder()
.with_max_depth(10)
.with_min_micros(1000)
.select(['accelerator_micros'])
.with_stdout_output()
.build()
# Or customize the pre-built options:
opts = (tf.compat.v1.profiler.ProfileOptionBuilder(
tf.profiler.ProfileOptionBuilder.time_and_memory())
.with_displaying_options(show_name_regexes=['.*rnn.*'])
.build())
# Finally, profiling with the options:
_ = tf.compat.v1.profiler.profile(tf.compat.v1.get_default_graph(),
run_meta=run_meta,
cmd='scope',
options=opts)
1、__init__
代码语言:javascript复制__init__(options=None)
构造函数。
参数:
- options:可选的初始选项dict开始。
2、account_displayed_op_only
代码语言:javascript复制account_displayed_op_only(is_true)
是否只计算显示的分析器节点的统计信息。
参数:
- is_true:如果为真,则只显示输出最终显示的节点的帐户统计信息。否则,只要节点的类型匹配“account_type_regexes”,节点的统计信息就由其父节点来解释,即使它在输出中被隐藏,比如由hide_name_regexes。
返回:
- self
3、build
代码语言:javascript复制build()
构建分析选项。
返回:
- 分析选项的dict。
4、float_operation
代码语言:javascript复制@staticmethod
float_operation()
用于分析浮动操作的选项。有关浮点运算的注意事项,请参阅https://github.com/tensorflow/tensorflow/tree/master/tensorflow/core/profiler/g3doc/profile_model_architecture.md。
返回值:
- 分析选项的dict。
5、order_by
代码语言:javascript复制order_by(attribute)
根据属性对显示的分析器节点进行排序。支持的属性包括micros、bytes、occurrence、params等https://github.com/tensorflow/tensorflow/tree/master/tensorflow/core/profiler/g3doc/options.md
参数:
attribute
:分析器节点拥有的属性。
返回值:
- self
6、select
代码语言:javascript复制select(attributes)
选择要显示的属性。有关支持的属性,请参见https://github.com/tensorflow/tensorflow/tree/master/tensorflow/core/profiler/g3doc/options.md。
参数:
- attribute:分析器节点拥有的属性列表。
返回值:
- self
7、time_and_memory
代码语言:javascript复制@staticmethod
time_and_memory(
min_micros=1,
min_bytes=1,
min_accelerator_micros=0,
min_cpu_micros=0,
min_peak_bytes=0,
min_residual_bytes=0,
min_output_bytes=0
)
显示操作时间和内存消耗。
参数:
- min_micros:只显示执行时间不小于此值的分析器节点。它总结了加速器和cpu的时间。
- min_bytes:只显示被请求分配不少于这个字节的分析器节点。
- min_accelerator_micros:只显示分析器节点在加速器上花费的时间不少于这个时间(例如GPU)。
- min_cpu_micros:只显示分析器节点在cpu上花费的时间不少于这个时间。
- min_peak_bytes:只显示在峰值(高水印)使用不少于这个字节的分析器节点。对于由多个图节点组成的分析器节点,它对图节点的peak_bytes求和。
- min_residual_bytes:只显示profiler节点不少于在Compute()结束后未被分配的这个字节。对于由多个图节点组成的分析器节点,它对图节点的residual_bytes求和。
- min_output_bytes:只显示分析器节点的输出不少于这个字节。输出不一定由这个分析器节点分配。
返回值:
- 分析选项的dict。
8、trainable_variables_parameter
代码语言:javascript复制@staticmethod
trainable_variables_parameter()
用于分析可训练变量参数的选项。通常与“范围”视图一起使用。
返回值:
- 分析选项的dict。
9、with_accounted_types
代码语言:javascript复制with_accounted_types(account_type_regexes)
根据节点类型有选择地计算统计信息。这里,“types”表示分析器节点的属性。默认情况下,将设备名称(例如/job:xx/…/device:GPU:0)和操作类型(例如MatMul)作为概要节点的属性。用户还可以通过OpLogProto proto将定制的“类型”关联到分析器节点。例如,用户可以使用:account_type_regexes=['.*gpu:0]选择位于gpu:0上的分析器节点。*']如果节点的属性都不匹配指定的regexes,则不显示或计算该节点。
参数:
- account_type_regexes:指定类型的regexes列表。
返回值:
- 自我
10、with_empty_output
代码语言:javascript复制with_empty_output()
不要产生副作用输出。
11、with_file_output
代码语言:javascript复制with_file_output(outfile)
将结果打印到文件中。
12、with_max_depth
代码语言:javascript复制with_max_depth(max_depth)
设置显示的最大深度。深度取决于分析视图。对于“scope”视图,它是名称范围层次结构的深度(树),对于“op”视图,它是操作类型的数量(列表),等等。
参数:
- max_depth:要显示的数据结构的最大深度。
返回值:
- self
13、with_min_execution_time
代码语言:javascript复制with_min_execution_time(
min_micros=0,
min_accelerator_micros=0,
min_cpu_micros=0
)
只显示使用不少于'min_micros'的分析器节点。
参数:
- min_micros:只显示执行时间不小于此值的分析器节点。它总结了加速器和cpu的时间。
- min_accelerator_micros:只显示分析器节点在加速器上花费的时间不少于这个时间(例如GPU)。
- min_cpu_micros:只显示分析器节点在cpu上花费的时间不少于这个时间。
返回值:
- self
14、with_min_float_operations
代码语言:javascript复制with_min_float_operations(min_float_ops)
只显示使用不少于“min_float_ops”的分析器节点。有关浮点运算的注意事项,请参阅https://github.com/tensorflow/tensorflow/tree/master/tensorflow/core/profiler/g3doc/profile_model_architecture.md。
参数:
- min_float_ops:只显示具有不小于此浮点操作的分析器节点。
返回值:
- self
15、with_min_memory
代码语言:javascript复制with_min_memory(
min_bytes=0,
min_peak_bytes=0,
min_residual_bytes=0,
min_output_bytes=0
)
只显示使用不少于“min_bytes”的分析器节点。
参数:
- min_bytes:只显示被请求分配不少于这个字节的分析器节点。
- min_peak_bytes:只显示在峰值(高水印)使用不少于这个字节的分析器节点。对于由多个图节点组成的分析器节点,它对图节点的peak_bytes求和。
- min_residual_bytes:只显示profiler节点不少于在Compute()结束后未被分配的这个字节。对于由多个图节点组成的分析器节点,它对图节点的residual_bytes求和。
- min_output_bytes:只显示分析器节点的输出不少于这个字节。输出不一定由这个分析器节点分配。
返回:
- self
16、with_min_occurrence
代码语言:javascript复制with_min_occurrence(min_occurrence)
只显示包含不少于“min_occurrence”图形节点的分析器节点。“节点”表示分析器输出节点,它可以是python行(代码视图)、操作类型(op视图)或图节点(图/范围视图)。python行包含由该行创建的所有图形节点,而操作类型包含该类型的所有图形节点。
参数:
- min_occurrence:只显示不少于这个值的节点。
返回值:
- 自我
17、with_min_parameters
代码语言:javascript复制with_min_parameters(min_params)
只显示包含不少于“min_params”参数的分析器节点。参数通常是指张量流变量的权重。它反映了模型的“能力”。
参数:
- min_params:只显示包含不少于这个数量的参数的分析器节点。
返回:
- self
18、with_node_names
代码语言:javascript复制with_node_names(
start_name_regexes=None,
show_name_regexes=None,
hide_name_regexes=None,
trim_name_regexes=None
)
用于选择要显示的分析器节点的正则表达式。在'with_accounted_types'被求值后,'with_node_names'被求值如下:对于概要文件数据结构,profiler首先找到匹配'start_name_regexes'的概要文件节点,然后从那里开始显示概要文件节点。然后,如果节点匹配“show_name_regexes”而不匹配“hide_name_regexes”,则显示该节点。如果一个节点匹配“trim_name_regexes”,分析器将停止进一步搜索该分支。
参数:
- start_name_regexes:要开始显示的节点名regexes列表。
- show_name_regexes:要显示的节点名称列表。
- hide_name_regexes:应该隐藏的node_names regexes列表。
- trim_name_regexes:从何处停止的节点名regexes列表。
返回值:
- self
19、with_pprof_output
代码语言:javascript复制with_pprof_output(pprof_file)
生成一个pprof概要文件gzip文件。要使用pprof文件:pprof -png——nodecount=100——sample_index=1
参数:
- pprof_file:输出的文件名,通常后缀为.pb.gz。
返回值:
- self
20、with_stdout_output
代码语言:javascript复制with_stdout_output()
将结果打印到stdout。
21、with_step
代码语言:javascript复制with_step(step)
要使用哪个概要文件步骤进行概要分析。这里的“步骤”指的是profile .add_step() API定义的步骤。
参数:
step
:当配置文件的多个步骤可用时,选择要使用哪个步骤的配置文件。如果-1,使用所有可用步骤的平均值。
返回:
- self
22、with_timeline_output
代码语言:javascript复制with_timeline_output(timeline_file)
生成一个时间轴json文件。
14、tf.profiler.Profiler
TensorFlow多步骤的分析器。
代码语言:javascript复制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.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()
1、__init__
代码语言:javascript复制__init__(
graph=None,
op_log=None
)
构造函数。
参数:
graph
:tf.Graph。如果没有启用None和eager执行,则使用默认图。- op_log:可选的。tensorflow: tfprof:: OpLogProto原型。用于定义额外的op类型。
2、add_step
代码语言:javascript复制add_step(
step,
run_meta
)
添加步骤的统计信息。
参数:
step
:int,用于将一个或多个不同的run_meta组合在一起的id。当使用profile_xxx api进行概要分析时,用户可以使用选项中的步骤id对这些run_meta进行概要分析。- run_meta:包含会话运行统计信息的RunMetadata原型。
3、advise
代码语言:javascript复制advise(options)
自动检测问题并生成报告。
参数:
options
:选项的dict。参见上面的ALL_ADVICE示例。
返回值:
- 一个建议证明,从所有的检查报告。
4、profile_graph
代码语言:javascript复制profile_graph(options)
描述由数据流图组织的图节点统计信息。
参数:
options
:选项的dict。看到核心/分析器/ g3doc / options.md。
返回值:
- 记录结果的GraphNodeProto。
5、profile_name_scope
代码语言:javascript复制profile_name_scope(options)
概述按名称范围组织的图节点的统计信息。
参数:
- options:选项的dict。看到核心/分析器/ g3doc / options.md。
返回值:
- 记录结果的GraphNodeProto。
6、profile_operations
代码语言:javascript复制profile_operations(options)
分析操作类型的统计信息(例如MatMul、Conv2D)。
参数:
options
:选项的dict。看到核心/分析器/ g3doc / options.md。
返回值:
- 记录结果的多重图形节点。
7、profile_python
代码语言:javascript复制profile_python(options)
分析Python代码的统计数据。默认情况下,它显示根目录下的调用堆栈。为了避免冗余输出,可以使用以下选项过滤['show_name_regexes'] = ['.my_code.py ']。
参数:
options
:选项的dict。看到核心/分析器/ g3doc / options.md。
返回值:
- 记录结果的多重图形节点。
8、serialize_to_string
代码语言:javascript复制serialize_to_string()
将ProfileProto序列化为二进制字符串。用户可以通过tfprof命令行或图形界面将其写入文件进行离线分析。
返回值:
- ProfileProto二进制字符串。
15、tf.profiler.write_op_log
Log提供了'op_log',并在下面添加了额外的模型信息。
代码语言:javascript复制tf.profiler.write_op_log(
graph,
log_dir,
op_log=None,
run_meta=None,
add_trace=True
)
API还为tf.compat.v1.trainable_variables()中的ops分配了一个名为“_trainable_variables”的op类型。该API还为定义了op.RegisterStatistics()的ops记录“flops”统计信息。flops计算依赖于“graph”中定义的张量形状,这可能不完整。如果提供了'run_meta',则尽最大努力完成形状信息。
参数:
graph
:tf.Graph。如果没有启用None和eager执行,则使用默认图。- log_dir:写入日志文件的目录。
- op_log:(可选)要编写的OpLogProto proto。如果没有提供,则创建一个新的。
- run_meta:(可选)RunMetadata原型,它帮助使用运行时形状信息来执行计算。
- add_trace:是否添加python代码跟踪信息。用于支持“代码”视图。