Visão detalhada da ferramenta de visualização PyTorch (1)

1. Introdução

No campo do aprendizado profundo, o treinamento do modelo é um processo necessário, portanto, muitas vezes é necessário monitorar e visualizar alguns dados em tempo real, como valor de perda, taxa de acerto de acerto, etc. No Tensorflow, a ferramenta mais comumente usada não é outra senão o Tensorboard; no Pytorch, há um TensorboardX semelhante, mas dizem que não é tão eficiente quanto visdom no carregamento de dados do tensor. Visdom é uma ferramenta de visualização desenvolvida pela FaceBook, sua essência é um servidor web do lado web, que suporta bem o Pytorch.

2. Como instalar e iniciar

2.1 Instalação

  • Comando de instalação
pip install visdom
  • A interface de instalação bem-sucedida é mostrada na figura abaixo:
    Insira a descrição da imagem aqui
    Após a instalação bem-sucedida, precisamos iniciar o visdom.

2.2 Iniciar

Semelhante ao TensorBoard do TensorFlow, se você quiser usar o Visdom, deve primeiro ativar o comando de monitoramento no terminal

  • comando vidsom start
python -m visdom.server
  • Depois que visdom for iniciado com sucesso, ele retornará uma URL e, em seguida, entrará no navegador de acordo com a URL exibida: http: // localhost: 8097 para fazer login
    Insira a descrição da imagem aqui
  • Após entrar, a interface principal do Visdom será exibida
    Insira a descrição da imagem aqui

Três, Visdom visualiza o processo de treinamento da rede neural

Primeiro, precisamos importar Visdom e outras bibliotecas necessárias

from visdom import Visdom
import numpy as np
import time

O processo de treinamento da rede neural de visualização Visdom é aproximadamente dividido em 3 etapas:

  • Instancie uma janela
  • Inicializar informações da janela
  • Atualizar informações de monitoramento

3.1 Monitorar dados individuais

  • Exemplo: monitorar mudanças em train_loss
# 实例化一个窗口
wind = Visdom()
# 初始化窗口信息
wind.line([0.], # Y的第一个点的坐标
		  [0.], # X的第一个点的坐标
		  win = 'train_loss', # 窗口的名称
		  opts = dict(title = 'train_loss') # 图像的标例
)
# 更新数据
for step in range(10):
	# 随机获取loss,这里只是模拟实现
	loss = np.random.randn() * 0.5 + 2
	wind.line([loss],[step],win = 'train_loss',update = 'append')
	time.sleep(0.5)
  • Resultado da operação: Abra a interface principal do Visdom neste momento, você verá que a janela train_loss foi exibida
    Insira a descrição da imagem aqui

3.2 Monitorar múltiplos dados

  • Exemplo: monitorar train_loss e acc
# 实例化窗口
wind = Visdom()
# 初始化窗口参数
wind.line([{
    
    0.,0.]],[0.],win = 'train',opts = dict(title = 'loss&acc',legend = ['loss','acc']))
# 更新窗口数据
for step in range(10):
	loss = 0.2 * np.random.randn() + 1
	acc = 0.1 * np.random.randn() + 0.5
	wind.line([[loss, acc]],[step],win = 'train',update = 'append')
	time.sleep(0.5)
  • resultado da operação
    Insira a descrição da imagem aqui

Quatro, imagem de visualização Visdom

Ao processar dados de imagem, você pode usar o Visdom para visualizar a imagem

  • Primeiro, importe os pacotes relevantes
from visdom import Visdom
import cv2
import numpy as np
import torch
  • Estudo de caso
# 读入图像
image = cv2.imread('E://桌面.jpg')
# openCV按照BGR读取,而visdom 默认按照RGB显示,因此要进行通道转换
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
# visdom类似于pytorch中的卷积模型,接收的数据都要求通道数在前
img = np.transpose(img, (2, 0, 1))
# 将numpy类型转换为torch类型
img = torch.from_numpy(img)
# 可视化图像
viz.image(img, win='pkq')
  • Resultados da corrida
    As fotos mostradas por todos são diferentes, então não vou demonstrar aqui! Demonstre você mesmo!

Próximo artigo Atualizar o conjunto de dados de visualização do Visdom e visualizar através do Visdom através do processo de treinamento específico! ! ! ! !

referências

http://www.dengb.com/Pythonjc/1354056.html
https://www.it610.com/article/1293748846370824192.htm

Acho que você gosta

Origin blog.csdn.net/dongjinkun/article/details/114973401
Recomendado
Clasificación