GET
/
api
/
{projectId}
/
training
/
keras
/
{learnId}
/
metadata
Keras metadata
curl --request GET \
  --url https://studio.edgeimpulse.com/v1/api/{projectId}/training/keras/{learnId}/metadata \
  --header 'x-api-key: <api-key>'
{
  "success": true,
  "error": "<string>",
  "created": "2023-11-07T05:31:56Z",
  "layers": [
    {
      "input": {
        "shape": 33,
        "name": "x_input:0",
        "type": "<dtype: 'float32'>"
      },
      "output": {
        "shape": 20,
        "name": "dense_1/Relu:0",
        "type": "<dtype: 'float32'>"
      }
    }
  ],
  "classNames": [
    "<string>"
  ],
  "labels": [
    "<string>"
  ],
  "availableModelTypes": [
    "int8"
  ],
  "recommendedModelType": "int8",
  "modelValidationMetrics": [
    {
      "type": "int8",
      "loss": 123,
      "accuracy": 123,
      "confusionMatrix": [
        [
          31,
          1,
          0
        ],
        [
          2,
          27,
          3
        ],
        [
          1,
          0,
          39
        ]
      ],
      "report": {},
      "onDevicePerformance": [
        {
          "mcu": "<string>",
          "name": "<string>",
          "isDefault": true,
          "latency": 123,
          "tflite": {
            "ramRequired": 123,
            "romRequired": 123,
            "arenaSize": 123,
            "modelSize": 123
          },
          "eon": {
            "ramRequired": 123,
            "romRequired": 123,
            "arenaSize": 123,
            "modelSize": 123
          },
          "eon_ram_optimized": {
            "ramRequired": 123,
            "romRequired": 123,
            "arenaSize": 123,
            "modelSize": 123
          },
          "customMetrics": [
            {
              "name": "<string>",
              "value": "<string>"
            }
          ],
          "hasPerformance": true,
          "profilingError": "<string>"
        }
      ],
      "predictions": [
        {
          "sampleId": 123,
          "startMs": 123,
          "endMs": 123,
          "label": "<string>",
          "prediction": "<string>",
          "predictionCorrect": true,
          "f1Score": 123,
          "anomalyScores": [
            [
              123
            ]
          ],
          "boundingBoxes": [
            {
              "label": "<string>",
              "x": 123,
              "y": 123,
              "width": 123,
              "height": 123,
              "score": 123
            }
          ]
        }
      ],
      "visualization": "featureExplorer",
      "isSupportedOnMcu": true,
      "mcuSupportError": "<string>",
      "profilingJobId": 123,
      "profilingJobFailed": true,
      "additionalMetrics": [
        {
          "name": "<string>",
          "value": "<string>",
          "fullPrecisionValue": 123,
          "tooltipText": "<string>",
          "link": "<string>"
        }
      ]
    }
  ],
  "hasTrainedModel": true,
  "mode": "classification",
  "objectDetectionLastLayer": "mobilenet-ssd",
  "imageInputScaling": "0..1",
  "thresholds": [
    {
      "key": "min_score",
      "description": "Score threshold",
      "helpText": "Threshold score for bounding boxes. If the score for a bounding box is below this the box will be discarded.",
      "suggestedValue": 123,
      "suggestedValueText": "<string>",
      "value": 0.5
    }
  ],
  "tensorboardGraphs": [
    {
      "title": "<string>",
      "xLabel": "<string>",
      "yLabel": "<string>",
      "description": "<string>",
      "hideInUI": true,
      "data": [
        {
          "title": "<string>",
          "values": [
            123
          ]
        }
      ]
    }
  ]
}

Authorizations

x-api-key
string
header
required

Path Parameters

projectId
integer
required

Project ID

learnId
integer
required

Learn Block ID, use the impulse functions to retrieve the ID

Query Parameters

excludeLabels
boolean

If set to "true", the "labels" field is left empty (which can be big on e.g. regression projects).

Response

200 - application/json

OK

success
boolean
required

Whether the operation succeeded

created
string<date-time>
required

Date when the model was trained

layers
object[]
required

Layers of the neural network

classNames
string[]
required

Labels for the output layer

labels
string[]
required

Original labels in the dataset when features were generated, e.g. used to render the feature explorer.

availableModelTypes
enum<string>[]
required

The types of model that are available

The model type that is recommended for use

Available options:
int8,
float32,
akida,
requiresRetrain
modelValidationMetrics
object[]
required

Metrics for each of the available model types

hasTrainedModel
boolean
required
mode
enum<string>
required
Available options:
classification,
regression,
object-detection,
visual-anomaly,
anomaly-gmm
imageInputScaling
enum<string>
required

Normalization that is applied to images. If this is not set then 0..1 is used. "0..1" gives you non-normalized pixels between 0 and 1. "-1..1" gives you non-normalized pixels between -1 and 1. "0..255" gives you non-normalized pixels between 0 and 255. "-128..127" gives you non-normalized pixels between -128 and 127. "torch" first scales pixels between 0 and 1, then applies normalization using the ImageNet dataset (same as torchvision.transforms.Normalize()). "bgr-subtract-imagenet-mean" scales to 0..255, reorders pixels to BGR, and subtracts the ImageNet mean from each channel.

Available options:
0..1,
-1..1,
-128..127,
0..255,
torch,
bgr-subtract-imagenet-mean
thresholds
object[]
required

List of configurable thresholds for this block.

error
string

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

objectDetectionLastLayer
enum<string>
Available options:
mobilenet-ssd,
fomo,
yolov2-akida,
yolov5,
yolov5v5-drpai,
yolox,
yolov7,
yolo-pro,
tao-retinanet,
tao-ssd,
tao-yolov3,
tao-yolov4,
yolov11,
yolov11-abs
tensorboardGraphs
object[]

This is experimental and may change in the future.