SoFunction
Updated on 2024-11-12

PyTorch Visualization Tools TensorBoard and Visdom

I. TensorBoard

TensorBoard It is generally used asTensorFlow is a visualization tool, deeply integrated with TensorFlow, that presents TensorFlow's network computation graphs, plots image-generated quantitative metrics, additional data, and more.

In addition.TensorBoard is also a standalone tool that can be used for visualization in PyTorch as well.

1. Installation:

pip install tensorboard

2. Initiation:

tensorboard --logdir="log directory"

When starting tensorboard, you can specify parameters such as logdir, port (default 6006), host (default localhost):

3. Tensorboard visualization demo (PyTorch framework):

Training the model, importingtensorboard. SummaryWriter save (a file etc) (computing)loss、accuracy and other log messages.

# Import SummaryWriter
from  import SummaryWriter
...
# Create a SummaryWriter instance, specifying the location of log_dir
summaryWriter = SummaryWriter(log_dir="/Users/liyunfei/PycharmProjects/python3practice/06DL/fcnn/logs")
...
# Write train_loss, test_loss, score, etc. during model training
summaryWriter.add_scalars("loss", {"train_loss_avg": train_loss_avg, "test_loss_avg": test_loss_avg}, epoch)
summaryWriter.add_scalar("score", score, epoch)

Start TensorBoar and visualize the training process.

1) Start command:

tensorboard --logdir=/Users/liyunfei/PycharmProjects/python3practice/06DL/fcnn/logs

II. Visdom

Visdom beFacebook A visualization tool developed specifically for PyTorch that supports "remote data" visualization with support for Torch and Numpy. GitHub address:/fossasia/visdom

1. Installation:

pip install visdom

2. Initiation:

python -m

-m is to start as a module service
For linux/mac-os environments, you can use the following command to start running in the background

nohup python -m &

When starting Visdom, you can specify other parameters such as port (default 8097) and hostname (default localhost):

usage:  [-h] [-port port] [--hostname hostname] [-base_url base_url]
                 [-env_path env_path] [-logging_level logger_level]
                 [-readonly] [-enable_login] [-force_new_cookie]
                 [-use_frontend_client_polling]

3、Visdom visualization demonstration

1) Start Visdom:

python -m -port 8097

2) Successful startup is as follows:

3) Visualization code for the training process:

# Import the visdom package
import visdom

# Create Visdom object, connect to server, specify env environment (not specify default env="main")
viz = (server='http://localhost', port=8097, env='liyunfei')
...
([0.], [0], win='train_loss', opts=dict(title='train_loss'))
([0.], [0], win='accuracy', opts=dict(title='accuracy'))
...
# Real-time visualization of loss, accuracy, etc. during model training.
([train_loss_avg], [epoch], win='train_loss', update='append')
([accuracy], [epoch], win='accuracy', update='append')

4) Visualize the results:

5) Other operations - visualize one/multiple images:
Example:

import visdom
import numpy as np

viz = (server='http://localhost', port=8097, env='liyunfei')

# A picture
(
    (3, 512, 256),
    opts=dict(title='Random!', caption='How random.'),
)
# Multiple pictures
(
    (20, 3, 64, 64),
    nrow=5,
    opts=dict(title='Random images', caption='How random.')
)

Effect:

6) Visdom's more visualization API (commonly used line, image, text):

: 2D or 3D scatterplot
:: Wiremap
: Stem and leaf diagrams
:: Heat maps
: Bar Chart
: Histogram
: Box diagrams
: Surface View
: Profiles
: Plotting a 2D vector field
: Photos
: Text
:: Grid maps
: Serialization status

To this article on PyTorch visualization tools TensorBoard and Visdom article is introduced to this, more related PyTorch visualization tools content please search my previous articles or continue to browse the following related articles I hope that you will support me in the future more!