1. ProfilerHook
在深度学习训练过程中,经常会遇到性能的问题,为了提高训练过程的效率,各个训练环节的耗时分析和性能优化是必须的。
而如果通过手动打印日志和耗时情况,不仅繁琐,而且准确度不高。那么我们可以通过tf提供的Profiler工具进行相关分析。
tf里的tf.estimator.ProfilerHook
就是一个可以定期收集分析信息的接口,通过该接口收集到的信息会被保存到”timeline-${step}.json”文件中,这些文件可以直接通过chrome://tracing/
导入可视化,方便具体分析每个流程的耗时情况。
2. 使用方法
2.1 参数说明
参数 |
说明 |
save_steps |
间隔多少步保存一次profiler trace |
save_secs |
间隔多少秒保存一次profiler trace,save_steps和save_secs只设置一个 |
output_dir |
profiler trace文件的存储路径 |
2.2 输出信息
- timeline-${step}.json:每个报错步长输出的profiler trace文件
3. web分析
- 在浏览器中打开
chrome://tracing/
页面
- 通过
load
将profiler trace文件导入浏览器
- 分析具体耗时情况