Remote Client#

The remote client allows you to create model experiments using the command line instead of relying on API calls.

Installation#

pip3 install -y nvidia-tao-client

Storage Topology#

Below is a Dino example of shared storage content:

shared
└── orgs
    ├── org_name
        ├── datasets
           ├── 23776785-f9e7-43a4-97c8-7954c892160f
              ├── jobs_metadata
              ├── metadata.json
              └── metadata_lock.lock
           ├── afa1d60b-5c70-425a-ae1b-583487064f68
              ├── jobs_lock.lock
              ├── jobs_metadata
                 ├── 4bf19b39-a78d-4331-8bc1-2f83396bc05b.json
                 └── 4bf19b39-a78d-4331-8bc1-2f83396bc05b_lock.lock
              ├── jobs.yaml
              ├── metadata.json
              └── metadata_lock.lock
           └──         ├── experiments
           └── 7ec1aaea-1bae-45df-b4eb-aae780a566cc
              ├── jobs_lock.lock
              ├── jobs_metadata
                 ├── 794cc10b-458d-4fe7-bfd9-3c5598fbf1be.json
                 └── 794cc10b-458d-4fe7-bfd9-3c5598fbf1be_lock.lock
              ├── jobs.yaml
              ├── metadata.json
              └── metadata_lock.lock
           └──         ├── users
           └── 5f931ba3-d448-54fe-955c-a63795b01c98
              ├── jobs
                 ├── 4bf19b39-a78d-4331-8bc1-2f83396bc05b
                    └── status.json
                 └── 794cc10b-458d-4fe7-bfd9-3c5598fbf1be
                     └── status.json
              ├── logs
                 └── 794cc10b-458d-4fe7-bfd9-3c5598fbf1be.txt
              ├── metadata.json
              ├── metadata_lock.lock
              ├── metadata_token.json
              ├── metadata_token_lock.lock
              └── specs
                  ├── 4bf19b39-a78d-4331-8bc1-2f83396bc05b-convert_efficientdet_tf2-spec.json
                  ├── 4bf19b39-a78d-4331-8bc1-2f83396bc05b-convert_efficientdet_tf2-spec_lock.lock
                  ├── 4bf19b39-a78d-4331-8bc1-2f83396bc05b_lock.lock
                  ├── 4bf19b39-a78d-4331-8bc1-2f83396bc05b.yaml
                  ├── 794cc10b-458d-4fe7-bfd9-3c5598fbf1be_lock.lock
                  ├── 794cc10b-458d-4fe7-bfd9-3c5598fbf1be-train-spec.json
                  ├── 794cc10b-458d-4fe7-bfd9-3c5598fbf1be-train-spec_lock.lock
                  └── 794cc10b-458d-4fe7-bfd9-3c5598fbf1be.yaml
           └──         └── workspaces
            ├── 49d30d91-1515-4adb-813c-65cadb47d2f9
               ├── jobs_metadata
               ├── metadata.json
               └── metadata_lock.lock
            └── 

CLI Specs#

User authentication is based on the NGC API KEY and can be done with the following command:

BASE_URL=https://IP_of_machine_deployed/api/v1

NGC_API_KEY=zZYtczM5amdtdDcwNjk0cnA2bGU2bXQ3bnQ6NmQ4NjNhMDItMTdmZS00Y2QxLWI2ZjktNmE5M2YxZTc0OGyS

$ tao-client login --ngc-api-key $NGC_API_KEY --ngc-org-name ea-tlt

After authentication, the command line syntax is:

$ tao-client <network> <action> <args>

For example:

$ tao-client dino experiment-run-action --action train --id 042559ec-ab3e-438d-9c94-2cab38f76efc --specs '<json_loadable_specs_string_from_get_spec_action>'

Note

You can always use the --help argument to retrieve the command usage information.

To list supported networks:

$ tao-client -–help

To list supported Dino actions:

$ tao-client dino --help

Examples#

The tutorial notebooks provide examples that demonstrate the various workflows.

  1. Download the resource using the NGC CLI.

    ngc registry resource download-version "nvidia/tao/tao-getting-started:5.5.0"
    
  2. Find tutorial notebooks (.ipynb files).

    cd tao-getting-started_v5.5.0/notebooks/tao_api_starter_kit/client
    
  3. Instead of using NGC, the tutorial notebooks can be downloaded from the machine where TAO API is deployed. You can obtain them using:

    wget https://<ip_of_hosted_machine>:<nginx_service_forwarded_port>/tao_api_notebooks.zip
    unzip tao_api_notebooks.zip
    cd cli
    
  4. Serve these Notebook examples using Jupyter.

    pip3 install jupyter notebook
    jupyter notebook --ip 0.0.0.0