Live.log_image()
Saves the given image val to the output file name.
def log_image(name: str, val):Usage
from dvclive import Live
with Live(cache_images=True) as live:
# 1. Log an image from a numpy array:
import numpy as np
img_numpy = np.ones((500, 500), np.uint8) * 255
live.log_image("numpy.png", img_numpy)
# 2. Or log a matplotlib figure:
from matplotlib import pyplot as plt
fig, ax = plt.subplots()
ax.plot([1, 2, 3, 4])
live.log_image("matplotlib.png", fig)
# 3. Or log a `PIL.image`:
from PIL import Image
img_pil = Image.new("RGB", (500, 500), (250, 250, 250))
live.log_image("pil.png", img_pil)
# 4. Or log an existing image:
live.log_image("sample.png", "run/batch_0_sample.png")Description
Supported values for val are:
- A valid NumPy array (convertible to an image via PIL.Image.fromarray)
- A
matplotlib.figure.Figureinstance - A
PIL.Imageinstance - A path to an image file (
strorPath). It should be in a format that is readable byPIL.Image.open()
The images will be saved in {Live.plots_dir}/images/{name}. When using
Live(cache_images=True), the images directory
will also be cached as part of Live.end(). In that case, a .dvc
file will be saved to
track it, and the
directory will be added to a .gitignore file to prevent Git tracking:
dvclive
└── plots
├── .gitignore
├── images
│ ├── numpy.png
│ ├── matplotlib.png
│ ├── pil.png
│ └── sample.png
└── images.dvcThe logged images can be visualized with dvc plots:
$ dvc plots diff dvclive/plotsImages per step
By default the images will be overwritten on each step. However, you can log
images using the following pattern
live.log_image(f"folder/{live.step}.png", img):
import numpy as np
from dvclive import Live
with Live() as live:
base_img = np.ones((500, 500), np.uint8)
for i in range(10):
live.log_image(
f"numpy/{live.step}.png", base_img * i * 10)
live.next_step()In DVC Studio and the DVC Extension for VSCode, folders following this pattern will be rendered using an image slider:


Parameters
-
name- name of the image file that this command will output. -
val- image to be saved. See the list of supported values in the Description.
Exceptions
dvclive.error.InvalidDataTypeError- thrown if the providedvaldoes not have a supported type.