Buckets:

HuggingFaceDocBuilder's picture
|
download
raw
7.95 kB
# backends/onnx
Handler file for choosing the correct version of ONNX Runtime, based on the environment.
Ideally, we could import the `onnxruntime-web` and `onnxruntime-node` packages only when needed,
but dynamic imports don't seem to work with the current webpack version and/or configuration.
This is possibly due to the experimental nature of top-level await statements.
So, we just import both packages, and use the appropriate one based on the environment:
- When running in node, we use `onnxruntime-node`.
- When running in the browser, we use `onnxruntime-web` (`onnxruntime-node` is not bundled).
This module is not directly exported, but can be accessed through the environment variables:
```javascript
import { env } from '@huggingface/transformers';
console.log(env.backends.onnx);
```
* [backends/onnx](#module_backends/onnx)
* _static_
* [`.deviceToExecutionProviders([device])`](#module_backends/onnx.deviceToExecutionProviders) ⇒ Array
* [`.createInferenceSession(buffer_or_path, session_options, session_config)`](#module_backends/onnx.createInferenceSession) ⇒ Promise.<(InferenceSession|{config: Object})>
* [`.runInferenceSession(session, ortFeed)`](#module_backends/onnx.runInferenceSession) ⇒ Promise.<Record.<string, Tensor>>
* [`.isONNXTensor(x)`](#module_backends/onnx.isONNXTensor) ⇒ boolean
* [`.isONNXProxy()`](#module_backends/onnx.isONNXProxy) ⇒ boolean
* _inner_
* [`~defaultDevices`](#module_backends/onnx..defaultDevices) : Array
* [`~webInitChain`](#module_backends/onnx..webInitChain) : Promise.<any>
* [`~wasmLoadPromise`](#module_backends/onnx..wasmLoadPromise) : Promise.<void> | null
* [`~webInferenceChain`](#module_backends/onnx..webInferenceChain) : Promise.<any>
* [`~DEVICE_TO_EXECUTION_PROVIDER_MAPPING`](#module_backends/onnx..DEVICE_TO_EXECUTION_PROVIDER_MAPPING) : Record.<DeviceType, ONNXExecutionProviders>
* [`~ONNX_LOG_LEVEL_NAMES`](#module_backends/onnx..ONNX_LOG_LEVEL_NAMES) : Record.<(0|1|2|3|4), ('verbose'|'info'|'warning'|'error'|'fatal')>
* [`~supportedDevices`](#module_backends/onnx..supportedDevices) : Array
* [`~ONNX_ENV`](#module_backends/onnx..ONNX_ENV) : Env
* [`~getOnnxLogSeverityLevel(logLevel)`](#module_backends/onnx..getOnnxLogSeverityLevel) ⇒ number
* [`~ensureWasmLoaded()`](#module_backends/onnx..ensureWasmLoaded) ⇒ Promise.<void>
* [`~setLogLevel(logLevel)`](#module_backends/onnx..setLogLevel)
* [`~ONNXExecutionProviders`](#module_backends/onnx..ONNXExecutionProviders) : InferenceSession.ExecutionProviderConfig
* * *
## `backends/onnx.deviceToExecutionProviders([device])` ⇒ Array
Map a device to the execution providers to use for the given device.
**Kind**: static method of [backends/onnx](#module_backends/onnx)
**Returns**: Array - The execution providers to use for the given device.
ParamTypeDefaultDescription
[device]DeviceType | "auto" | null(Optional) The device to run the inference on.
* * *
## `backends/onnx.createInferenceSession(buffer_or_path, session_options, session_config)` ⇒ Promise.<(InferenceSession|{config: Object})>
Create an ONNX inference session.
**Kind**: static method of [backends/onnx](#module_backends/onnx)
**Returns**: Promise.<(InferenceSession|{config: Object})> - The ONNX inference session.
ParamTypeDescription
buffer_or_pathUint8Array | stringThe ONNX model buffer or path.
session_optionsInferenceSession.SessionOptionsONNX inference session options.
session_configObjectONNX inference session configuration.
* * *
## `backends/onnx.runInferenceSession(session, ortFeed)` ⇒ Promise.<Record.<string, Tensor>>
Run an inference session.
**Kind**: static method of [backends/onnx](#module_backends/onnx)
**Returns**: Promise.<Record.<string, Tensor>> - The output tensors.
ParamTypeDescription
sessionInferenceSessionThe ONNX inference session.
ortFeedRecord.<string, Tensor>The input tensors.
* * *
## `backends/onnx.isONNXTensor(x)` ⇒ boolean
Check if an object is an ONNX tensor.
**Kind**: static method of [backends/onnx](#module_backends/onnx)
**Returns**: boolean - Whether the object is an ONNX tensor.
ParamTypeDescription
xanyThe object to check
* * *
## `backends/onnx.isONNXProxy()` ⇒ boolean
Check if ONNX's WASM backend is being proxied.
**Kind**: static method of [backends/onnx](#module_backends/onnx)
**Returns**: boolean - Whether ONNX's WASM backend is being proxied.
* * *
## `backends/onnx~defaultDevices` : Array
**Kind**: inner property of [backends/onnx](#module_backends/onnx)
* * *
## `backends/onnx~webInitChain` : Promise.<any>
Currently, Transformers.js doesn't support simultaneous loading of sessions in WASM/WebGPU.
For this reason, we need to chain the loading calls.
**Kind**: inner property of [backends/onnx](#module_backends/onnx)
* * *
## `backends/onnx~wasmLoadPromise` : Promise.<void> | null
Promise that resolves when WASM binary has been loaded (if caching is enabled).
This ensures we only attempt to load the WASM binary once.
**Kind**: inner property of [backends/onnx](#module_backends/onnx)
* * *
## `backends/onnx~webInferenceChain` : Promise.<any>
Currently, Transformers.js doesn't support simultaneous execution of sessions in WASM/WebGPU.
For this reason, we need to chain the inference calls (otherwise we get "Error: Session already started").
**Kind**: inner property of [backends/onnx](#module_backends/onnx)
* * *
## `backends/onnx~DEVICE_TO_EXECUTION_PROVIDER_MAPPING` : Record.<DeviceType, ONNXExecutionProviders>
**Kind**: inner constant of [backends/onnx](#module_backends/onnx)
* * *
## `backends/onnx~ONNX_LOG_LEVEL_NAMES` : Record.<(0|1|2|3|4), ('verbose'|'info'|'warning'|'error'|'fatal')>
Maps ONNX Runtime numeric severity levels to string log levels.
**Kind**: inner constant of [backends/onnx](#module_backends/onnx)
* * *
## `backends/onnx~supportedDevices` : Array
The list of supported devices, sorted by priority/performance.
**Kind**: inner constant of [backends/onnx](#module_backends/onnx)
* * *
## `backends/onnx~ONNX_ENV` : Env
**Kind**: inner constant of [backends/onnx](#module_backends/onnx)
* * *
## `backends/onnx~getOnnxLogSeverityLevel(logLevel)` ⇒ number
Converts any LogLevel value to ONNX Runtime's numeric severity level (0-4).
This handles both standard LogLevel values (10, 20, 30, 40, 50) and custom intermediate values.
**Kind**: inner method of [backends/onnx](#module_backends/onnx)
**Returns**: number - ONNX Runtime severity level (0-4)
ParamTypeDescription
logLevelnumberThe LogLevel value to convert
* * *
## `backends/onnx~ensureWasmLoaded()` ⇒ Promise.<void>
Ensures the WASM binary is loaded and cached before creating an inference session.
Only runs once, even if called multiple times.
**Kind**: inner method of [backends/onnx](#module_backends/onnx)
* * *
## `backends/onnx~setLogLevel(logLevel)`
A function to map Transformers.js log levels to ONNX Runtime log severity
levels, and set the log level environment variable in ONNX Runtime.
**Kind**: inner method of [backends/onnx](#module_backends/onnx)
ParamTypeDescription
logLevelnumberThe log level to set.
* * *
## `backends/onnx~ONNXExecutionProviders` : InferenceSession.ExecutionProviderConfig
**Kind**: inner typedef of [backends/onnx](#module_backends/onnx)
* * *

Xet Storage Details

Size:
7.95 kB
·
Xet hash:
30e5973befebe0f8564d9980cd923d297cb5bd40d6fdb54dbfbb00855c17d628

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.