Upload PIL image
To upload a PIL image to Neptune, first save it to disk or as a BytesIO object.
Upload a single image
To upload a single PIL image to an attribute, use the assign_files()
function.
PIL image saved under a file name
from PIL import Image
img = Image.fromarray(img_array)
img.save("path/to/image.png")
run.assign_files({"dataset/image_sample": "path/to/image.png"})
PIL image saved as a BytesIO object
from PIL import Image
from io import BytesIO
img = Image.fromarray(img_array)
with BytesIO() as obj:
img.save(obj, format="png")
run.assign_files({"dataset/image_sample": obj.get_value()})
Upload a sequence of images
To upload a sequence of PIL images to an attribute, use the log_files()
function.
Upload a sequence of image files
from glob import glob
for idx, file in enumerate(glob("path/to/folder/*.png")):
run.log_files({"dataset/image_samples": file}, step=idx)
Upload a sequence of image arrays
for idx, img in enumerate(list_of_image_arrays):
with BytesIO() as obj:
img = Image.fromarray(img)
img.save(obj, format="png")
run.log_files({"dataset/image_sample": obj.getvalue()}, step=idx)