您如何以编程方式读取Tensorboard文件?
machine-learning
python
tensorboard
tensorflow
5
0

如何在不启动GUI tensorboard --logdir=...情况下如何编写python脚本来读取Tensorboard日志文件,提取损失和准确性以及其他数字数据?

参考资料:
Stack Overflow
收藏
评论
共 2 个回答
高赞 时间 活跃

要完成user1501961的回答,您可以仅使用熊猫pd.DataFrame(ea.Scalars('Loss)).to_csv('Loss.csv')将标量列表轻松导出到csv文件中pd.DataFrame(ea.Scalars('Loss)).to_csv('Loss.csv')

收藏
评论

您可以使用TensorBoard的Python类或脚本来提取数据:

如何从TensorBoard导出数据?

如果您想导出数据以在其他地方可视化(例如iPython Notebook),那也是可能的。您可以直接依赖TensorBoard用于加载数据的基础类: python/summary/event_accumulator.py (用于单次加载数据)或python/summary/event_multiplexer.py (用于多次加载数据并保留它有组织的)。这些类加载事件文件组,丢弃由TensorFlow崩溃“孤立”的数据,并按标记组织数据。

另一种选择是,有一个脚本( tensorboard/scripts/serialize_tensorboard.py )可以像TensorBoard一样加载日志目录,但是将所有数据作为json写入磁盘,而不是启动服务器。设置该脚本是为了制作“假TensorBoard后端”进行测试,因此其边缘有些粗糙。

使用EventAccumulator

# In [1]: from tensorflow.python.summary import event_accumulator  # deprecated
In [1]: from tensorboard.backend.event_processing import event_accumulator

In [2]: ea = event_accumulator.EventAccumulator('events.out.tfevents.x.ip-x-x-x-x',
   ...:  size_guidance={ # see below regarding this argument
   ...:      event_accumulator.COMPRESSED_HISTOGRAMS: 500,
   ...:      event_accumulator.IMAGES: 4,
   ...:      event_accumulator.AUDIO: 4,
   ...:      event_accumulator.SCALARS: 0,
   ...:      event_accumulator.HISTOGRAMS: 1,
   ...:  })

In [3]: ea.Reload() # loads events from file
Out[3]: <tensorflow.python.summary.event_accumulator.EventAccumulator at 0x7fdbe5ff59e8>

In [4]: ea.Tags()
Out[4]: 
{'audio': [],
 'compressedHistograms': [],
 'graph': True,
 'histograms': [],
 'images': [],
 'run_metadata': [],
 'scalars': ['Loss', 'Epsilon', 'Learning_rate']}

In [5]: ea.Scalars('Loss')
Out[5]: 
[ScalarEvent(wall_time=1481232633.080754, step=1, value=1.6365480422973633),
 ScalarEvent(wall_time=1481232633.2001867, step=2, value=1.2162202596664429),
 ScalarEvent(wall_time=1481232633.3877788, step=3, value=1.4660096168518066),
 ScalarEvent(wall_time=1481232633.5749283, step=4, value=1.2405034303665161),
 ScalarEvent(wall_time=1481232633.7419815, step=5, value=0.897326648235321),
 ...]

size_guidance

size_guidance: Information on how much data the EventAccumulator should
  store in memory. The DEFAULT_SIZE_GUIDANCE tries not to store too much
  so as to avoid OOMing the client. The size_guidance should be a map
  from a `tagType` string to an integer representing the number of
  items to keep per tag for items of that `tagType`. If the size is 0,
  all events are stored.
收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号