Work with ML Training Jobs with Viam's ML Training API

The ML training API allows you to get information about and cancel ML training jobs taking place on the Viam app.

Establish a connection

To use the Viam ML training client API, you first need to instantiate a ViamClient and then instantiate an MLTrainingClient. See the following example for reference.

Select Include secret on the Code sample page of the CONNECT tab of the Viam app to obtain your API key and API key ID values.

import asyncio

from viam.rpc.dial import DialOptions, Credentials
from viam.app.viam_client import ViamClient


async def connect() -> ViamClient:
    dial_options = DialOptions(
      credentials=Credentials(
        type="api-key",
        # Replace "<API-KEY>" (including brackets) with your machine's API key
        payload='<API-KEY>',
      ),
      # Replace "<API-KEY-ID>" (including brackets) with your machine's
      # API key ID
      auth_entity='<API-KEY-ID>'
    )
    return await ViamClient.create_from_dial_options(dial_options)


async def main():

    # Make a ViamClient
    viam_client = await connect()
    # Instantiate an MLTrainingClient to run ML training client API methods on
    ml_training_client = viam_client.ml_training_client

    viam_client.close()

if __name__ == '__main__':
    asyncio.run(main())

Once you have instantiated an MLTrainingClient, you can run the following API methods against the MLTrainingClient object (named ml_training_client in the examples).

API

The ML training client API supports the following methods:

Method NameDescription
GetTrainingJobGet training job metadata by ID.
ListTrainingJobsGet training job metadata for all jobs within an organization.
CancelTrainingJobCancel the specified training job.

GetTrainingJob

Get training job metadata.

Parameters:

Returns:

job_metadata = await ml_training_client.get_training_job(
    id="INSERT YOUR JOB ID")

For more information, see the Python SDK Docs.

ListTrainingJobs

Get training job metadata for all jobs within an organization.

Parameters:

  • org_id (str): The ID of your organization to request training job metadata from. Retrieve this value with the fleet management API’s ListOrganizations().
  • training_status (Optional[TrainingStatus.ValueType]): The status of training jobs you want to filter the list by. If you leave this unspecified, all training jobs for your organization are returned.

Returns:

jobs_metadata = await ml_training_client.list_training_jobs(
    org_id="INSERT YOUR ORG ID")

first_job_id = jobs_metadata[1].id

For more information, see the Python SDK Docs.

CancelTrainingJob

Cancel the specified training job.

Parameters:

Returns:

  • None

Raises:

  • GRPCError: If no training job exists with the given ID or cancellation was otherwise unsuccessful.
await ml_training_client.cancel_training_job(
    id="INSERT YOUR JOB ID")

For more information, see the Python SDK Docs.

Have questions, or want to meet other people working on robots? Join our Community Discord.

If you notice any issues with the documentation, feel free to file an issue or edit this file.