似乎在TF2.0下使用tf.summary与TF1.x不同。如果我想在TensorBoard中可视化多个标量(例如train_loss,val_loss等),如何在代码中实现tf.summary。我认为可能是:
writer = tf.summary.create_file_writer('summaries')
for epoch in range(epochs):
...
train_loss = ...
val_loss = ...
tf.summary.scalar('train_loss', train_loss)
tf.summary.scalar('val_loss', val_loss)
writer.flush()
但是它不起作用。我认为问题可能出在使用write.flush()。
在tensorflow 2.0中,您需要通过.as_default()
设置默认编写器。另外,必须在摘要操作中传递step
参数。可以查看更多详细信息here。
writer = tf.summary.create_file_writer("summaries")
with writer.as_default():
for epoch in range(epochs):
for step in range(steps):
train_loss = ...
val_loss = ...
tf.summary.scalar('train_loss', train_loss, step=step)
tf.summary.scalar('val_loss', val_loss, step=step)
writer.flush()