天天看点

Tensorboard 对训练性能影响Tensorboard 对训练性能影响

Tensorboard 对训练性能影响

tensorboard简介

  对于部分人来说,包括笔者本身,都是对图学习、深度神经网络等的具体数据相对陌生,就像一个黑盒子想揭开它里面的面纱一样。

  而tensorboard正是用于tensorflow内置的一个可视化工具,通过将tensorflow的session.run程序运行中日志信息输出,并通过tensorboard可视化工具展示

使用方法也十分简单,在tensorflow中指定输出tensorboard路径,并在训练过程中/结束,在该路径下运行

​ 并在浏览器下访问本地ip地址+端口号

​ 也可以通过ssh、nginx进行ssh代理或者反向代理在其他机器上解决

开源 https://github.com/tensorflow/tensorboard

正题

tensorboard 开启后对训练性能消耗的影响

​ 首先给大家展示的是某个分布式环境训练项目下无tensorboard检测数据下的每步数据。

​ 其中Time(s) 就是每十steps训练所消耗的时间

Tensorboard 对训练性能影响Tensorboard 对训练性能影响

​ 而下图则是相同项目相同训练环境下有tensorboard数据监测可视化下的训练数据

​ 其中tensorboard检测的数据有

  1. loss损失函数、global_step全局步数等数据scalars
  2. embedding 高维嵌入3D模型
  3. histogram等直方图展示
  4. Graph 图训练流程图的节点时间统计、图训练步骤的训练过程
Tensorboard 对训练性能影响Tensorboard 对训练性能影响

 从图中可以看出,有tensorboard进行检测的项目步数训练时间消耗更大,而无tensorboard则训练速度更快。(且可以忽视偶然因素,因为笔者也测试了不下二十遍了)

​ 总结在有tensorboard检测下训练缓慢的原因:

  1. ​ tensorboard检测的四种格式中,有部分格式性能消耗大
  2. ​ tensorboard相当于另外其一个进程获取tensorflow输出日志,再进行可视化处理,涉及到文件通信大,抢占CPU资源?(笔者觉得还是更偏向第一种观点)

  在此处提一下,在全网搜索基本比较少对tensorboard开启后会对训练性能产生负面效应,而往往因为这样,大家会忽略掉tensorboard所给性能消耗带来的影响。

  建议大家在项目中,设置一个tensorboard的开关,用于控制是否打开tensorboard检测数据,即一个检测版、一个正式版用于区分彼此。

​  也因为全网对此资料比较少的情况下,笔者才写了这篇文章,且本人资历尚浅还是名大三学生,如有错误,请各位斧正,谢谢大家。

ps:

希望国内程序员大佬们,不要一篇文章狂抄狂转载了,百度查的一个问题,回答全部一模一样,甚至只是不同网站相同内容,而更有甚者,更是相同平台相同内容,还标原创。实在不建议大家这样做,形成一个不好的交流环境。

继续阅读