TensorFlow函數(shù)教程:tf.profiler.Profiler

2019-02-16 17:21 更新

tf.profiler.Profiler函數(shù)

類 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
)

構(gòu)造函數(shù)。

參數(shù):

  • graph:tf.Graph。如果為“None”或者未啟用“eager執(zhí)行”,請使用默認(rèn)圖形。
  • op_log:可選的。tensorflow :: tfprof :: OpLogProto proto。用于定義額外的op類型。

方法

add_step

add_step(
    step,
    run_meta
)

添加步驟的統(tǒng)計(jì)信息。

參數(shù):

  • step:int,用于將一個(gè)或多個(gè)不同run_meta組合在一起的id 。使用profile_xxx API進(jìn)行分析時(shí),用戶可以使用options中的step id來一起分析這些run_meta。
  • run_meta:RunMetadata proto,包含會(huì)話運(yùn)行的統(tǒng)計(jì)信息。

advise

advise(options)

自動(dòng)檢測問題并生成報(bào)告。

參數(shù):

  • options:options的一個(gè)dict。

返回:

一個(gè)包含所有檢查者的報(bào)告的Advise原型。

profile_graph

profile_graph(options)

通過數(shù)據(jù)流圖組織圖形節(jié)點(diǎn)的統(tǒng)計(jì)信息。

參數(shù):

  • options:options的一個(gè)dict。

返回:

記錄結(jié)果的GraphNodeProto。

profile_name_scope

profile_name_scope(options)

按名稱范圍組織圖形節(jié)點(diǎn)的統(tǒng)計(jì)信息。

參數(shù):

  • options:options的一個(gè)dict。

返回:

記錄結(jié)果的GraphNodeProto。

profile_operations

profile_operations(options)

描述操作類型的統(tǒng)計(jì)信息(例如:MatMul,Conv2D)。

參數(shù):

  • options:options的一個(gè)dict。

返回:

記錄結(jié)果的MultiGraphNodeProto。

profile_python

profile_python(options)

描述Python代碼的統(tǒng)計(jì)信息。

默認(rèn)情況下,它顯示來自root的調(diào)用堆棧。為避免冗余輸出,您可以使用options過濾以下選項(xiàng)['show_name_regexes'] = ['.my_code.py.']

參數(shù):

  • options:options的一個(gè)dict。

返回:

記錄結(jié)果的MultiGraphNodeProto。

serialize_to_string

serialize_to_string()

將ProfileProto序列化為二進(jìn)制字符串。

用戶可以通過tfprof命令行或圖形界面將其寫入文件以進(jìn)行離線分析。

返回:

ProfileProto二進(jìn)制字符串。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)