pytorch使用tensorboardX進行loss可視化


最近pytorch出了visdom,也沒有怎么去研究它,主要是覺得tensorboardX已經夠用,而且用起來也十分的簡單

pip install tensorboardX

然后在代碼里導入

from tensorboardX import SummaryWriter

然后聲明一下自己將loss寫到哪個路徑下面

writer = SummaryWriter('./log')

然后就可以愉快的寫loss到你得這個writer了

niter = epoch * len(train_loader) + i
writer.add_scalars(args.result_path + 'Train_val_loss', {args.result_path+'train_loss': loss.data.item()}, niter)

其中,add_scalars是將不同得變量添加到同一個圖下,圖的名稱是add_scalars得第一個變量

然后為這個圖中不同得曲線添加不同得標題,上面這一行代碼

writer.add_scalars(args.result_path + 'Train_val_loss', {args.result_path+'train_loss': loss.data.item()}, niter)

后面得dict中得key是曲線的名稱,后面的value是對應得append的值,再后面得niter是x坐標,這句話得意思就相當於,對於圖名稱為args.result_path + 'Train_val_loss'的圖,對曲線名稱為args.result_path+'train_loss'添加新的點,這個點為(niter, loss.data.item())

同樣的,我可以畫出val的loss

niter = epoch * len(train_loader) + i
writer.add_scalars(args.result_path + 'Train_val_loss', {args.result_path+'val_loss': mean_loss}, niter)

writer保存到了我們剛剛聲明的路徑’./log‘下面,然后終端啟動tensorboard

tensorboard --logdir ./log --port 8890

不會用得進行tensorboard --help即可

然后進行端口映射就行了

實際上在使用的過程中,我發現了,如果你要保存的結果在各個子文件夾內,然后你在父文件夾運行tensorboard,就可以在瀏覽器看到各種結果,而不必再進行不同的端口映射

比如上面這個,我的resnet文件夾下有不同的我writer寫入的文件,在父目錄下啟動tensorboard之后,

沒毛病


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM