curl --request GET \
--url https://studio.edgeimpulse.com/v1/api/{projectId}/training/anomaly/{learnId}/metadata \
--header 'x-api-key: <api-key>'{
"success": true,
"created": "2023-11-07T05:31:56Z",
"scale": [
123
],
"mean": [
123
],
"clusters": [
{
"center": [
123
],
"maxError": 123
}
],
"axes": "`[ 0, 11, 22 ]`",
"defaultMinimumConfidenceRating": 123,
"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.",
"value": 0.5,
"suggestedValue": 123,
"suggestedValueText": "<string>"
}
],
"error": "<string>",
"availableModelTypes": [
"int8"
],
"recommendedModelType": "int8",
"modelValidationMetrics": [
{
"type": "int8",
"loss": 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
},
"hasPerformance": true,
"eon_ram_optimized": {
"ramRequired": 123,
"romRequired": 123,
"arenaSize": 123,
"modelSize": 123
},
"customMetrics": [
{
"name": "<string>",
"value": "<string>"
}
],
"profilingError": "<string>"
}
],
"visualization": "featureExplorer",
"isSupportedOnMcu": true,
"additionalMetrics": [
{
"name": "<string>",
"value": "<string>",
"fullPrecisionValue": 123,
"tooltipText": "<string>",
"link": "<string>"
}
],
"accuracy": 123,
"predictions": [
{
"sampleId": 123,
"startMs": 123,
"endMs": 123,
"prediction": "<string>",
"label": "<string>",
"predictionCorrect": true,
"f1Score": 123,
"anomalyScores": [
[
123
]
],
"boundingBoxes": [
{
"label": "<string>",
"x": 123,
"y": 123,
"width": 123,
"height": 123,
"score": 123
}
]
}
],
"mcuSupportError": "<string>",
"profilingJobId": 123,
"profilingJobFailed": true
}
],
"hasTrainedModel": true
}Get metadata about a trained anomaly block. Use the impulse blocks to find the learnId.
curl --request GET \
--url https://studio.edgeimpulse.com/v1/api/{projectId}/training/anomaly/{learnId}/metadata \
--header 'x-api-key: <api-key>'{
"success": true,
"created": "2023-11-07T05:31:56Z",
"scale": [
123
],
"mean": [
123
],
"clusters": [
{
"center": [
123
],
"maxError": 123
}
],
"axes": "`[ 0, 11, 22 ]`",
"defaultMinimumConfidenceRating": 123,
"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.",
"value": 0.5,
"suggestedValue": 123,
"suggestedValueText": "<string>"
}
],
"error": "<string>",
"availableModelTypes": [
"int8"
],
"recommendedModelType": "int8",
"modelValidationMetrics": [
{
"type": "int8",
"loss": 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
},
"hasPerformance": true,
"eon_ram_optimized": {
"ramRequired": 123,
"romRequired": 123,
"arenaSize": 123,
"modelSize": 123
},
"customMetrics": [
{
"name": "<string>",
"value": "<string>"
}
],
"profilingError": "<string>"
}
],
"visualization": "featureExplorer",
"isSupportedOnMcu": true,
"additionalMetrics": [
{
"name": "<string>",
"value": "<string>",
"fullPrecisionValue": 123,
"tooltipText": "<string>",
"link": "<string>"
}
],
"accuracy": 123,
"predictions": [
{
"sampleId": 123,
"startMs": 123,
"endMs": 123,
"prediction": "<string>",
"label": "<string>",
"predictionCorrect": true,
"f1Score": 123,
"anomalyScores": [
[
123
]
],
"boundingBoxes": [
{
"label": "<string>",
"x": 123,
"y": 123,
"width": 123,
"height": 123,
"score": 123
}
]
}
],
"mcuSupportError": "<string>",
"profilingJobId": 123,
"profilingJobFailed": true
}
],
"hasTrainedModel": true
}Project ID
Learn Block ID, use the impulse functions to retrieve the ID
OK
Whether the operation succeeded
Date when the model was trained
Scale input for StandardScaler. Values are scaled like this (where ix is axis index): input[ix] = (input[ix] - mean[ix]) / scale[ix];
Mean input for StandardScaler. Values are scaled like this (where ix is axis index): input[ix] = (input[ix] - mean[ix]) / scale[ix];
Which axes were included during training (by index)
"[ 0, 11, 22 ]"
DEPRECATED, see "thresholds" instead. Default minimum confidence rating required before tagging as anomaly, based on scores of training data (GMM only).
List of configurable thresholds for this block.
Show child attributes
Identifier to reference the threshold. You'll need to refer to the threshold by this key when you set the threshold).
"min_score"
User-friendly description of the threshold.
"Score threshold"
Additional help text (shown in the UI under a "?" icon)
"Threshold score for bounding boxes. If the score for a bounding box is below this the box will be discarded."
Current value of the threshold
0.5
If the threshold has a suggested value, e.g. a max. absolute error for regression projects; or the min. anomaly score for visual anomaly detection, then this is the numeric value of that threshold.
If the threshold has a suggested value, e.g. a max. absolute error for regression projects; or the min. anomaly score for visual anomaly detection, then this is the stringified value of that threshold.
Optional error description (set if 'success' was false)
The types of model that are available
int8, float32, akida, requiresRetrain The model type that is recommended for use
int8, float32, akida, requiresRetrain Metrics for each of the available model types
Show child attributes
The type of model
int8, float32, akida, requiresRetrain The model's loss on the validation set after training
[[31, 1, 0], [2, 27, 3], [1, 0, 39]]Precision, recall, F1 and support scores
Show child attributes
Show child attributes
Show child attributes
If false, then no metrics are available for this target
Show child attributes
Specific error during profiling (e.g. model not supported)
featureExplorer, dataExplorer, none Show child attributes
The model's accuracy on the validation set after training
Show child attributes
Only set for object detection projects
Only set for visual anomaly projects. 2D array of shape (n, n) with raw anomaly scores, where n varies based on the image input size and the specific visual anomaly algorithm used. The scores corresponds to each grid cell in the image's spatial matrix.
Only set for object detection projects. Coordinates are scaled 0..1, not absolute values.
Show child attributes
If this is set, then we're still profiling this model. Subscribe to job updates to see when it's done (afterward the metadata will be updated).
If this is set, then the profiling job failed (get the status by getting the job logs for 'profilingJobId').
Was this page helpful?