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.
You can also view the images logged step-wise by clicking in an image.
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.
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