显示 / 隐藏目录

类 SessionOptions

保存创建 InferenceSession 的选项。它会强制实例化 OrtEnv 单例。

继承
Object
CriticalFinalizerObject
SafeHandle
SessionOptions
实现
IDisposable
继承的成员
SafeHandle.handle
SafeHandle.Close()
SafeHandle.DangerousAddRef(Boolean)
SafeHandle.DangerousGetHandle()
SafeHandle.DangerousRelease()
SafeHandle.Dispose()
SafeHandle.Dispose(Boolean)
SafeHandle.SetHandle(IntPtr)
SafeHandle.SetHandleAsInvalid()
SafeHandle.IsClosed
Object.Equals(Object)
Object.Equals(Object, Object)
Object.GetHashCode()
Object.GetType()
Object.MemberwiseClone()
Object.ReferenceEquals(Object, Object)
Object.ToString()
命名空间: Microsoft.ML.OnnxRuntime
程序集: Microsoft.ML.OnnxRuntime.dll
语法
public class SessionOptions : SafeHandle, IDisposable

构造函数

| 改进此文档 查看源代码

SessionOptions()

构造一个空的 SessionOptions 对象

声明
public SessionOptions()

属性

| 改进此文档 查看源代码

EnableCpuMemArena

启用 CPU 内存分配的 Arena 分配器。默认值为 true。

声明
public bool EnableCpuMemArena { get; set; }
属性值
类型 描述
Boolean

返回 _enableCpuMemArena 标志值

| 改进此文档 查看源代码

EnableMemoryPattern

在第一次 Run() 调用中使用内存分配模式,以便后续运行。默认值 = true。

声明
public bool EnableMemoryPattern { get; set; }
属性值
类型 描述
Boolean

返回 enableMemoryPattern 标志值

| 改进此文档 查看源代码

EnableProfiling

启用 InferenceSession.Run() 调用的性能分析。默认值为 false

声明
public bool EnableProfiling { get; set; }
属性值
类型 描述
Boolean

返回 _enableProfiling 标志值

| 改进此文档 查看源代码

ExecutionMode

设置会话的执行模式。默认设置为 ORT_SEQUENTIAL。有关更多详细信息,请参阅 [ONNX_Runtime_Perf_Tuning.md]。

声明
public ExecutionMode ExecutionMode { get; set; }
属性值
类型 描述
ExecutionMode

返回 _executionMode 值

| 改进此文档 查看源代码

GraphOptimizationLevel

设置会话的图优化级别。默认设置为 ORT_ENABLE_ALL。

声明
public GraphOptimizationLevel GraphOptimizationLevel { get; set; }
属性值
类型 描述
GraphOptimizationLevel

返回 _graphOptimizationLevel 值

| 改进此文档 查看源代码

InterOpNumThreads

设置用于并行执行图(跨节点)的线程数。如果启用顺序执行,则此值将被忽略。值为 0 表示 ORT 将选择默认值。

声明
public int InterOpNumThreads { get; set; }
属性值
类型 描述
Int32

返回 _interOpNumThreads 值

| 改进此文档 查看源代码

IntraOpNumThreads

设置用于并行执行节点内部的线程数。值为 0 表示 ORT 将选择默认值。

声明
public int IntraOpNumThreads { get; set; }
属性值
类型 描述
Int32

返回 _intraOpNumThreads 值

| 改进此文档 查看源代码

IsInvalid

覆盖 SafeHandle.IsInvalid

声明
public override bool IsInvalid { get; }
属性值
类型 描述
Boolean

如果句柄等于 Zero,则返回 true

覆盖
System.Runtime.InteropServices.SafeHandle.IsInvalid
| 改进此文档 查看源代码

LogId

用于会话的日志 ID。默认值为空字符串。

声明
public string LogId { get; set; }
属性值
类型 描述
String

返回 _logId 值

| 改进此文档 查看源代码

LogSeverityLevel

会话日志的日志严重性级别。默认值 = ORT_LOGGING_LEVEL_WARNING

声明
public OrtLoggingLevel LogSeverityLevel { get; set; }
属性值
类型 描述
OrtLoggingLevel

返回 _logSeverityLevel 值

| 改进此文档 查看源代码

LogVerbosityLevel

会话日志的日志详细级别。默认值 = 0。有效值为 >=0。此设置仅在 LogSeverityLevel 设置为 ORT_LOGGING_LEVEL_VERBOSE 时生效。

声明
public int LogVerbosityLevel { get; set; }
属性值
类型 描述
Int32

返回 _logVerbosityLevel 值

| 改进此文档 查看源代码

OptimizedModelFilePath

设置在图级别转换后保存优化模型的filepath。默认值为空,表示禁用保存。

声明
public string OptimizedModelFilePath { get; set; }
属性值
类型 描述
String

返回 _optimizedModelFilePath 标志值

| 改进此文档 查看源代码

ProfileOutputPathPrefix

用于输出性能分析数据的文件路径前缀

声明
public string ProfileOutputPathPrefix { get; set; }
属性值
类型 描述
String

方法

| 改进此文档 查看源代码

AddFreeDimensionOverride(String, Int64)

如果在会话初始化时已知实际值,则使用实际值覆盖符号维度(通过特定的表示字符串),以启用可利用固定值的优化(例如内存规划等)。

声明
public void AddFreeDimensionOverride(string dimDenotation, long dimValue)
参数
类型 名称 描述
String dimDenotation

表示名称

Int64 dimValue

表示值

| 改进此文档 查看源代码

AddFreeDimensionOverrideByName(String, Int64)

如果在会话初始化时已知实际值,则使用实际值覆盖符号维度(通过特定的名称字符串),以启用可利用固定值的优化(例如内存规划等)。

声明
public void AddFreeDimensionOverrideByName(string dimName, long dimValue)
参数
类型 名称 描述
String dimName

维度名称

Int64 dimValue

维度值

| 改进此文档 查看源代码

AddInitializer(String, OrtValue)

向会话添加预分配的初始化器。如果模型包含一个名称与此 API 调用传递的名称相同的初始化器,ORT 将使用此初始化器实例,而不是从模型文件中反序列化一个。当您希望在不同会话之间共享同一个初始化器时,这很有用。

声明
public void AddInitializer(string name, OrtValue ortValue)
参数
类型 名称 描述
String name

初始化器的名称

OrtValue ortValue

包含初始化器的 OrtValue。'val' 的生命周期和底层初始化器缓冲区必须由用户管理(使用 CreateTensorWithDataAsOrtValue API 创建),并且其生命周期必须长于会话对象。

| 改进此文档 查看源代码

AddSessionConfigEntry(String, String)

将单个会话配置项设置为一对字符串。如果存在具有相同键的配置,此操作将使用给定的 configValue 覆盖该配置。

声明
public void AddSessionConfigEntry(string configKey, string configValue)
参数
类型 名称 描述
String configKey

配置键名称

String configValue

配置键值

| 改进此文档 查看源代码

AppendExecutionProvider(String, Dictionary<String, String>)

附加 QNN、SNPE 或 XNNPACK 执行提供程序

声明
public void AppendExecutionProvider(string providerName, Dictionary<string, string> providerOptions = null)
参数
类型 名称 描述
String providerName

要添加的执行提供程序。目前支持 'QNN'、'SNPE'、'XNNPACK'、'CoreML' 和 'AZURE'。

Dictionary<String, String> providerOptions

指定执行提供程序选项的可选键/值对。

| 改进此文档 查看源代码

AppendExecutionProvider_CoreML(CoreMLFlags)

仅当您安装了特定于此执行提供程序的 onnxruntime 包时使用。

声明
public void AppendExecutionProvider_CoreML(CoreMLFlags coremlFlags = CoreMLFlags.COREML_FLAG_USE_NONE)
参数
类型 名称 描述
CoreMLFlags coremlFlags

CoreML 特定标志

| 改进此文档 查看源代码

AppendExecutionProvider_CPU(Int32)

将 CPU EP 附加到会话的可用执行提供程序列表。

声明
public void AppendExecutionProvider_CPU(int useArena = 1)
参数
类型 名称 描述
Int32 useArena

1 - 使用 arena,0 - 不使用 arena

| 改进此文档 查看源代码

AppendExecutionProvider_CUDA(OrtCUDAProviderOptions)

将 CUDA EP 实例(基于指定配置)附加到 SessionOptions 实例。仅当您安装了特定于此执行提供程序的 onnxruntime 包时使用。

声明
public void AppendExecutionProvider_CUDA(OrtCUDAProviderOptions cudaProviderOptions)
参数
类型 名称 描述
OrtCUDAProviderOptions cudaProviderOptions

CUDA EP 提供程序选项

| 改进此文档 查看源代码

AppendExecutionProvider_CUDA(Int32)

仅当您安装了特定于此执行提供程序的 onnxruntime 包时使用。

声明
public void AppendExecutionProvider_CUDA(int deviceId = 0)
参数
类型 名称 描述
Int32 deviceId

整数设备 ID

| 改进此文档 查看源代码

AppendExecutionProvider_DML(Int32)

仅当您安装了特定于此执行提供程序的 onnxruntime 包时使用。

声明
public void AppendExecutionProvider_DML(int deviceId = 0)
参数
类型 名称 描述
Int32 deviceId

设备标识

| 改进此文档 查看源代码

AppendExecutionProvider_Dnnl(Int32)

仅当您安装了特定于此执行提供程序的 onnxruntime 包时使用。

声明
public void AppendExecutionProvider_Dnnl(int useArena = 1)
参数
类型 名称 描述
Int32 useArena

1 - 使用分配 arena,0 - 否则

| 改进此文档 查看源代码

AppendExecutionProvider_MIGraphX(Int32)

仅当您安装了特定于此执行提供程序的 onnxruntime 包时使用。

声明
public void AppendExecutionProvider_MIGraphX(int deviceId = 0)
参数
类型 名称 描述
Int32 deviceId

设备标识

| 改进此文档 查看源代码

AppendExecutionProvider_Nnapi(NnapiFlags)

仅当您安装了特定于此执行提供程序的 onnxruntime 包时使用。

声明
public void AppendExecutionProvider_Nnapi(NnapiFlags nnapiFlags = NnapiFlags.NNAPI_FLAG_USE_NONE)
参数
类型 名称 描述
NnapiFlags nnapiFlags

NNAPI 特定标志掩码

| 改进此文档 查看源代码

AppendExecutionProvider_OpenVINO(String)

仅当您安装了特定于此执行提供程序的 onnxruntime 包时使用。

声明
public void AppendExecutionProvider_OpenVINO(string deviceId = "")
参数
类型 名称 描述
String deviceId

设备标识,默认空字符串

| 改进此文档 查看源代码

AppendExecutionProvider_ROCm(OrtROCMProviderOptions)

将 ROCm EP 实例(基于指定配置)附加到 SessionOptions 实例。仅当您安装了特定于此执行提供程序的 onnxruntime 包时使用。

声明
public void AppendExecutionProvider_ROCm(OrtROCMProviderOptions rocmProviderOptions)
参数
类型 名称 描述
OrtROCMProviderOptions rocmProviderOptions

ROCm EP 提供程序选项

| 改进此文档 查看源代码

AppendExecutionProvider_ROCm(Int32)

仅当您安装了特定于此执行提供程序的 onnxruntime 包时使用。

声明
public void AppendExecutionProvider_ROCm(int deviceId = 0)
参数
类型 名称 描述
Int32 deviceId

设备 ID

| 改进此文档 查看源代码

AppendExecutionProvider_Tensorrt(OrtTensorRTProviderOptions)

将 TensorRT EP 实例(基于指定配置)附加到 SessionOptions 实例。仅当您安装了特定于此执行提供程序的 onnxruntime 包时使用。

声明
public void AppendExecutionProvider_Tensorrt(OrtTensorRTProviderOptions trtProviderOptions)
参数
类型 名称 描述
OrtTensorRTProviderOptions trtProviderOptions

TensorRT EP 提供程序选项

| 改进此文档 查看源代码

AppendExecutionProvider_Tensorrt(Int32)

仅当您安装了特定于此执行提供程序的 onnxruntime 包时使用。

声明
public void AppendExecutionProvider_Tensorrt(int deviceId = 0)
参数
类型 名称 描述
Int32 deviceId

设备标识

| 改进此文档 查看源代码

DisablePerSessionThreads()

禁用每个会话的线程。默认值为 true。这将使进程中的所有会话使用全局 TP。

声明
public void DisablePerSessionThreads()
| 改进此文档 查看源代码

MakeSessionOptionWithCudaProvider(OrtCUDAProviderOptions)

一个辅助方法,用于为 CUDA 执行提供程序构造 SessionOptions 对象。仅当已安装 CUDA 且您拥有特定于此执行提供程序的 onnxruntime 包时使用。

声明
public static SessionOptions MakeSessionOptionWithCudaProvider(OrtCUDAProviderOptions cudaProviderOptions)
参数
类型 名称 描述
OrtCUDAProviderOptions cudaProviderOptions

CUDA EP 提供程序选项

返回
类型 描述
SessionOptions

一个配置为在提供程序选项上执行的 SessionsOptions() 对象

| 改进此文档 查看源代码

MakeSessionOptionWithCudaProvider(Int32)

一个辅助方法,用于为 CUDA 执行构造 SessionOptions 对象。仅当已安装 CUDA 且您拥有特定于此执行提供程序的 onnxruntime 包时使用。

声明
public static SessionOptions MakeSessionOptionWithCudaProvider(int deviceId = 0)
参数
类型 名称 描述
Int32 deviceId
返回
类型 描述
SessionOptions

一个配置为在 deviceId 上执行的 SessionsOptions() 对象

| 改进此文档 查看源代码

MakeSessionOptionWithRocmProvider(OrtROCMProviderOptions)

一个辅助方法,用于构造一个针对 ROCm 执行提供程序的 SessionOptions 对象。仅在安装了 ROCm 并且您拥有特定于此执行提供程序的 onnxruntime 包时使用。

声明
public static SessionOptions MakeSessionOptionWithRocmProvider(OrtROCMProviderOptions rocmProviderOptions)
参数
类型 名称 描述
OrtROCMProviderOptions rocmProviderOptions

ROCm EP 提供程序选项

返回
类型 描述
SessionOptions

一个配置为在提供程序选项上执行的 SessionsOptions() 对象

| 改进此文档 查看源代码

MakeSessionOptionWithRocmProvider(Int32)

一个辅助方法,用于构造一个针对 ROCM 执行的 SessionOptions 对象。仅在安装了 ROCM 并且您拥有特定于此执行提供程序的 onnxruntime 包时使用。

声明
public static SessionOptions MakeSessionOptionWithRocmProvider(int deviceId = 0)
参数
类型 名称 描述
Int32 deviceId

设备 ID

返回
类型 描述
SessionOptions

一个配置为在 deviceId 上执行的 SessionsOptions() 对象

| 改进此文档 查看源代码

MakeSessionOptionWithTensorrtProvider(OrtTensorRTProviderOptions)

一个辅助方法,用于构造一个针对 TensorRT 执行提供程序的 SessionOptions 对象。仅在安装了 CUDA/TensorRT 并且您拥有特定于此执行提供程序的 onnxruntime 包时使用。

声明
public static SessionOptions MakeSessionOptionWithTensorrtProvider(OrtTensorRTProviderOptions trtProviderOptions)
参数
类型 名称 描述
OrtTensorRTProviderOptions trtProviderOptions

TensorRT EP 提供程序选项

返回
类型 描述
SessionOptions

一个配置为在提供程序选项上执行的 SessionsOptions() 对象

| 改进此文档 查看源代码

MakeSessionOptionWithTensorrtProvider(Int32)

一个辅助方法,用于构造一个针对 TensorRT 执行的 SessionOptions 对象。仅在安装了 CUDA/TensorRT 并且您拥有特定于此执行提供程序的 onnxruntime 包时使用。

声明
public static SessionOptions MakeSessionOptionWithTensorrtProvider(int deviceId = 0)
参数
类型 名称 描述
Int32 deviceId
返回
类型 描述
SessionOptions

一个配置为在 deviceId 上执行的 SessionsOptions() 对象

| 改进此文档 查看源代码

RegisterCustomOpLibrary(String)

加载名为 'libraryPath' 的 DLL,并查找此入口点:OrtStatus* RegisterCustomOps(OrtSessionOptions* options, const OrtApiBase* api); 然后将提供的 session options 以及 api base 传递给此函数。

在 v1.15 之前,这会导致库句柄泄漏,因此添加了 RegisterCustomOpLibraryV2 来解决此问题。

从 v1.15 开始,ONNX Runtime 将管理句柄的生命周期。

声明
public void RegisterCustomOpLibrary(string libraryPath)
参数
类型 名称 描述
String libraryPath

自定义操作库的路径

| 改进此文档 查看源代码

RegisterCustomOpLibraryV2(String, out IntPtr)

加载名为 'libraryPath' 的 DLL,并查找此入口点:OrtStatus* RegisterCustomOps(OrtSessionOptions* options, const OrtApiBase* api); 然后将提供的 session options 以及 api base 传递给此函数。加载的库的句柄在 'libraryHandle' 中返回。在使用传入的 session options 的所有会话被销毁后,调用方可以卸载它;或者如果发生错误且它非空,也可以卸载。提示:.NET Core 3.1 有一个 'NativeLibrary' 类,可用于释放库句柄。

声明
public void RegisterCustomOpLibraryV2(string libraryPath, out IntPtr libraryHandle)
参数
类型 名称 描述
String libraryPath

自定义操作库路径

IntPtr libraryHandle

输出参数,库句柄

| 改进此文档 查看源代码

RegisterOrtExtensions()

注册来自 Microsoft.ML.OnnxRuntime.Extensions NuGet 包的自定义操作。必须手动将对 Microsoft.ML.OnnxRuntime.Extensions 的引用添加到您的项目。

声明
public void RegisterOrtExtensions()
异常
类型 条件
OnnxRuntimeException

如果找不到扩展库,则抛出异常。

| 改进此文档 查看源代码

ReleaseHandle()

重写 SafeHandle.ReleaseHandle() 以正确释放 SessionOptions 的本机实例

声明
protected override bool ReleaseHandle()
返回
类型 描述
Boolean

始终返回 true

覆盖
System.Runtime.InteropServices.SafeHandle.ReleaseHandle()
| 改进此文档 查看源代码

SetLoadCancellationFlag(Boolean)

设置会话的加载取消标志。默认设置为 false。为用户提供了取消模型加载的机会。

声明
public void SetLoadCancellationFlag(bool value)
参数
类型 名称 描述
Boolean value

true 表示请求取消,false 表示继续

实现

System.IDisposable

扩展方法

SessionOptionsContainer.ApplyConfiguration(SessionOptions, String, Boolean)
  • 改进此文档
  • 查看源代码
本文内容
回到顶部