PyTorch usa Visdom para dibujar la curva del proceso de entrenamiento

Recientemente, estaba entrenando la red. La pérdida y la precisión de la red se emitían en el terminal, que no era intuitivo y no se podía ver. Me preguntaba si había una herramienta que pudiera realizar el proceso de entrenamiento de dibujar el modelo en tiempo real, y luego lo encontré Visdom, encontré que esto es algo bueno, satisface completamente mis necesidades, estúdielo y regístrelo aquí para futuras referencias.

Una introducción muy detallada: el uso de la herramienta de visualización de aprendizaje profundo visdom

PyTorch usa Visdom para dibujar la curva del proceso de entrenamiento

Introducción

Página de inicio de github de Visdom : https://github.com/fossasia/visdom
Referencia del documento chino de Visdom : https://ptorch.com/news/77.html

Visdom es una herramienta de visualización de datos de código abierto desarrollada por FaceBook.Con sus funciones simples y fáciles de usar, se convirtió rápidamente en una herramienta de visualización de datos para PyTorch.

El objetivo de Visdom es facilitar la visualización de datos (remotos), con énfasis en apoyar experimentos científicos. Difundir dibujo para ti y tus colaboradores: visualización de videos, imágenes, texto y más.

inserte la descripción de la imagen aquí

Instalar Visdom

visdom requiere un entorno python3, la instalación es relativamente simple y se puede instalar directamente con pip:

pip install visdom

Usos de Visdom

python -m visdom.server

inserte la descripción de la imagen aquí

Luego abra el enlace devuelto en su navegador:http://loaclhost:8097

inserte la descripción de la imagen aquí

import visdom

Seleccione la ventana del entorno, y también puede seleccionar otras ventanas aquí. El nombre de la ventana es el principal aquí en Entorno en la parte superior del navegador después de abrirlo.

vis = visdom.Visdom(env='main')  # 设置环境窗口的名称,如果不设置名称就默认为main

Cree una nueva ventana de imagen en este entorno, esta oración no debe colocarse en cada iteración

opt = {
    
    
        'xlabel': 'epochs',  # 横坐标名称
        'ylabel': 'loss_value', # 纵坐标名称
        'title': 'loss'  # 标题是loss
    }
#在环境窗口建立一个新的图窗,图窗标题是loss
loss_window = vis.line(
    X=[0],
    Y=[0],
    opts=opt
)

Esta oración se coloca en cada iteración:

vis.line(X=[epoch], Y=[对应的loss值], win=loss_window, opts=opt, update='append')

Ponerlo en el código de entrenamiento de la red neuronal es el siguiente:

#训练模型
vis = visdom.Visdom(env='main')  # 设置环境窗口的名称,如果不设置名称就默认为main
opt = {
    
    
        'xlabel': 'epochs',
        'ylabel': 'loss_value',
        'title': 'SGD_loss'
    }
loss_window = vis.line(
    X=[0],
    Y=[0],
    opts=opt
)

for epoch in range(400):
    y_pred = model(x_data)
    loss = criterion(y_pred, y_data)
    print(epoch, loss.item())

    #所有梯度归零化
    optimizer.zero_grad()
    #反向传播求出梯度
    loss.backward()
    #更新权重和偏置值,即w和b
    optimizer.step()

    vis.line(X=[epoch], Y=[loss.item()], win=loss_window, opts=opt, update='append')

Referencias

La herramienta de visualización de datos Visdom dibuja la curva de pérdida

Uso de la programación de Python y Visdom para dibujar imágenes de funciones de pérdida en el aprendizaje profundo

Supongo que te gusta

Origin blog.csdn.net/qq_41990294/article/details/129087522
Recomendado
Clasificación