Skip to main content
GET
/
api
/
{projectId}
/
optimize
/
{tunerCoordinatorJobId}
/
state
Retrieves EON tuner state for a run.
curl --request GET \
  --url https://studio.edgeimpulse.com/v1/api/{projectId}/optimize/{tunerCoordinatorJobId}/state \
  --header 'x-api-key: <api-key>'
{
  "success": true,
  "config": {
    "targetLatency": 0,
    "targetDevice": {
      "name": "cortex-m4f-80mhz",
      "ram": 1024,
      "rom": 1024
    },
    "name": "<string>",
    "compiler": [
      "<string>"
    ],
    "precision": [
      "<string>"
    ],
    "trainingCycles": 5,
    "tuningMaxTrials": 2,
    "tuningWorkers": 1,
    "initialTrials": 5,
    "optimizationRounds": 3,
    "trialsPerOptimizationRound": 3,
    "minMACCS": 123,
    "maxMACCS": 123,
    "tuningAlgorithm": "random",
    "notificationOnCompletion": true,
    "importProjectMetrics": true,
    "importResourceMetrics": true,
    "numImportProjectMetrics": 123,
    "numImportResourceMetrics": 123,
    "enableSEM": true,
    "accuracySEM": 123,
    "latencySEM": 123,
    "optimizationObjectives": [
      {
        "objective": "<string>",
        "label": "<string>",
        "weight": 123
      }
    ],
    "rawObjectives": "<string>",
    "optimizationPrecision": "float32",
    "earlyStopping": true,
    "earlyStoppingWindowSize": 123,
    "earlyStoppingImprovementBar": 123,
    "MOMF": true,
    "verboseLogging": true,
    "disableConstraints": true,
    "disableDeduplicate": true,
    "maxTotalTrainingTime": 123,
    "tunerSpaceOptions": {},
    "space": [
      {
        "inputBlocks": [
          {}
        ],
        "dspBlocks": [
          {}
        ],
        "learnBlocks": [
          [
            {}
          ]
        ],
        "parameters": {}
      }
    ]
  },
  "status": {
    "numPendingTrials": 123,
    "numRunningTrials": 123,
    "numCompletedTrials": 123,
    "numFailedTrials": 123,
    "numReadyWorkers": 123,
    "numBusyWorkers": 123,
    "numPendingWorkers": 123,
    "status": "creating"
  },
  "tunerJobIsRunning": true,
  "trials": [
    {
      "id": "<string>",
      "name": "<string>",
      "status": "pending",
      "blocks": [
        {
          "id": 123,
          "retries": 123,
          "status": "pending",
          "type": "input",
          "lastActive": "2023-11-07T05:31:56Z",
          "modelBlockIndex": 123
        }
      ],
      "impulse": {
        "inputBlocks": [
          {}
        ],
        "dspBlocks": [
          {}
        ],
        "learnBlocks": [
          {}
        ]
      },
      "lastCompletedEpoch": "2023-11-07T05:31:56Z",
      "lastCompletedTraining": "2023-11-07T05:31:56Z",
      "retries": 123,
      "currentEpoch": 123,
      "workerId": "<string>",
      "experiment": "<string>",
      "original_trial_id": "<string>",
      "model": {},
      "dspJobId": {
        "training": 123,
        "testing": 123
      },
      "learnJobId": 123,
      "devicePerformance": {},
      "optimizationRound": 123,
      "metrics": {
        "test": {},
        "train": {},
        "validation": {}
      },
      "createdInPostProcessing": true
    }
  ],
  "projectDataType": "audio",
  "workers": [
    {
      "workerId": "<string>",
      "status": "pending"
    }
  ],
  "nextRunIndex": 123,
  "canExtendSearch": true,
  "isWhitelabel": true,
  "totalTrainingTimeExceeded": true,
  "error": "<string>",
  "tunerJobId": 123,
  "tunerCoordinatorJobId": 123,
  "continuationJobId": 123,
  "tuningAlgorithm": "random",
  "jobError": "<string>"
}

Authorizations

x-api-key
string
header
required

Path Parameters

projectId
integer
required

Project ID

tunerCoordinatorJobId
integer
required

Tuner coordinator job ID

Response

200 - application/json

OK

success
boolean
required

Whether the operation succeeded

config
object
required
status
object
required
tunerJobIsRunning
boolean
required

Whether the job is active (if false => finished)

trials
object[]
required
projectDataType
enum<string>
required
Available options:
audio,
image,
motion,
other
workers
object[]
required
nextRunIndex
integer
required

Index of the next run to be created. Used to pre-populate the name of the next run.

Whether the search can be extended to evaluate more candidate models. Extending is possible if the search space contains candidate models that are expected to perform better than the current best candidate. And extending is also possible if the previous run was paused due to the total runtime limit being exceeded.

isWhitelabel
boolean
required
totalTrainingTimeExceeded
boolean
required

Whether the total training time has exceeded the defined limit for the current run.

error
string

Optional error description (set if 'success' was false)

tunerJobId
integer

Actual tuner process, job message events will be tagged with this ID

tunerCoordinatorJobId
integer

The coordinator pod, attach the job runner to this process for finished events

continuationJobId
integer

Job ID for the initial job this job continuous the hyperparameter search process for.

tuningAlgorithm
enum<string>

Tuning algorithm to use to search hyperparameter space

Available options:
random,
hyperband,
bayesian,
custom
jobError
string