Class OrtValue
Represents a disposable OrtValue. This class exposes a native instance of OrtValue. The class implements IDisposable via SafeHandle and must be disposed.
Inheritance
Namespace: Microsoft.ML.OnnxRuntime
Assembly: cs.temp.dll.dll
Syntax
public class OrtValue : SafeHandle
Properties
IsInvalid
Overrides SafeHandle.IsInvalid
Declaration
public override bool IsInvalid { get; }
Property Value
| Type | Description |
|---|---|
| System.Boolean | returns true if handle is equal to Zero |
Methods
CreateFromTensorObject(Object, out Nullable<MemoryHandle>, out TensorElementType)
This is a factory method creates a native Onnxruntime OrtValue containing a tensor. The method will attempt to pin managed memory so no copying occurs when data is passed down to native code.
Declaration
public static OrtValue CreateFromTensorObject(Object value, out MemoryHandle? memoryHandle, out TensorElementType elementType)
Parameters
| Type | Name | Description |
|---|---|---|
| Object | value | Tensor object |
| System.Nullable<MemoryHandle> | memoryHandle | For all tensor types but string tensors we endeavor to use managed memory to avoid additional allocation and copy. This out parameter represents a chunk of pinned memory which will need to be disposed when no longer needed. The lifespan of memoryHandle should eclipse the lifespan of the corresponding OrtValue. |
| TensorElementType | elementType | discovered tensor element type |
Returns
| Type | Description |
|---|---|
| OrtValue | And instance of OrtValue constructed on top of the object |
CreateTensorValueWithData(OrtMemoryInfo, TensorElementType, Int64[], IntPtr, Int64)
Factory method to construct an OrtValue of Tensor type on top of pre-allocated memory. This can be a piece of native memory allocated by OrtAllocator (possibly on a device) or a piece of pinned managed memory.
The resulting OrtValue does not own the underlying memory buffer and will not attempt to deallocate it.
Declaration
public static OrtValue CreateTensorValueWithData(OrtMemoryInfo memInfo, TensorElementType elementType, long[] shape, IntPtr dataBuffer, long bufferLength)
Parameters
| Type | Name | Description |
|---|---|---|
| OrtMemoryInfo | memInfo | Memory Info. For managed memory it is a default cpu. For Native memory must be obtained from the allocator or OrtMemoryAllocation instance |
| TensorElementType | elementType | DataType for the Tensor |
| System.Int64[] | shape | Tensor shape |
| IntPtr | dataBuffer | Pointer to a raw memory buffer |
| System.Int64 | bufferLength | Buffer length in bytes |
Returns
| Type | Description |
|---|---|
| OrtValue | A disposable instance of OrtValue |
ReleaseHandle()
Overrides SafeHandle.ReleaseHandle() to properly dispose of the native instance of OrtValue
Declaration
protected override bool ReleaseHandle()
Returns
| Type | Description |
|---|---|
| System.Boolean | always returns true |