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
- Import module:
from torch.utils.tensorboard import SummaryWriter - Create instance with target directory path
- Apply appropriate method:
add_scalar()for numerical metricsadd_image()for single imagesadd_images()for multiple images
- Close writer with
.close() - Launch visualization:
tensorboard --logdir='path' --port=port_number
Use distinct tags to separate unrelated visualizations within the same log directory.