深度学习-推荐系统-CV-NLP

tensorflow 性能分析工具profile使用指南

2019-06-21  本文已影响15人  涂山容容

在卷积神经网络设计好之后,难免会想要知道当前网络哪里跑的最慢,参数量有多少,flops有多少。此时,可以借助的是profile这个工具了,效果杠杠的。
由于自己用的是python,所以这里就调用其Python接口。
首先,导入包:


from tensorflow.python.profiler import model_analyzer

from tensorflow.python.profiler import option_builder

添加了profile之后报错
libcupti.so.9.0: cannot open shared object file
根据
export
LD_LIBRARY_PATH="/usr/local/nvidia/lib:/usr/local/nvidia/lib64:/usr/local/cuda-9.0/lib64:/usr/local/cuda-9.0/extras/CUPTI/lib64"
修改 ~/.bashrc文件
修改后的为
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:/usr/local/cuda-9.0/extras/CUPTI/lib64{LD_LIBRARY_PATH:+:{LD_LIBRARY_PATH}}
然后 source ~/.bashrc
在当前终端与接下来终端有效

具体的使用的话,自己现在用的比较粗浅,没有用什么高大上的,就是能打印出来而已

my_profiler = model_analyzer.Profiler(graph=Session.graph)
run_options=tf.RunOptions(trace_level=tf.RunOptions.FULL_TRACE)
run_metadata = tf.RunMetadata()

  _s =Session.run(seg_pred, feed_dict={image: img}, options=run_options, run_metadata=run_metadata)
    my_profiler.add_step(step=i, run_meta=run_metadata)

    profile_op_builder = option_builder.ProfileOptionBuilder()
    # profile_op_builder.select(['micros', 'occurrence'])
    profile_op_builder.select(['micros','float_ops'])
    profile_op_builder.order_by('micros')
    profile_op_builder.with_max_depth(5)
    # my_profiler.profile_graph(profile_op_builder.build())
    my_profiler.profile_name_scope(profile_op_builder.build())

就OK了

上一篇下一篇

猜你喜欢

热点阅读