Log images under the currentrun
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
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.
Visualizing image at different steps
Class 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)