畫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