Tensorflow Timeline介绍及简单使用
Blog的Github地址:github.com/liuyan731/b…
最近上线了一个图片分类的机器学习Python服务,但是在线上的性能并不是特别好,就开始进行痛苦的性能分析。今天分享一个简单但是非常实用的Tensorflow性能调优工具Timeline。
简介
Tensorflow的Timeline模块是用于描述张量图一个工具,可以记录在会话中每个操作执行时间和资源分配及消耗的情况。
使用方法
执行代码sess.run()加入参数options和run_metadata
sess.run() 加入 option和run_metadata参数,然后创建timeline对象,并写入到timeline.json文件中
import tensorflow as tf
from tensorflow.python.client import timelinerun_options = tf.RunOptions(trace_level=tf.RunOptions.FULL_TRACE)
run_metadata = tf.RunMetadata()predictions = use_sess.run(use_out, {'DecodeJpeg/contents:0': image_file.file.getvalue()}, options=run_options, run_metadata=run_metadata)# Create the Timeline object, and write it to a json
tl = timeline.Timeline(run_metadata.step_stats)
ctf = tl.generate_chrome_trace_format()
with open('timeline.json', 'w') as f:f.write(ctf)复制代码
查看timeline对象
打开Google Chrome,转到该页面 chrome://tracing并加载该timeline.json文件。在该页面上可以每个操作的耗时,以及op的详细信息。
chrome 加载timeline.json文件后展示的运行图
2018/4/22 done
此文章也同步至个人Github博客
转载于:https://juejin.im/post/5adc95eb6fb9a07aa9255075
Tensorflow Timeline介绍及简单使用相关推荐
- Python黑马头条推荐系统第四天 TensorFlow框架介绍和深度学习
深度学习与推荐系统 6.1 推荐系统与深度学习关联 学习目标 目标 无 应用 无 6.1.1 深度学习到推荐系统 深度学习发展成功与局限 最近几年深度学习的流行,大家一般认为是从2012年 AlexN ...
- Matplotlib的介绍及简单操作
Matplotlib的介绍及简单操作 1 什么是Matplotlib 是专门用于开发2D图表(包括3D图表) 以渐进.交互式方式实现数据可视化 2 为什么要学习Matplotlib 可视化是在整个数据 ...
- (三)AJAX基本介绍和简单实例03
(三)AJAX基本介绍和简单实例03-----Ajax与数据库的动态应用 前台显示界面: 选择所有客户之后: 选择其中一个客户---杜森: Demo03.html代码 <html> < ...
- rabbitMQ消息队列 – 面板介绍及简单demo
首先rabbit安装好之后,运维会给一个控制面板. 默认账号密码为guest 登入以后可以看到具体界面. 在此鸣谢百度翻译给予的大力支持.. ###写一个简单的demo 编写之前..虽然说可以直接用底 ...
- Protobuf介绍及简单使用(上)
目录 Protobuf 介绍 优势 protobuf语法 Specifying Field Rules Data type Data name Number Protobuf注释 保留字段与标识符 s ...
- SQL Server中追踪器Trace的介绍和简单使用
原文:SQL Server中追踪器Trace的介绍和简单使用 一.What is Trace? 对于SQL Profiler这个工具相信大家都不是很陌生,没用过的朋友可以在SQL Server Man ...
- S3C2440移植linux3.4.2内核之内核框架介绍及简单修改
文章目录 uboot启动内核分析 简单配置内核 编译内核 设置机器ID 修改晶振 移植Linux3.4.2内核其他文章链接: S3C2440移植linux3.4.2内核之内核框架介绍及简单修改 S3C ...
- 新颖的自我介绍_简单新颖的自我介绍范文
简单新颖的自我介绍范文 简单新颖的自我介绍范文1 各位考官好,今天能够站在这里参加面试,有机会向各位考官请教和学习,我感到非常的荣幸.希望通过这次面试能够把自己展示给大家,希望大家记住我.我叫.... ...
- Quartz框架实现定时任务介绍及简单使用
https://blog.csdn.net/bicheng4769/article/details/81097305 Quartz框架介绍及简单使用 https://www.cnblogs.com/d ...
最新文章
- 基于Struts2.3.x+Spring3.2.x+Hibernate4.2.x+EasyUI1.3.4+Maven架构的示例程序
- web主题公园版权信息破解:script.js加密文件
- SAP CRM系统订单模型的设计与实现 1
- ArcGIS API for Silverlight开发入门准备
- AndroidStuido连接不上手机的解决方法
- 局网满猿关不住,一波码农出墙来。
- Google 搜索命令
- 2年乘坐南航2次,却攒了48000里程,我是怎样做到的?(2)
- Oracle RMAN 的 show,list,crosscheck,delete命令整理
- python做网站开发_如何用Python做网站开发
- python翻转棋_奥赛罗棋reverse
- 杂谈:奇点真的临近吗?兼聊AI、区块链、类脑计算、量子计算等
- 【Android Audio】dumpsys audio分析【不定期更新文章】
- 来看看移动端小程序技术的前世今生!小白也能看明白
- 【106页报告】深度分析“柒”“捌”“玖”“零”后的互联网世界!
- java学习--基础知识进阶第十天--标准输入流 转换流 打印流、对象操作流 、Properties集合...
- DFT,IDFT,FFT,IFFT算法的C++实现
- 全款买房划算,还是贷款划算?
- 快速入门运维:成为一名高效运维工程师的关键步骤
- PTZ摄像机中PTZ分别代表什么?
热门文章
- 让hover效果平滑过渡回初始状态?
- php sql 字段不能为空值,关于php:Sudden SQL问题-一般错误:1364字段没有默认值
- java自学难点_学习JAVA遇到的难点总结
- Node.js路径操作
- 计算机程序C语言若初始数为48,2016年计算机软考程序员模拟选择试题
- php后端路由,laravel实现前后台路由分离的方法
- mysql 字段存文件_使用数据库(mysql)字段保存文件
- java堆外内存为何比java堆更适合用来进行网络IO操作
- vb如何用代码对Excel的指定区域实行保护
- 怎样用VB获得Windows各类系统目录