summary_loss = [] for ph in ph_summary: summary_loss.append(tf.summary.scalar(ph.name, ph)) merged_summ = tf.summary.merge(summary_loss) return merged_summ用TensorBoard 2.0及以上版本的用法重写这段代码实现相同的功能
时间: 2024-03-03 12:52:07 浏览: 140
可以使用`tf.summary.create_file_writer()`和`tf.summary.scalar()`函数重写这段代码。下面是重写后的代码:
```python
import tensorflow as tf
def create_summary_op(ph_summary):
with tf.name_scope('summary'):
summary_loss = []
for ph in ph_summary:
summary_loss.append(tf.summary.scalar(ph.name, ph))
merged_summ = tf.summary.merge(summary_loss)
return merged_summ
# 创建一个FileWriter对象,用于将摘要数据写入事件文件
writer = tf.summary.create_file_writer('logs/')
# 定义一些placeholder,用于记录标量数据
ph1 = tf.placeholder(tf.float32, name='ph1')
ph2 = tf.placeholder(tf.float32, name='ph2')
# 定义一个需要合并的摘要数据列表
ph_summary = [ph1, ph2]
# 创建一个合并摘要数据的操作
merged_summ_op = create_summary_op(ph_summary)
# 将摘要数据写入事件文件
with writer.as_default():
sess = tf.Session()
sess.run(tf.global_variables_initializer())
for i in range(10):
# 随机生成一些数据,用于记录到摘要数据中
data1 = i
data2 = i * 2
# 运行合并摘要数据的操作,并将记录的步数传递给摘要数据
merged_summ = sess.run(merged_summ_op, feed_dict={ph1: data1, ph2: data2})
writer.add_summary(merged_summ, i)
# 启动TensorBoard
%tensorboard --logdir logs/
```
在这个例子中,我们首先定义了一些placeholder,用于记录标量数据。然后定义了一个需要合并的摘要数据列表,调用`create_summary_op()`函数创建一个合并摘要数据的操作。在将摘要数据写入事件文件时,我们使用`tf.summary.create_file_writer()`函数创建一个FileWriter对象,并使用`with writer.as_default():`语句将其设置为默认的写入器。然后创建一个会话,随机生成一些数据,并运行合并摘要数据的操作,将记录的摘要数据写入事件文件。最后启动TensorBoard,查看记录的摘要数据。
阅读全文