OrtSession class wraps an ONNX model and provides methods for running inference.
Package
Class Declaration
Creating Sessions
Sessions are created throughOrtEnvironment, not directly constructed.
From File Path
From Byte Array
From ByteBuffer
Properties
getNumInputs()
Returns the number of model inputs.getNumOutputs()
Returns the number of model outputs.getInputNames()
Returns input names (ordered by input ID).getOutputNames()
Returns output names (ordered by output ID).getInputInfo()
Returns detailed input information including types and shapes.getOutputInfo()
Returns detailed output information.Running Inference
run(Map)
Runs inference with all outputs.inputs: Map of input name to tensor
Result containing all outputs
Example:
run(Map, Set)
Runs inference with specific output names.run(Map, RunOptions)
Runs inference with custom run options.run with Pre-allocated Outputs
Runs inference using pre-allocated output tensors.Result Class
TheResult class contains inference outputs.
Accessing Results
Extracting Data
SessionOptions
Configuration options for creating sessions.Creating SessionOptions
Optimization Level
Execution Mode
Thread Configuration
Memory Configuration
Logging
Execution Providers
Custom Operators
Complete Examples
Batch Processing
Multi-threaded Inference
Model Metadata Inspection
Error Handling
Best Practices
- Always use try-with-resources: Ensures proper cleanup
- Reuse sessions: Create once, use many times
- Configure SessionOptions: Enable optimizations
- Close tensors: Free memory after use
- Thread-safe inference: Sessions support concurrent
run()calls - Handle exceptions: Catch
OrtExceptionfor ONNX Runtime errors