根据
https://github.com/tensorflow/tensorflow/issues/1824
简单进行了测试
修改运行的脚本增加如下关键代码
例如mnist_softmax.py
from
__future__
import
absolute_import
from
__future__
import
division
from
__future__
import
print_function
# Import data
from
tensorflow.examples.tutorials.mnist
import
input_data
from
tensorflow.python.client
import
timeline
import
tensorflow as tf
flags
=
tf.app.flags
FLAGS
=
flags.FLAGS
flags.DEFINE_string(
'data_dir'
,
'/tmp/data/'
,
'Directory for storing data'
)
mnist
=
input_data.read_data_sets(FLAGS.data_dir, one_hot
=
True
)
# Create the model
x
=
tf.placeholder(tf.float32, [
None
,
784
])
W
=
tf.Variable(tf.zeros([
784
,
10
]))
b
=
tf.Variable(tf.zeros([
10
]))
y
=
tf.nn.softmax(tf.matmul(x, W)
+
b)
# Define loss and optimizer
y_
=
tf.placeholder(tf.float32, [
None
,
10
])
cross_entropy
=
tf.reduce_mean(
-
tf.reduce_sum(y_
*
tf.log(y), reduction_indices
=
[
1
]))
train_step
=
tf.train.GradientDescentOptimizer(
0.5
).minimize(cross_entropy)
# Train
intiOp
=
tf.initialize_all_variables()
# Init run_metadata
run_metadata
=
tf.RunMetadata()
# Open file to save trace
trace_file
=
open
(
'/tmp/timeline.ctf.json'
,
'w'
)
sess
=
tf.Session()
sess.run(intiOp)
for
i
in
range
(
500
):
batch_xs, batch_ys
=
mnist.train.next_batch(
100
)
sess.run(train_step, feed_dict
=
{x: batch_xs, y_: batch_ys},
options
=
tf.RunOptions(trace_level
=
tf.RunOptions.FULL_TRACE),
run_metadata
=
run_metadata)
# Test trained model
correct_prediction
=
tf.equal(tf.argmax(y,
1
), tf.argmax(y_,
1
))
accuracy
=
tf.reduce_mean(tf.cast(correct_prediction, tf.float32))
print
(sess.run(accuracy, feed_dict
=
{x: mnist.test.images, y_: mnist.test.labels}))
#timeline
trace
=
timeline.Timeline(step_stats
=
run_metadata.step_stats)
trace_file.write(trace.generate_chrome_trace_format())
|
打开chrome浏览器输入
chrome://tracing/
选择Load按钮加载输出的json文件
W,S按键可以缩放,A,D按键可以移动,具体帮助点击右上角“?”按钮