Log Images
Logging images in different format
Log images under the current run
at the given step
.
Use the function log_images for a run
.
PIL
package is needed to log images. To install the PIL package, run
pip install pillow
Here is the sample code to log images from different sources:
from truefoundry.ml import get_client, Image
import numpy as np
import PIL.Image
client = get_client()
run = client.create_run(
ml_repo="my-classification-project",
)
imarray = np.random.randint(low=0, high=256, size=(100, 100, 3))
im = PIL.Image.fromarray(imarray.astype("uint8")).convert("RGB")
im.save("result_image.jpeg")
images_to_log = {
"logged-image-array": Image(data_or_path=imarray),
"logged-pil-image": Image(data_or_path=im),
"logged-image-from-path": Image(data_or_path="result_image.jpeg"),
}
run.log_images(images_to_log, step=1)
run.end()
Visualizing the logged images
You can visualize the logged images in the TrueFoundry dashboard.

Logged Images
You can also view the images logged step-wise by clicking in an image.

Visualizing image at different steps
Class mlfoundry.Image
mlfoundry.Image
Images are represented and logged using this class in Truefoundry.
You can initialize truefoundry.ml.Image
by either by using a local path or you can use a numpy array / PIL.Image object.
You can also log caption and the actual and prodicted values for an image as shown in the examples below.
Logging images with caption and a class label
from keras.datasets import mnist
from truefoundry.ml import get_client, Image
import time
import numpy as np
data = mnist.load_data()
(X_train, y_train), (X_test, y_test) = data
client = get_client()
run = client.create_run("mnist-sample")
actuals = list(y_test)
predictions = list(np.random.randint(9, size=10))
img_dict = {}
for i in range(10):
img_dict[str(i)] = Image(
data_or_path=X_train[i],
caption="mnist sample",
class_groups={
"actuals": str(actuals[i]),
"predictions": str(predictions[i])
},
)
run.log_images(img_dict)
The logged images can be visualized in the Truefoundry dashboard.

MNIST sample images
Logging image with multi-label classification problems
images_to_log = {
"logged-image-array": truefoundry.ml.Image(
data_or_path=imarray,
caption="testing image logging",
class_groups={"actuals": ["dog", "human"], "predictions": ["cat", "human"]},
),
}
run.log_images(images_to_log, step=1)
Updated 2 months ago