在使用pytorch、TensorFlow等训练模型时,往往使用tensorboard进行训练曲线的可视化
# 创建
self.event_dir = "D:\\project_files\\logs"
self.summary_writer = tf.summary.create_file_writer(self.event_dir)
# 写数据
with self.summary_writer.as_default():
tf.summary.scalar('Main/loss', loss, step=self.steps)
tf.summary.scalar('Main/reward', reward, step=self.steps)
self.summary_writer.flush()
然后通过浏览器进行可视化
但有时需要将数据提取出来,毕竟数据在自己手里处理起来才方便一些,比如做一些平滑处理、截取数据的某一段等。此时则可用
tf.compat.v1.train.summary_iterator()
scalars = []
tensorboard_path = "D:\\...\events.out.tfevents.1680158128.compute-161.44932.0.v2"
for vs in tf.compat.v1.train.summary_iterator(tensorboard_path):
for v in vs.summary.value:
if v.tag == 'Main/loss':
scalars.append(tf.make_ndarray(v.tensor))
这样,就提取出了loss曲线,可以自行进行处理。