使用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