| Base score | 100 |
| LOW High output/input element ratio: 64.5× | -3 |
| LOW No license field in ONNX model metadata | -3 |
| LOW No provenance metadata in ONNX model | -3 |
| LOW Fully dynamic input shapes (2 input(s)) | -3 |
| Penalty subtotal | 88/100 |
| Final | B / 88 |
| Runtime | Status | Quant | Architecture | Context |
|---|---|---|---|---|
| ONNX Runtime |
✓
Direct
|
? | ✓ | opset 17 (requires ORT ≥ 1.14) |
|
TensorRT
Verify arch support
|
⚡
Via conversion
verify required
|
? | ? verify |
opset 17; dynamic batch: needs profiles |
|
OpenVINO
Verify arch support
|
⚡
Via conversion
verify required
|
? | ? verify |
opset 17; conversion required |
|
CoreML (Apple)
Verify arch support
|
✗
Not possible
|
? | ? verify |
opset 17; conversion via coremltools; opset out of range |
| llama.cpp / Ollama | ✗ | N/A | ONNX not supported — requires GGUF format | |
| Parameters ~ Estimated total number of weight values; determines VRAM needed at inference | 33,426 |
| Tensors Total number of weight tensors stored in the file | 16 |
| File size Size on disk in megabytes | 0.13 MB |
| Graph nodes Total number of computational nodes in the ONNX graph | 34 |
| Opsets ONNX operator set versions declared by the model | {"ai.onnx": 17} |
| Producer Tool or framework that exported this ONNX model | OnnxScript |
| SHA-256 | a9fde1486ebfcc08f328d75ad4610c67835fea58c73ba57e3209a6f6cf019e9f |
| SHA-512 | cde05a330bf70e5fa87e8487ea7a83c55d6de8c3973ec8d2d03abece461510174f04de6f9b61bcc0… |
| File size | 139,764 bytes (0.13 MB) |
| Declared weight bytes | 135,804 (0.13 MB) |
| Non-weight overhead | 0.0 MB |
| Initializers (weights) | 16 |
| Graph nodes | 34 |
ai.onnx or ai.onnx.ml domain. No custom kernels, no vendor-specific ops.| Domain | Type | Ops | Runtime requirement |
|---|---|---|---|
ai.onnx |
Standard | — | None — supported by all ONNX runtimes |
| Check | Count | Status |
|---|---|---|
| Inline tensor byte-size mismatches raw_data length vs declared shape × dtype_bytes |
0 | ✓ PASS |
| Empty initializers Non-zero shape declared but no inline or external data |
0 | ✓ PASS |
| Duplicate initializer names ONNX spec requires unique names; duplicates cause non-deterministic behaviour |
0 | ✓ PASS |
| Initializers not used by graph Present in graph.initializer but not referenced by any node input |
0 | ✓ PASS |
| Graph inputs shadowing initializers Per ONNX spec these become optional overridable weights; runtime behaviour varies |
0 | ✓ PASS |
| NaN / Inf numeric scan
Full scan — 33,413 values across 7 / 7 float tensor(s)
|
0 | ✓ PASS |
| Risk category | Operators in this model |
|---|---|
|
▪ Control-flow ops
Loop, If, Scan — conditional/recursive execution
|
none |
|
▪ Memory amplification
ConstantOfShape, Expand, Tile — size from runtime shapes
|
none |
|
▪ Provider compat
NMS, RoiAlign, GridSample — not in all runtimes
|
none |
|
▪ Runtime-sensitive ops
Scatter, Gather, Resize — edge-case differences
|
none |
|
▪ Quantized ops
QuantizeLinear, QLinearConv — quantized path required
|
none |
|
▪ Non-deterministic ops
Random*, Multinomial — output varies between runs
|
none |
|
▪ String processing ops
Tokenizer, TfIdfVectorizer — unusual in weight models
|
none |
|
▪ Custom ops / domains
Non-standard op domains — may execute arbitrary native code
|
none |
| Op | Count | Risk |
|---|---|---|
| Div | 4 | — |
| Slice | 3 | — |
| Sub | 3 | — |
| Cast | 3 | — |
| Add | 3 | — |
| Where | 3 | — |
| ReduceSumSquare | 2 | — |
| Mul | 1 | — |
| Concat | 1 | — |
| Pad | 1 | — |
| STFT | 1 | — |
| MatMul | 1 | — |
| Log | 1 | — |
| Transpose | 1 | — |
| Unsqueeze | 1 | — |
| Shape | 1 | — |
| Range | 1 | — |
| Less | 1 | — |
| ReduceSum | 1 | — |
| Sqrt | 1 | — |
| Name | Dtype | Shape | Est. elements |
|---|---|---|---|
| waveforms | FLOAT | [batch_size, N] | 1 |
| waveforms_lens | INT64 | [batch_size] | 1 |
| Name | Dtype | Shape | Est. elements |
|---|---|---|---|
| features | FLOAT | [batch_size, 128, T] | 128 |
| features_lens | INT64 | [batch_size] | 1 |
| Check | Result |
|---|---|
| External data present Whether any weight tensors are stored outside the .onnx file |
✓ PASS
|
| Absolute paths Paths starting with / or C:\ escape the model directory |
N/A |
| Path traversal (../) .. sequences that could read files outside the model directory |
N/A |
| Windows drive paths (C:\) Drive-letter paths are always absolute and OS-specific |
N/A |
| Remote / URL paths http://, ftp:// etc. would trigger network requests at load time |
N/A |
| Null bytes in paths Null-byte injection truncates paths in C/C++ runtimes |
N/A |
| Duplicate file references Same external file referenced by multiple tensors |
N/A |
| Missing external files Referenced files not present on disk at scan time |
N/A |
| Out-of-bounds reads offset + length exceeds the external file size |
N/A |
| Offset/length range validated Verified that each tensor's offset+length fits within the external file | N/A |
| DType | Count | Total bytes | Total MB | Avg bits/elem |
|---|---|---|---|---|
| DOUBLE | 1 | 4,096 | 0.0 | 64.0 |
| FLOAT | 6 | 131,604 | 0.13 | 32.0 |
| INT64 | 9 | 104 | 0.0 | 64.0 |
| # | Name | Shape | DType | Bytes | bits/elem |
|---|---|---|---|---|---|
| 0 | tmp | [257, 128] | FLOAT | 131,584 | 32.0 |
| 1 | int64_1_1d | [1] | INT64 | 8 | 64.0 |
| 2 | int64_0_1d | [1] | INT64 | 8 | 64.0 |
| 3 | int64_9223372036854775807_1d | [1] | INT64 | 8 | 64.0 |
| 4 | int64_m1_1d | [1] | INT64 | 8 | 64.0 |
| 5 | preemph_2_cast | [] | FLOAT | 4 | 32.0 |
| 6 | tmp_11 | [4] | INT64 | 32 | 64.0 |
| 7 | hann_window | [512] | DOUBLE | 4,096 | 64.0 |
| 8 | hop_length | [] | INT64 | 8 | 64.0 |
| 9 | log_zero_guard_value_cast | [] | FLOAT | 4 | 32.0 |
| 10 | int64_1_cast | [] | INT64 | 8 | 64.0 |
| 11 | const_2 | [2] | INT64 | 16 | 64.0 |
| 12 | int64_0_cast | [] | INT64 | 8 | 64.0 |
| 13 | int64_0_2_cast | [] | FLOAT | 4 | 32.0 |
| 14 | int64_1_9_cast | [] | FLOAT | 4 | 32.0 |
| 15 | const_13_cast | [] | FLOAT | 4 | 32.0 |
{
"compatibility": [
{
"arch": true,
"context": "opset 17 (requires ORT \u2265 1.14)",
"conversion_possible": true,
"direct_supported": true,
"notes": "ONNX Runtime (CPU/CUDA/DirectML/OpenVINO backends); requires ORT \u2265 1.14",
"quant": null,
"runtime": "ONNX Runtime",
"verification_required": false
},
{
"arch": null,
"context": "opset 17; dynamic batch: needs profiles",
"conversion_possible": true,
"direct_supported": false,
"notes": "Engine build required (trtexec / TRT Python API) | dynamic batch requires explicit optimization profiles (min/opt/max shapes)",
"quant": null,
"runtime": "TensorRT",
"verification_required": true
},
{
"arch": null,
"context": "opset 17; conversion required",
"conversion_possible": true,
"direct_supported": false,
"notes": "Conversion via Model Optimizer (mo) or OpenVINO OVC (openvino.convert_model) required | Op coverage varies; validate with mo --input_model before deployment | dynamic shapes supported but may require --input re-specification",
"quant": null,
"runtime": "OpenVINO",
"verification_required": true
},
{
"arch": null,
"context": "opset 17; conversion via coremltools; opset out of range",
"conversion_possible": false,
"direct_supported": false,
"notes": "Conversion path via coremltools.converters.onnx.convert() \u2014 CoreML is not a direct ONNX runtime; the model must be converted to .mlpackage first. opset 17 exceeds CoreML converter limit (\u2264 16). ",
"quant": null,
"runtime": "CoreML (Apple)",
"verification_required": true
},
{
"arch": null,
"context": null,
"conversion_possible": false,
"direct_supported": false,
"not_supported_msg": "ONNX not supported \u2014 requires GGUF format",
"notes": "GGUF format only; convert with llama.cpp convert scripts",
"quant": false,
"runtime": "llama.cpp / Ollama",
"verification_required": false
}
],
"format": "LLM-SCAN",
"format_version": "1.0",
"generator": {
"name": "llmscan-engine",
"version": "2.0.0"
},
"model": {
"arch": null,
"custom_domains": [],
"declared_weight_bytes": 135804,
"declared_weight_mb": 0.13,
"domain": "",
"dtype_hist": {
"DOUBLE": 512,
"FLOAT": 32901,
"INT64": 13
},
"dtype_stats": {
"DOUBLE": {
"avg_bits_per_elem": 64.0,
"bytes": 4096,
"count": 1,
"mb": 0.0
},
"FLOAT": {
"avg_bits_per_elem": 32.0,
"bytes": 131604,
"count": 6,
"mb": 0.13
},
"INT64": {
"avg_bits_per_elem": 64.0,
"bytes": 104,
"count": 9,
"mb": 0.0
}
},
"external_refs": [],
"file_size_bytes": 139764,
"file_size_mb": 0.13,
"format": "onnx",
"has_external_data": false,
"initialized_tensors": 16,
"inputs": [
{
"dtype": "FLOAT",
"name": "waveforms",
"shape": [
"batch_size",
"N"
]
},
{
"dtype": "INT64",
"name": "waveforms_lens",
"shape": [
"batch_size"
]
}
],
"ir_version": 8,
"kv_meta": {},
"model_type": "audio-speech",
"nodes": 34,
"op_hist_top": {
"Add": 3,
"Cast": 3,
"Concat": 1,
"Div": 4,
"Less": 1,
"Log": 1,
"MatMul": 1,
"Mul": 1,
"Pad": 1,
"Range": 1,
"ReduceSum": 1,
"ReduceSumSquare": 2,
"STFT": 1,
"Shape": 1,
"Slice": 3,
"Sqrt": 1,
"Sub": 3,
"Transpose": 1,
"Unsqueeze": 1,
"Where": 3
},
"opsets": {
"ai.onnx": 17
},
"outputs": [
{
"dtype": "FLOAT",
"name": "features",
"shape": [
"batch_size",
128,
"T"
]
},
{
"dtype": "INT64",
"name": "features_lens",
"shape": [
"batch_size"
]
}
],
"params_estimate": 33426,
"producer": "OnnxScript",
"quantization": null,
"quantized": false,
"scanner_model_info": {
"custom_domain_detail": {},
"custom_domains": [],
"custom_ops_report": {
"domains": [],
"has_non_standard": false,
"standard_only": true
},
"declared_weight_bytes": 135804,
"declared_weight_mb": 0.13,
"doc_string": "LogMelSpectrogram feature extractor for Nemo models",
"domain": "",
"dtype_histogram": {
"DOUBLE": 512,
"FLOAT": 32901,
"INT64": 13
},
"dtype_stats": {
"DOUBLE": {
"avg_bits_per_elem": 64.0,
"bytes": 4096,
"count": 1,
"mb": 0.0
},
"FLOAT": {
"avg_bits_per_elem": 32.0,
"bytes": 131604,
"count": 6,
"mb": 0.13
},
"INT64": {
"avg_bits_per_elem": 64.0,
"bytes": 104,
"count": 9,
"mb": 0.0
}
},
"external_data_checks": {
"absolute_paths": [],
"duplicate_files": [],
"missing_files": [],
"null_byte_paths": [],
"oob_reads": [],
"present": false,
"remote_url_paths": [],
"size_validated_count": 0,
"size_validation_total": 0,
"tensor_count": 0,
"traversal_detected": [],
"windows_drive_paths": []
},
"external_refs": [],
"extreme_dim_tensors": 0,
"file_size_bytes": 139764,
"file_size_mb": 0.13,
"has_external_data": false,
"initializer_integrity": {
"count": 16,
"duplicate_name_list": [],
"duplicate_names": 0,
"empty_initializers": 0,
"inline_tensor_mismatches": 0,
"nan_inf_scan": {
"affected_tensors": [],
"inf_count": 0,
"method": "full",
"nan_count": 0,
"performed": true,
"tensors_scanned": 7,
"total_float_tensors": 7,
"values_scanned": 33413
},
"shadowing_graph_inputs": 0,
"shadowing_names": [],
"unused_by_graph": 0,
"unused_names": []
},
"inline_tensor_mismatches": 0,
"inputs": [
{
"dtype": "FLOAT",
"name": "waveforms",
"shape": [
"batch_size",
"N"
]
},
{
"dtype": "INT64",
"name": "waveforms_lens",
"shape": [
"batch_size"
]
}
],
"ir_version": 8,
"metadata_props": {
"model_author": "Ilya Stupakov",
"model_license": "MIT License"
},
"model_type": "audio-speech",
"model_version": 0,
"node_count": 34,
"op_histogram": {
"Add": 3,
"Cast": 3,
"Concat": 1,
"Div": 4,
"Less": 1,
"Log": 1,
"MatMul": 1,
"Mul": 1,
"Pad": 1,
"Range": 1,
"ReduceSum": 1,
"ReduceSumSquare": 2,
"STFT": 1,
"Shape": 1,
"Slice": 3,
"Sqrt": 1,
"Sub": 3,
"Transpose": 1,
"Unsqueeze": 1,
"Where": 3
},
"op_histogram_full": {
"Add": 3,
"Cast": 3,
"Concat": 1,
"Div": 4,
"Less": 1,
"Log": 1,
"MatMul": 1,
"Mul": 1,
"Pad": 1,
"Range": 1,
"ReduceSum": 1,
"ReduceSumSquare": 2,
"STFT": 1,
"Shape": 1,
"Slice": 3,
"Sqrt": 1,
"Sub": 3,
"Transpose": 1,
"Unsqueeze": 1,
"Where": 3
},
"op_risk_report": {
"elevated_categories": [],
"has_control_flow": false,
"has_memory_amp": false,
"has_nondeterministic": false,
"has_provider_compat": false,
"has_quantized": false,
"has_runtime_sensitive": false,
"has_string_ops": false,
"rows": [
{
"count": 4,
"note": "Standard ONNX op",
"op": "Div",
"risk": "normal"
},
{
"count": 3,
"note": "Standard ONNX op",
"op": "Slice",
"risk": "normal"
},
{
"count": 3,
"note": "Standard ONNX op",
"op": "Sub",
"risk": "normal"
},
{
"count": 3,
"note": "Standard ONNX op",
"op": "Cast",
"risk": "normal"
},
{
"count": 3,
"note": "Standard ONNX op",
"op": "Add",
"risk": "normal"
},
{
"count": 3,
"note": "Standard ONNX op",
"op": "Where",
"risk": "normal"
},
{
"count": 2,
"note": "Standard ONNX op",
"op": "ReduceSumSquare",
"risk": "normal"
},
{
"count": 1,
"note": "Standard ONNX op",
"op": "Mul",
"risk": "normal"
},
{
"count": 1,
"note": "Standard ONNX op",
"op": "Concat",
"risk": "normal"
},
{
"count": 1,
"note": "Standard ONNX op",
"op": "Pad",
"risk": "normal"
},
{
"count": 1,
"note": "Standard ONNX op",
"op": "STFT",
"risk": "normal"
},
{
"count": 1,
"note": "Standard ONNX op",
"op": "MatMul",
"risk": "normal"
},
{
"count": 1,
"note": "Standard ONNX op",
"op": "Log",
"risk": "normal"
},
{
"count": 1,
"note": "Standard ONNX op",
"op": "Transpose",
"risk": "normal"
},
{
"count": 1,
"note": "Standard ONNX op",
"op": "Unsqueeze",
"risk": "normal"
},
{
"count": 1,
"note": "Standard ONNX op",
"op": "Shape",
"risk": "normal"
},
{
"count": 1,
"note": "Standard ONNX op",
"op": "Range",
"risk": "normal"
},
{
"count": 1,
"note": "Standard ONNX op",
"op": "Less",
"risk": "normal"
},
{
"count": 1,
"note": "Standard ONNX op",
"op": "ReduceSum",
"risk": "normal"
},
{
"count": 1,
"note": "Standard ONNX op",
"op": "Sqrt",
"risk": "normal"
}
]
},
"opsets": {
"ai.onnx": 17
},
"outputs": [
{
"dtype": "FLOAT",
"name": "features",
"shape": [
"batch_size",
128,
"T"
]
},
{
"dtype": "INT64",
"name": "features_lens",
"shape": [
"batch_size"
]
}
],
"param_estimate": 33426,
"producer_name": "OnnxScript",
"producer_version": "0.3.2",
"quantized": false,
"sha256": "a9fde1486ebfcc08f328d75ad4610c67835fea58c73ba57e3209a6f6cf019e9f",
"sha512": "cde05a330bf70e5fa87e8487ea7a83c55d6de8c3973ec8d2d03abece461510174f04de6f9b61bcc0109c0a5e6b506c7cd18020f0d317e6eb50971892534a8dd9",
"shape_risk_report": {
"amplification_ratio": 64.5,
"any_dynamic_dims": true,
"dynamic_dim_names": [
"N",
"T",
"batch_size"
],
"extreme_dims_detected": false,
"input_elements_est": 2,
"inputs": [
{
"dtype": "FLOAT",
"est_elements": 1,
"has_dynamic": true,
"has_negative": false,
"name": "waveforms",
"shape": [
"batch_size",
"N"
]
},
{
"dtype": "INT64",
"est_elements": 1,
"has_dynamic": true,
"has_negative": false,
"name": "waveforms_lens",
"shape": [
"batch_size"
]
}
],
"negative_dims_detected": false,
"output_elements_est": 129,
"outputs": [
{
"dtype": "FLOAT",
"est_elements": 128,
"has_dynamic": true,
"has_negative": false,
"name": "features",
"shape": [
"batch_size",
128,
"T"
]
},
{
"dtype": "INT64",
"est_elements": 1,
"has_dynamic": true,
"has_negative": false,
"name": "features_lens",
"shape": [
"batch_size"
]
}
]
},
"tensor_count": 16,
"tensor_preview": [
{
"bits_per_elem": 32.0,
"byte_len": 131584,
"dims": [
257,
128
],
"dtype_name": "FLOAT",
"index": 0,
"name": "tmp"
},
{
"bits_per_elem": 64.0,
"byte_len": 8,
"dims": [
1
],
"dtype_name": "INT64",
"index": 1,
"name": "int64_1_1d"
},
{
"bits_per_elem": 64.0,
"byte_len": 8,
"dims": [
1
],
"dtype_name": "INT64",
"index": 2,
"name": "int64_0_1d"
},
{
"bits_per_elem": 64.0,
"byte_len": 8,
"dims": [
1
],
"dtype_name": "INT64",
"index": 3,
"name": "int64_9223372036854775807_1d"
},
{
"bits_per_elem": 64.0,
"byte_len": 8,
"dims": [
1
],
"dtype_name": "INT64",
"index": 4,
"name": "int64_m1_1d"
},
{
"bits_per_elem": 32.0,
"byte_len": 4,
"dims": [],
"dtype_name": "FLOAT",
"index": 5,
"name": "preemph_2_cast"
},
{
"bits_per_elem": 64.0,
"byte_len": 32,
"dims": [
4
],
"dtype_name": "INT64",
"index": 6,
"name": "tmp_11"
},
{
"bits_per_elem": 64.0,
"byte_len": 4096,
"dims": [
512
],
"dtype_name": "DOUBLE",
"index": 7,
"name": "hann_window"
},
{
"bits_per_elem": 64.0,
"byte_len": 8,
"dims": [],
"dtype_name": "INT64",
"index": 8,
"name": "hop_length"
},
{
"bits_per_elem": 32.0,
"byte_len": 4,
"dims": [],
"dtype_name": "FLOAT",
"index": 9,
"name": "log_zero_guard_value_cast"
},
{
"bits_per_elem": 64.0,
"byte_len": 8,
"dims": [],
"dtype_name": "INT64",
"index": 10,
"name": "int64_1_cast"
},
{
"bits_per_elem": 64.0,
"byte_len": 16,
"dims": [
2
],
"dtype_name": "INT64",
"index": 11,
"name": "const_2"
},
{
"bits_per_elem": 64.0,
"byte_len": 8,
"dims": [],
"dtype_name": "INT64",
"index": 12,
"name": "int64_0_cast"
},
{
"bits_per_elem": 32.0,
"byte_len": 4,
"dims": [],
"dtype_name": "FLOAT",
"index": 13,
"name": "int64_0_2_cast"
},
{
"bits_per_elem": 32.0,
"byte_len": 4,
"dims": [],
"dtype_name": "FLOAT",
"index": 14,
"name": "int64_1_9_cast"
},
{
"bits_per_elem": 32.0,
"byte_len": 4,
"dims": [],
"dtype_name": "FLOAT",
"index": 15,
"name": "const_13_cast"
}
],
"unique_op_types": 20,
"weight_delta_bytes": 3960,
"weight_delta_mb": 0.0,
"weights_size_bytes": 135804,
"weights_size_mb": 0.13,
"zero_dim_initializers": 0
},
"sha256": "a9fde1486ebfcc08f328d75ad4610c67835fea58c73ba57e3209a6f6cf019e9f",
"sha512": "cde05a330bf70e5fa87e8487ea7a83c55d6de8c3973ec8d2d03abece461510174f04de6f9b61bcc0109c0a5e6b506c7cd18020f0d317e6eb50971892534a8dd9",
"tensor_preview": [
{
"bits_per_elem": 32.0,
"byte_len": 131584,
"dims": [
257,
128
],
"dtype_name": "FLOAT",
"index": 0,
"name": "tmp"
},
{
"bits_per_elem": 64.0,
"byte_len": 8,
"dims": [
1
],
"dtype_name": "INT64",
"index": 1,
"name": "int64_1_1d"
},
{
"bits_per_elem": 64.0,
"byte_len": 8,
"dims": [
1
],
"dtype_name": "INT64",
"index": 2,
"name": "int64_0_1d"
},
{
"bits_per_elem": 64.0,
"byte_len": 8,
"dims": [
1
],
"dtype_name": "INT64",
"index": 3,
"name": "int64_9223372036854775807_1d"
},
{
"bits_per_elem": 64.0,
"byte_len": 8,
"dims": [
1
],
"dtype_name": "INT64",
"index": 4,
"name": "int64_m1_1d"
},
{
"bits_per_elem": 32.0,
"byte_len": 4,
"dims": [],
"dtype_name": "FLOAT",
"index": 5,
"name": "preemph_2_cast"
},
{
"bits_per_elem": 64.0,
"byte_len": 32,
"dims": [
4
],
"dtype_name": "INT64",
"index": 6,
"name": "tmp_11"
},
{
"bits_per_elem": 64.0,
"byte_len": 4096,
"dims": [
512
],
"dtype_name": "DOUBLE",
"index": 7,
"name": "hann_window"
},
{
"bits_per_elem": 64.0,
"byte_len": 8,
"dims": [],
"dtype_name": "INT64",
"index": 8,
"name": "hop_length"
},
{
"bits_per_elem": 32.0,
"byte_len": 4,
"dims": [],
"dtype_name": "FLOAT",
"index": 9,
"name": "log_zero_guard_value_cast"
},
{
"bits_per_elem": 64.0,
"byte_len": 8,
"dims": [],
"dtype_name": "INT64",
"index": 10,
"name": "int64_1_cast"
},
{
"bits_per_elem": 64.0,
"byte_len": 16,
"dims": [
2
],
"dtype_name": "INT64",
"index": 11,
"name": "const_2"
},
{
"bits_per_elem": 64.0,
"byte_len": 8,
"dims": [],
"dtype_name": "INT64",
"index": 12,
"name": "int64_0_cast"
},
{
"bits_per_elem": 32.0,
"byte_len": 4,
"dims": [],
"dtype_name": "FLOAT",
"index": 13,
"name": "int64_0_2_cast"
},
{
"bits_per_elem": 32.0,
"byte_len": 4,
"dims": [],
"dtype_name": "FLOAT",
"index": 14,
"name": "int64_1_9_cast"
},
{
"bits_per_elem": 32.0,
"byte_len": 4,
"dims": [],
"dtype_name": "FLOAT",
"index": 15,
"name": "const_13_cast"
}
],
"weight_delta_mb": 0.0,
"weights_size_est_bytes": 135804
},
"report": {
"bullets": [
"ONNX audio-speech model | opset 17 | 34 nodes | 33,426 params | 4 warnings / 4 informational",
"Size: 0.13 MB",
"SHA256: a9fde1486ebfcc08..."
],
"recommendations": [
"Profile inference memory at maximum expected batch size before production deployment.",
"Add a license field during export (e.g. apache-2.0, mit, cc-by-4.0)",
"Set author and domain fields during model export",
"Enforce maximum input shape at the serving layer (e.g. ORT session options, preprocessing validation). Document accepted input bounds in model card."
],
"summary": "ONNX audio-speech model | opset 17 | 34 nodes | 33,426 params | 4 warnings / 4 informational"
},
"scan_context": {
"duration_ms": 19,
"ended_at": "2026-08-05T12:13:57+00:00Z",
"limits": {
"sandbox": true,
"timeout_ms": 60000
},
"mode": "static-deep",
"started_at": "2026-08-05T12:13:57+00:00Z"
},
"security": {
"findings": [
{
"category": "Shape Risk",
"detail": "Inputs with dynamic dims: [\u0027waveforms\u0027, \u0027waveforms_lens\u0027]. Outputs: [\u0027features\u0027, \u0027features_lens\u0027] (symbolic: N, T, batch_size). Dynamic dims allow flexible batch sizes and sequence lengths, but without enforced bounds a caller can supply arbitrarily large tensors causing OOM. This is expected for most inference models.",
"recommendation": "Enforce maximum input shape at the serving layer (e.g. ORT SessionOptions.add_session_config_entry, preprocessing validation). Document accepted input bounds in model card or deployment README.",
"severity": "INFO",
"title": "Dynamic tensor dimensions detected"
},
{
"category": "Shape Risk",
"detail": "Estimated output elements (129) are 64.5\u00d7 larger than input elements (2). Large amplification ratios can indicate detection heads with many anchors, segmentation masks, or other outputs that scale poorly with batch size \u2014 relevant for memory planning in production.",
"recommendation": "Profile inference memory at maximum expected batch size before production deployment.",
"severity": "LOW",
"title": "High output/input element ratio: 64.5\u00d7"
},
{
"category": "Supply Chain",
"detail": "Models without license information cannot be safely redistributed or deployed commercially. ONNX metadata supports a license property in model.metadata_props.",
"recommendation": "Add a license field during export (e.g. apache-2.0, mit, cc-by-4.0)",
"severity": "LOW",
"title": "No license field in ONNX model metadata"
},
{
"category": "Supply Chain",
"detail": "Neither author nor domain (producer namespace) are set. Without origin information the model cannot be traced to a trusted source.",
"recommendation": "Set author and domain fields during model export",
"severity": "LOW",
"title": "No provenance metadata in ONNX model"
},
{
"category": "Provenance",
"detail": "Producer metadata helps identify the tool that exported this model",
"recommendation": "Verify producer matches expected export pipeline",
"severity": "INFO",
"title": "Model producer: OnnxScript 0.3.2"
},
{
"category": "Classification",
"detail": "Based on op inventory (34 total nodes, 20 unique types)",
"recommendation": "Verify this matches the model\u0027s intended use case",
"severity": "INFO",
"title": "Inferred model type: audio-speech"
},
{
"category": "Runtime",
"detail": "Opset governs which ops and behaviors are available at runtime",
"recommendation": "Use ONNX Runtime (CPU/CUDA/DirectML/OpenVINO backends); requires ORT \u2265 1.14",
"severity": "INFO",
"title": "Default opset: 17"
},
{
"category": "Runtime Safety",
"detail": "Inputs with all-dynamic dimensions: [(\u0027waveforms\u0027, \"[\u0027batch_size\u0027, \u0027N\u0027]\"), (\u0027waveforms_lens\u0027, \"[\u0027batch_size\u0027]\")]. Without static bounds, a malicious caller can supply arbitrarily large tensors causing OOM. The model itself is not malicious, but deployments must enforce input size limits.",
"recommendation": "Enforce maximum input shape at the serving layer (e.g. ORT session options, preprocessing validation). Document accepted input bounds in model card.",
"severity": "LOW",
"title": "Fully dynamic input shapes (2 input(s))"
}
],
"grade": "B",
"score": 88
},
"source": {
"filename": "nemo128.onnx",
"hashes": {
"sha256": "a9fde1486ebfcc08f328d75ad4610c67835fea58c73ba57e3209a6f6cf019e9f"
},
"input_type": "file",
"size_bytes": 139764
},
"tensors": {
"count": 16,
"dtype_histogram": {
"DOUBLE": 512,
"FLOAT": 32901,
"INT64": 13
},
"dtype_stats": {
"DOUBLE": {
"avg_bits_per_elem": 64.0,
"bytes": 4096,
"count": 1,
"mb": 0.0
},
"FLOAT": {
"avg_bits_per_elem": 32.0,
"bytes": 131604,
"count": 6,
"mb": 0.13
},
"INT64": {
"avg_bits_per_elem": 64.0,
"bytes": 104,
"count": 9,
"mb": 0.0
}
},
"integrity": {
"declared_weight_bytes": 135804,
"external_refs": [],
"has_external_data": false,
"weight_delta_mb": 0.0,
"weights_size_est_bytes": 135804
},
"preview": [
{
"bits_per_elem": 32.0,
"byte_len": 131584,
"dims": [
257,
128
],
"dtype_name": "FLOAT",
"index": 0,
"name": "tmp"
},
{
"bits_per_elem": 64.0,
"byte_len": 8,
"dims": [
1
],
"dtype_name": "INT64",
"index": 1,
"name": "int64_1_1d"
},
{
"bits_per_elem": 64.0,
"byte_len": 8,
"dims": [
1
],
"dtype_name": "INT64",
"index": 2,
"name": "int64_0_1d"
},
{
"bits_per_elem": 64.0,
"byte_len": 8,
"dims": [
1
],
"dtype_name": "INT64",
"index": 3,
"name": "int64_9223372036854775807_1d"
},
{
"bits_per_elem": 64.0,
"byte_len": 8,
"dims": [
1
],
"dtype_name": "INT64",
"index": 4,
"name": "int64_m1_1d"
},
{
"bits_per_elem": 32.0,
"byte_len": 4,
"dims": [],
"dtype_name": "FLOAT",
"index": 5,
"name": "preemph_2_cast"
},
{
"bits_per_elem": 64.0,
"byte_len": 32,
"dims": [
4
],
"dtype_name": "INT64",
"index": 6,
"name": "tmp_11"
},
{
"bits_per_elem": 64.0,
"byte_len": 4096,
"dims": [
512
],
"dtype_name": "DOUBLE",
"index": 7,
"name": "hann_window"
},
{
"bits_per_elem": 64.0,
"byte_len": 8,
"dims": [],
"dtype_name": "INT64",
"index": 8,
"name": "hop_length"
},
{
"bits_per_elem": 32.0,
"byte_len": 4,
"dims": [],
"dtype_name": "FLOAT",
"index": 9,
"name": "log_zero_guard_value_cast"
},
{
"bits_per_elem": 64.0,
"byte_len": 8,
"dims": [],
"dtype_name": "INT64",
"index": 10,
"name": "int64_1_cast"
},
{
"bits_per_elem": 64.0,
"byte_len": 16,
"dims": [
2
],
"dtype_name": "INT64",
"index": 11,
"name": "const_2"
},
{
"bits_per_elem": 64.0,
"byte_len": 8,
"dims": [],
"dtype_name": "INT64",
"index": 12,
"name": "int64_0_cast"
},
{
"bits_per_elem": 32.0,
"byte_len": 4,
"dims": [],
"dtype_name": "FLOAT",
"index": 13,
"name": "int64_0_2_cast"
},
{
"bits_per_elem": 32.0,
"byte_len": 4,
"dims": [],
"dtype_name": "FLOAT",
"index": 14,
"name": "int64_1_9_cast"
},
{
"bits_per_elem": 32.0,
"byte_len": 4,
"dims": [],
"dtype_name": "FLOAT",
"index": 15,
"name": "const_13_cast"
}
]
},
"tokenizer": {}
}