使用visdom可視化pytorch訓練過程


1、安裝

pip install visdom

或者

conda install -c conda-forge visdom

2、啟動服務

python -m visdom.server

瀏覽器輸入http://localhost:8097查看

3、使用

參考:https://github.com/noagarcia/visdom-tutorial

https://github.com/facebookresearch/visdom

from visdom import Visdom
import numpy as np


class VisdomLinePlotter(object):
    """Plots to Visdom"""

    def __init__(self, env_name='main'):
        self.viz = Visdom()
        self.env = env_name
        self.plots = {}

    def plot(self, var_name, split_name, title_name, x, y):
        if var_name not in self.plots:
            self.plots[var_name] = self.viz.line(X=np.array([x, x]), Y=np.array([y, y]), env=self.env, opts=dict(
                legend=[split_name],
                title=title_name,
                xlabel='Epochs',
                ylabel=var_name
            ))
        else:
            self.viz.line(X=np.array([x]), Y=np.array([y]), env=self.env, win=self.plots[var_name], name=split_name,
                          update='append')

 使用

import visdom_utils

global plotter
plotter = visdom_utils.VisdomLinePlotter(env_name='Tutorial Plots')
plotter_name = 'cnn casia Loss lr={:.3f}'.format(options.lr_cnnh)

def train:
    .....
    plotter.plot('loss', 'train', plotter_name, (epoch - 1) * len(train_data_loader) + iteration, loss.item())

 4、問題

Connection is already closed.

暫未解決!

5、遠程

連接ssh時,將服務器的8097端口重定向到自己機器上來:

ssh -L 18097:127.0.0.1:8097 username@remote_server_ip

其中:18097:127.0.0.1代表自己機器上的18097號端口,8097是服務器上visdom使用的端口。

在服務器上使用8097端口正常啟動tensorboard:

python -m visdom.server

在本地瀏覽器中輸入地址:

127.0.0.1:18097


免責聲明!

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



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