Note: This section of the tutorial can only run on Polyaxon EE and Polyaxon Cloud.
In the previous tutorial, we learned how to list and filter runs and how to compare them using a Tensorboard component that expects multiple run uuids. In this tutorial we will automate the complete process of querying runs, sorting based on the loss metric, limiting the results to 5 records, and then starting the Tensorboard.
Querying runs with a Join
Polyaxon provides an abstraction called join
. A join in Polyaxon allows to perform a search based on the query
, sort
, limit
, and offset
specification, and allows to pass the result to a component.
Let’s look at how we can perform the previous process using a single polyaxonfile:
version: 1.1
kind: operation
name: compare-top-experiments
joins:
- query: "kind:job, metrics.loss:<0.3, status:succeeded"
sort: "metrics.loss"
limit: "5"
params:
uuids: {value: "globals.uuid"}
hubRef: tensorboard:multi-run
This polyaxonfile contains an operation that basically performs a search and only requests the uuid
of each run in the result, it then exposes those uuids
as a parameter that the component expects.
Note: For more details please check the join section.
Running the join operation
Running an operation with a join is similar to running any other operation:
polyaxon run -f joins/performance_based_tensorboard.yaml [-p PROJECT_NAME]
Running a Tensorboard Join from the UI
You can run run this join directly from the UI, and Polyaxon will start a Tensorboard service to compare the experiments.