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:
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
- Após entrar, a interface principal do Visdom será exibida
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
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
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