tenorflow 模型调优

# Create the Timeline object, and write it to a json
from tensorflow.python.client import timeline
tl = timeline.Timeline(run_metadata.step_stats)
ctf = tl.generate_chrome_trace_format()
with tf.gfile.GFile("timeline.json", 'w') as f:
    f.write(ctf)

chrome://tracing/

from tensorflow.core.framework import graph_pb2
from tensorflow.python.profiler import model_analyzer
from tensorflow.python.profiler import option_builder

graph = tf.Graph()
with graph.as_default():
    graph_def = graph_pb2.GraphDef()
    with open(args.input_graph, "rb") as f:
        graph_def.ParseFromString(f.read())
        _ = tf.import_graph_def(graph_def, name='')
        config  = tf.ConfigProto(inter_op_parallelism_threads=args.num_inter_threads,  intra_op_parallelism_threads=args.num_intra_threads)
        with tf.Session(config=config, graph=graph) as sess:

            # warm up
            ...

            # benchmark
            ...

            # profiling
            run_options = tf.RunOptions(trace_level=tf.RunOptions.FULL_TRACE)
            run_metadata = tf.RunMetadata()
            profiler = model_analyzer.Profiler(graph=graph)

            for i in range(10):
                outputs = sess.run(output_data, feed_dict=input_data, options=run_options, run_metadata=run_metadata)
                profiler.add_step(step=i, run_meta=run_metadata)

            profile_op_opt_builder = option_builder.ProfileOptionBuilder()
            profile_op_opt_builder.select(['micros','occurrence'])
            profile_op_opt_builder.order_by('micros')
            profile_op_opt_builder.with_max_depth(50)
            profiler.profile_operations(profile_op_opt_builder.build())



posted @ 2019-09-17 09:29  qccz123456  阅读(186)  评论(0编辑  收藏  举报