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

在卷积神经网络设计好之后,难免会想要知道当前网络哪里跑的最慢,参数量有多少,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了

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容