python - Tensorflow中如何使用多个汇总集合?

标签 python tensorflow summary

我有两组不同的摘要。一个每批处理收集一次,另一个每个时期收集一次。如何使用 merge_all_summaries(key='???') 分别收集这两个组中的摘要?手动执行始终是一种选择,但似乎有更好的方法。

说明我认为它应该如何工作:

      # once per batch 
      tf.scalar_summary("loss", graph.loss)
      tf.scalar_summary("batch_acc", batch_accuracy)
      # once per epoch
      gradients = tf.gradients(graph.loss, [W, D])
      tf.histogram_summary("embedding/W", W, collections='per_epoch')
      tf.histogram_summary("embedding/D", D, collections='per_epoch')

      tf.merge_all_summaries()                # -> (MergeSummary...) :)
      tf.merge_all_summaries(key='per_epoch') # -> NONE              :(

最佳答案

问题解决了。摘要的 collections 参数应该是一个列表。 解决方案:

  # once per batch 
  tf.scalar_summary("loss", graph.loss)
  tf.scalar_summary("batch_acc", batch_accuracy)
  # once per epoch
  tf.histogram_summary("embedding/W", W, collections=['per_epoch'])
  tf.histogram_summary("embedding/D", D, collections=['per_epoch'])

  tf.merge_all_summaries()                # -> (MergeSummary...) :)
  tf.merge_all_summaries(key='per_epoch') # -> (MergeSummary...) :)

编辑。 TF 中的语法变化:

# once per batch 
  tf.summary.scalar("loss", graph.loss)
  tf.summary.scalar("batch_acc", batch_accuracy)
  # once per epoch
  tf.summary.histogram("embedding/W", W, collections=['per_epoch'])
  tf.summary.histogram("embedding/D", D, collections=['per_epoch'])

  tf.summary.merge_all()                # -> (MergeSummary...) :)
  tf.summary.merge_all(key='per_epoch') # -> (MergeSummary...) :)

关于python - Tensorflow中如何使用多个汇总集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40722413/

相关文章:

mysql - 如何创建数据库的周、月、年摘要

r - 计算组平均值(或其他汇总统计量)并分配给原始数据

python - (PySpark) reduceByKey 后的嵌套列表

python - 什么是更简单、更 pythonic 的表达以下内容的方式?

python - 如何在 CNTK Sequential 中添加两层

r - 分面时使用 stat_summary 为折线图生成误差线的问题

python - 具有相同 RabbitMQ 代理后端进程的多个 Celery 项目

python - 使用 Selenium 抓取动态内容

python - KeyError : tf. 张量 'Placeholder_6:0' shape=<未知> dtype=string

python-3.x - 尽管我的 CPU 支持 AVX,但 Tensorflow 2.4 仍无法工作