画loss,但是一直遇到一个问题,定义窗口时,需要画第一个点(一般是原点),但是这边后面增加点,导致append到后面,但是第一点没办法处理。
安装visdom
pip install visdom 或者 conda isntall visdom
打开
python -m visdom.server
#通过http://localhost:8097访问
使用visdom
from visdom import Visdom
viz = Visdom()
viz.line([0.], [0.], win='train_loss',opts=dict(title='train loss')) #single-line
viz.line([loss.item()], [global_step], win='trian_loss', update='append')
###################
viz.line([[0., 0.]], [0.], win='test',opts=dict(title='train loss',
legend=['loss', 'acc.'])) #single-line
viz.line([[test_loss, correct / len(test_loader.dataset)]], [global_step], win='test', update='append')
###################
viz.images(data.view(-1,1,28,28), win='x')
viz.text(str(pred.detach().cpu().numpy()), win='pred', opts=dict(title='pred'))
# 推荐使用x.detach()来访问数据,更加安全。
# 使用loss += loss.detach()来获取不需要梯度回传的部分。
# 或者使用loss.item()直接获得所对应的python数据类型。
解决画图中,第一个点需要替换
self.vis.line(Y=y,X=np.ones(y.shape)*x,
win=str(name_total),#unicode
opts=dict(legend=name,
title=name_total),
update='replace' if epoch == 0 else 'append'
推荐教程:
https://github.com/facebookresearch/visdom
https://www.pytorchtutorial.com/using-visdom-for-visualization-in-pytorch/
https://www.pytorchtutorial.com/pytorch-visdom/
学习博客,这个博客总结了上面的内容,内容很好。https://www.cnblogs.com/wanghui-garcia/p/10659966.html