读取tensorboard数据并可视化

使用tensorboard可以很好的记录tensorflow在训练模型中的一些变量值,尤其loss值,

然而tensorboard自带的可视化工具并不能随意设置绘图信息,我们通过读取tensorboard的数据,然后使用matplotlib对数据进行可视化分析

代码:

from tensorboard.backend.event_processing import event_accumulator
import matplotlib.pyplot as plt

def read_tensorboard_data(tensorboard_path, val_name):
    """读取tensorboard数据,
    tensorboard_path是tensorboard数据地址val_name是需要读取的变量名称"""
    ea = event_accumulator.EventAccumulator(tensorboard_path)
    ea.Reload()
    print(ea.scalars.Keys())
    val = ea.scalars.Items(val_name)
    return val

def draw_plt(val, val_name):
    """将数据绘制成曲线图,val是数据,val_name是变量名称"""
    plt.figure()
    plt.plot([i.step for i in val], [j.value for j in val], label=val_name)
    """横坐标是step,迭代次数
    纵坐标是变量值"""
    plt.xlabel('step')
    plt.ylabel(val_name)
    plt.show()

if __name__ == "__main__":
    tensorboard_path = 'G:\events.out.tfevents.1562917214.omnisky'
    val_name = 'cross_entropy'
    val = read_tensorboard_data(tensorboard_path, val_name)
    draw_plt(val, val_name)

结果:

[u'loss_box', u'cross_entropy', u'ACT/vgg_16/conv5/conv5_3/Relu/zero_fraction',  u'rpn_loss_box', u'rpn_cross_entropy', u'total_loss', u'ACT/vgg_16_1/rpn_conv/3x3/Relu/zero_fraction']

读取tensorboard数据并可视化_第1张图片

你可能感兴趣的:(深度学习,tensorflow,tensorboard,loss可视化)