TensorFlow Estimator tracking timeline?

Viewed 1365

A normal practice of timeline to track TensorFlow session is below:

import tensorflow as tf
from tensorflow.python.client import timeline

x = tf.random_normal([1000, 1000])
y = tf.random_normal([1000, 1000])
res = tf.matmul(x, y)

# Run the graph with full trace option
with tf.Session() as sess:
    run_options = tf.RunOptions(trace_level=tf.RunOptions.FULL_TRACE)
    run_metadata = tf.RunMetadata()
    sess.run(res, options=run_options, run_metadata=run_metadata)

    # Create the Timeline object, and write it to a json
    tl = timeline.Timeline(run_metadata.step_stats)
    ctf = tl.generate_chrome_trace_format()
    with open('timeline.json', 'w') as f:
        f.write(ctf)

But now I am using tf.estimator, without defining a session explicitly. So how and when should I define and use tensorflow.python.client.timeline?

1 Answers

try this:

hook = tf.train.ProfilerHook(save_steps=100, output_dir='/tmp/')
classifier.train(
    input_fn=lambda: ltr_dataset.csv_input_fn(train_file_list, args.batch_size)
    ,hooks=[hook]
)
Related