PaddlePaddle 极简入门实践七:用VisualDL可视化展示数据

单纯的在屏幕上打印数据不够直观
VisualDL就很好的解决了这个问题
本篇以Scalar打点数据展示为例
先上效果图


损失指标

流程简介

1、打开VisualDL官方文档

http://visualdl.paddlepaddle.org/documentation/visualdl/zh/develop/getting_started/introduction_cn.html
不难看出VisualDL支持的可视化类型还是很多的







2、安装VisualDL

直接使用pip安装即可,若使用Pycharm则在包管理器中搜索visualdl。


3、定义VisualDL日志文件

logw = visualdl.LogWriter("g:/log/main_log", sync_cycle=10)

第一个参数为日志保存路径,这里为了方便起见使用了绝对路径,第二个参数为指定多少次写操作后才从内存写入到硬盘日志文件,越大越占用内存,越小则越占用硬盘IO。

4、定义标签

with logw.mode('train') as logger:
    trainTag = logger.scalar("损失指标")#训练损失的标签 对应效果图的“train”
with logw.mode('test') as logger:
    testTag = logger.scalar("损失指标")#测试损失的标签 对应效果图的“test”

此处的logw.mode('train')则定义了标签名称,以至于trainTag则为下方输入数据做准备

5、输入数据

因为损失数据的输出是在训练中产生的,所以进入到训练循环中将trainTag的数据添加进来。

# 定义损失函数
cost = fluid.layers.cross_entropy(input=net, label=label)
avg_cost = fluid.layers.mean(cost)
acc = fluid.layers.accuracy(input=net, label=label, k=1)
# 定义优化方法
sgd_optimizer = fluid.optimizer.SGD(learning_rate=0.01)
sgd_optimizer.minimize(avg_cost)
# 数据传入设置
batch_reader = paddle.batch(reader=dataReader(), batch_size=1024)
testb_reader = paddle.batch(reader=testReader(), batch_size=1024)
feeder = fluid.DataFeeder(place=place, feed_list=[x, label])
prog = fluid.default_startup_program()
exe.run(prog)


#训练主循环
trainNum = 50
for i in range(trainNum):
    for batch_id, data in enumerate(batch_reader()):
        outs = exe.run(
            feed=feeder.feed(data),
            fetch_list=[label, avg_cost])  # feed为数据表 输入数据和标签数据

        trainTag.add_record(i, outs[1])#输入数据

trainTag.add_record(i, outs[1])中第一个参数是step,相当于效果图中的X坐标,第二个参数为Y坐标,这里的outs[1]avg_cost的数据,当作Y坐标对了。

接下来开始训练!

6、在终端中运行VisualDL


输入visualDL --logdir 日志文件路径 --port 指定端口号 --host 指定IP地址(可选)
例:visualDL --logdir g:/log/main_log --port 8080 --host 127.0.0.10
如果没有使用Pycharm的话可以使用cmd或终端进入Python目录下的Scripts目录执行该语句即可

7、打开浏览器,进入刚刚设置的地址


可以看到数据已经已图标的形式展现了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。