Edit on GitHub


Saves the given image val to the output file name.

def log_image(name: str, val):


from dvclive import Live

with Live() 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 `PIL.image`:
    from PIL import Image
    img_pil = Image.new("RGB", (500, 500), (250, 250, 250))
    live.log_image("pil.png", img_pil)

    # 3. Or log an existing image:
    from PIL import Image
    live.log_image("sample.png", "run/batch_0_sample.png")


Supported values for val are:

The images will be saved in {Live.plots_dir}/images/{name}:

└── plots
    └── images
        ├── numpy.png
        └── pil.png

The logged images can be visualized with dvc plots:

$ dvc plots diff dvclive/plots


  • 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.


  • dvclive.error.InvalidDataTypeError - thrown if the provided val does not have a supported type.

  • dvclive.error.DataAlreadyLoggedError - thrown if the provided name has already been logged within the same step.


🐛 Found an issue? Let us know! Or fix it:

Edit on GitHub

Have a question? Join our chat, we will help you:

Discord Chat