Visualizing Deep Learning Training with TensorBoard

Overview of TensorBoard

TensorBoard serves as a crucial visualization tool for monitoring deep learning model training. To begin using it, ensure the library is installed via pip.

pip install tensorboard

Utilizing SummaryWriter for Visualization

The SummaryWriter class enables detailed process visualization. Two primary methods are covered here.

Scalar Data Visualization

"""
The add_scalar method plots scalar values over steps.
Parameters:
- tag: Name for the data series
- scalar_value: Y-axis value
- global_step: X-axis step (typically training iteration)
Multiple series with identical tags appear on the same plot, connected sequentially
"""

Example: Plot both y=2x and y=x on the same graph.

from torch.utils.tensorboard import SummaryWriter

logger = SummaryWriter('training_logs')

# Generate points for y = 2x
for step in range(5):
    logger.add_scalar('linear_functions', 2 * step, step)

# Add points for y = x to same plot
for step in range(5):
    logger.add_scalar('linear_functions', step, step)

logger.close()

Launch TensorBoard from command line:

tensorboard --logdir='absolute/path/to/training_logs'

Specify custom port if needed:

tensorboard --logdir='absolute/path/to/training_logs' --port=6007

Points sharing the same global_step are connected acros different series.

Image Data Visualization

"""
add_image parameters:
- tag: Series identifier
- img_tensor: Must be torch.Tensor, numpy.ndarray, string, or blob
- global_step: Training iteration
PIL images require conversion to numpy arrays
OpenCV loads images directly as numpy arrays
"""

Example: Display an ant image from dataset in TensorBoard.

import numpy as np
from PIL import Image

image_location = r'path/to/hymenoptera_data/train/ants/sample.jpg'
pil_img = Image.open(image_location)
print(type(pil_img))  # <class 'PIL.JpegImagePlugin.JpegImageFile'>

numpy_img = np.array(pil_img)
print(numpy_img.shape)  # (height, width, channels)

logger = SummaryWriter('image_logs')
logger.add_image('ant_sample', numpy_img, 1, dataformats='HWC')
logger.close()

Image dimensions determine required data format parameter.

Core Workflow

  1. Import module: from torch.utils.tensorboard import SummaryWriter
  2. Create instance with target directory path
  3. Apply appropriate method:
    • add_scalar() for numerical metrics
    • add_image() for single images
    • add_images() for multiple images
  4. Close writer with .close()
  5. Launch visualization: tensorboard --logdir='path' --port=port_number

Use distinct tags to separate unrelated visualizations within the same log directory.

Tags: TensorBoard deep-learning visualization pytorch machine-learning

Posted on Wed, 26 Aug 2026 16:42:28 +0000 by WindomEarle