OnnxModelParser

ONNX model parser extending BaseModelParser. Provides metadata-first parsing of ONNX model files using SKaiNET's ONNX I/O capabilities.

This implementation supports two modes:

  • Streaming mode (JVM): Uses RandomAccessSource for memory-efficient parsing. Only metadata is loaded (~1-10 MB), tensors loaded on-demand via loadTensorData.

  • Legacy mode (JS/Native): Falls back to pbandk which loads full file.

Usage:

val parser = OnnxModelParser()
parser.parseMetadata("model.onnx")

// Check if streaming mode is available
if (parser.isStreamingMode) {
// Load specific tensor on demand
val data = parser.loadTensorData("conv1.weight")
}

// Always close when done
parser.close()

Constructors

Link copied to clipboard
constructor()

Properties

Link copied to clipboard
open override val format: ModelFormat
Link copied to clipboard

Whether streaming mode is active (vs legacy full-file mode)

Link copied to clipboard
open override val supportedExtension: String

Functions

Link copied to clipboard
open override fun close()

Close the parser and release resources.

Link copied to clipboard

Get streaming tensor info for a specific tensor.

Link copied to clipboard

Get all streaming tensor infos.

Link copied to clipboard
fun loadTensorData(tensorName: String): ByteArray?

Load tensor data by name.

fun loadTensorData(tensorName: String, buffer: ByteArray, offset: Int = 0): Int

Load tensor data into an existing buffer.

Link copied to clipboard

Load tensor data asynchronously.

Link copied to clipboard
open suspend override fun parseMetadata(filePath: String): ModelMetadata
Link copied to clipboard
suspend fun OnnxModelParser.parseMetadataFromBlob(blob: Blob, preloadSize: Int = JsBlobRandomAccessSource.DEFAULT_PRELOAD_SIZE): ModelMetadata

Parse ONNX model metadata from a browser Blob or File.