类 OrtSession.SessionOptions
- java.lang.Object
-
- ai.onnxruntime.OrtSession.SessionOptions
-
- 所有已实现的接口
java.lang.AutoCloseable
- 封闭类
- OrtSession
public static class OrtSession.SessionOptions extends java.lang.Object implements java.lang.AutoCloseable表示用于构造此会话的选项。用于设置线程数、优化级别、计算后端和其他选项。
在会话构造后修改此对象无效。
在所有使用此 SessionOptions 对象的会话关闭之前,不得关闭此对象,否则可能会释放正在使用的资源。
-
-
嵌套类摘要
嵌套类 修饰符和类型 类 描述 static classOrtSession.SessionOptions.ExecutionMode要使用的执行模式。static classOrtSession.SessionOptions.OptLevel要使用的优化级别。
-
构造函数摘要
构造函数 构造函数 描述 SessionOptions()创建空的会话选项。
-
方法摘要
所有方法 实例方法 具体方法 修饰符和类型 方法 描述 voidaddACL(boolean enableFastMath)添加 ARM Compute Library 作为执行后端。voidaddArmNN(boolean useArena)添加 ARM Neural Net Library 作为执行后端。voidaddConfigEntry(java.lang.String configKey, java.lang.String configValue)添加一个会话配置项,以字符串对的形式。voidaddCoreML()添加 Apple 的 CoreML 作为执行后端。voidaddCoreML(java.util.EnumSet<CoreMLFlags> flags)添加 Apple 的 CoreML 作为执行后端。voidaddCoreML(java.util.Map<java.lang.String,java.lang.String> providerOptions)添加 CoreML 作为执行后端。voidaddCPU(boolean useArena)添加 CPU 作为执行后端,如果需要,使用 Arena 分配器。voidaddCUDA()添加 CUDA 作为执行后端,使用设备 0。voidaddCUDA(int deviceNum)添加 CUDA 作为执行后端,使用指定的 CUDA 设备 ID。voidaddCUDA(OrtCUDAProviderOptions cudaOpts)添加 CUDA 作为执行后端,使用指定的 CUDA 选项。voidaddDirectML(int deviceId)添加 DirectML 作为执行后端。voidaddDnnl(boolean useArena)添加 Intel 的 Deep Neural Network Library 作为执行后端。voidaddExternalInitializers(java.util.Map<java.lang.String,OnnxTensorLike> initializers)添加提供的外部加载的初始化器。voidaddInitializer(java.lang.String name, OnnxTensorLike initializer)添加一个初始化器以覆盖 ONNX 模型中的初始化器。voidaddNnapi()添加 Android 的 NNAPI 作为执行后端。voidaddNnapi(java.util.EnumSet<NNAPIFlags> flags)添加 Android 的 NNAPI 作为执行后端。voidaddOpenVINO(java.lang.String deviceId)添加 OpenVINO 作为执行后端。voidaddQnn(java.util.Map<java.lang.String,java.lang.String> providerOptions)添加 QNN 作为执行后端。voidaddROCM()添加 ROCM 作为执行后端,使用设备 0。voidaddROCM(int deviceNum)添加 ROCM 作为执行后端,使用指定的 ROCM 设备 ID。voidaddTensorrt(int deviceNum)添加 Nvidia 的 TensorRT 作为执行后端。voidaddTensorrt(OrtTensorRTProviderOptions tensorRTOpts)添加 Nvidia 的 TensorRT 作为执行后端。voidaddTvm(java.lang.String settings)添加 TVM 作为执行后端。voidaddWebGPU(java.util.Map<java.lang.String,java.lang.String> providerOptions)添加 WebGPU 作为执行后端。voidaddXnnpack(java.util.Map<java.lang.String,java.lang.String> providerOptions)添加 XNNPACK 作为执行后端。voidclose()关闭会话选项,释放占用的内存。voiddisablePerSessionThreads()禁用按会话划分的线程池。voiddisableProfiling()在使用此 SessionOptions 的会话中禁用性能分析。voidenableProfiling(java.lang.String filePath)在使用此 SessionOptions 的会话中启用性能分析。java.util.Map<java.lang.String,java.lang.String>getConfigEntries()返回包含所有会话配置项的 Map 的不可修改视图。voidregisterCustomOpLibrary(java.lang.String path)注册一个自定义操作库,供使用此 SessionOptions 的OrtSession使用。voidregisterCustomOpsUsingFunction(java.lang.String registrationFuncName)通过调用指定的本地函数名,注册自定义操作,供使用此 SessionOptions 的OrtSession使用。voidsetCPUArenaAllocator(boolean useArena)设置 CPU 使用 Arena 内存分配器。voidsetDeterministicCompute(boolean value)设置是否使用确定性计算。voidsetExecutionMode(OrtSession.SessionOptions.ExecutionMode mode)设置此选项对象的执行模式,覆盖旧设置。voidsetInterOpNumThreads(int numThreads)如果在 CPU 上执行,设置用于并发执行多个请求的 CPU 线程池大小。voidsetIntraOpNumThreads(int numThreads)如果在 CPU 上执行,设置用于执行单个图的 CPU 线程池大小。voidsetLoggerId(java.lang.String loggerId)设置要使用的日志记录器 ID。voidsetMemoryPatternOptimization(boolean memoryPatternOptimization)开启内存模式优化,如果所有形状已知,则预先分配内存。voidsetOptimizationLevel(OrtSession.SessionOptions.OptLevel level)设置此选项对象的优化级别,覆盖旧设置。voidsetOptimizedModelFilePath(java.lang.String outputPath)设置优化模型的输出路径。voidsetSessionLogLevel(OrtLoggingLevel logLevel)设置会话的日志记录级别。voidsetSessionLogVerbosityLevel(int logLevel)设置会话的日志记录详细级别。voidsetSymbolicDimensionValue(java.lang.String dimensionName, long dimensionValue)设置符号维度的值。
-
-
-
方法详细信息
-
close
public void close()
关闭会话选项,释放占用的内存。- 由...指定
close在接口java.lang.AutoCloseable中
-
setExecutionMode
public void setExecutionMode(OrtSession.SessionOptions.ExecutionMode mode) throws OrtException
设置此选项对象的执行模式,覆盖旧设置。- 参数
mode- 要使用的执行模式。- 抛出
OrtException- 如果本地代码出错。
-
setOptimizationLevel
public void setOptimizationLevel(OrtSession.SessionOptions.OptLevel level) throws OrtException
设置此选项对象的优化级别,覆盖旧设置。- 参数
level- 要使用的优化级别。- 抛出
OrtException- 如果本地代码出错。
-
setInterOpNumThreads
public void setInterOpNumThreads(int numThreads) throws OrtException如果在 CPU 上执行,设置用于并发执行多个请求的 CPU 线程池大小。- 参数
numThreads- 要使用的线程数。- 抛出
OrtException- 如果本地代码出错。
-
setIntraOpNumThreads
public void setIntraOpNumThreads(int numThreads) throws OrtException如果在 CPU 上执行,设置用于执行单个图的 CPU 线程池大小。- 参数
numThreads- 要使用的线程数。- 抛出
OrtException- 如果本地代码出错。
-
setOptimizedModelFilePath
public void setOptimizedModelFilePath(java.lang.String outputPath) throws OrtException设置优化模型的输出路径。- 参数
outputPath- 将模型写入的输出路径。- 抛出
OrtException- 如果本地代码出错。
-
setLoggerId
public void setLoggerId(java.lang.String loggerId) throws OrtException设置要使用的日志记录器 ID。- 参数
loggerId- 日志记录器 ID 字符串。- 抛出
OrtException- 如果本地代码出错。
-
enableProfiling
public void enableProfiling(java.lang.String filePath) throws OrtException在使用此 SessionOptions 的会话中启用性能分析。- 参数
filePath- 写入性能分析信息的文件。- 抛出
OrtException- 如果本地代码出错。
-
disableProfiling
public void disableProfiling() throws OrtException在使用此 SessionOptions 的会话中禁用性能分析。- 抛出
OrtException- 如果本地代码出错。
-
setMemoryPatternOptimization
public void setMemoryPatternOptimization(boolean memoryPatternOptimization) throws OrtException开启内存模式优化,如果所有形状已知,则预先分配内存。- 参数
memoryPatternOptimization- 如果为 true,启用内存模式优化。- 抛出
OrtException- 如果本地代码出错。
-
setCPUArenaAllocator
public void setCPUArenaAllocator(boolean useArena) throws OrtException设置 CPU 使用 Arena 内存分配器。- 参数
useArena- 如果为 true,为 CPU 执行提供程序使用 Arena 内存分配器。- 抛出
OrtException- 如果本地代码出错。
-
setSessionLogLevel
public void setSessionLogLevel(OrtLoggingLevel logLevel) throws OrtException
设置会话的日志记录级别。- 参数
logLevel- 要使用的日志记录级别。- 抛出
OrtException- 如果本地代码出错。
-
setSessionLogVerbosityLevel
public void setSessionLogVerbosityLevel(int logLevel) throws OrtException设置会话的日志记录详细级别。- 参数
logLevel- 要使用的日志记录详细级别。- 抛出
OrtException- 如果本地代码出错。
-
registerCustomOpLibrary
public void registerCustomOpLibrary(java.lang.String path) throws OrtException注册一个自定义操作库,供使用此 SessionOptions 的OrtSession使用。- 参数
path- 磁盘上库的路径。- 抛出
OrtException- 如果加载库出错。
-
registerCustomOpsUsingFunction
public void registerCustomOpsUsingFunction(java.lang.String registrationFuncName) throws OrtException通过调用指定的本地函数名,注册自定义操作,供使用此 SessionOptions 的OrtSession使用。自定义操作库必须已链接或由用户事先加载。注册函数必须具有以下签名:
OrtStatus* (*fn)(OrtSessionOptions* options, const OrtApiBase* api);
有关自定义操作的更多信息,请参阅 https://runtime.onnx.org.cn/docs/reference/operators/add-custom-op.html。自定义操作库注册函数的示例请参阅 https://github.com/microsoft/onnxruntime/blob/342a5bf2b756d1a1fc6fdc582cfeac15182632fe/onnxruntime/test/testdata/custom_op_library/custom_op_library.cc#L115。
- 参数
registrationFuncName- 要调用的注册函数的名称。- 抛出
OrtException- 如果查找或调用注册函数出错。
-
setSymbolicDimensionValue
public void setSymbolicDimensionValue(java.lang.String dimensionName, long dimensionValue) throws OrtException设置符号维度的值。固定维度计算可以应用更多的优化。- 参数
dimensionName- 符号维度的名称。dimensionValue- 要将该维度设置的值。- 抛出
OrtException- 如果本地代码出错。
-
setDeterministicCompute
public void setDeterministicCompute(boolean value) throws OrtException设置是否使用确定性计算。默认为 false。如果设置为 true,这将尽可能为 GPU 内核启用确定性计算。请注意,这很可能会带来性能损失。
- 参数
value- 计算是否应该是确定性的?- 抛出
OrtException- 如果本地代码出错。
-
disablePerSessionThreads
public void disablePerSessionThreads() throws OrtException禁用按会话划分的线程池。必须与包含全局线程池的环境结合使用。- 抛出
OrtException- 如果本地代码出错。
-
addConfigEntry
public void addConfigEntry(java.lang.String configKey, java.lang.String configValue) throws OrtException添加一个会话配置项,以字符串对的形式。- 参数
configKey- 配置键字符串。configValue- 配置值字符串。- 抛出
OrtException- 如果本地代码出错。
-
getConfigEntries
public java.util.Map<java.lang.String,java.lang.String> getConfigEntries()
返回包含所有会话配置项的 Map 的不可修改视图。- 返回
- 所有会话配置项
-
addExternalInitializers
public void addExternalInitializers(java.util.Map<java.lang.String,OnnxTensorLike> initializers) throws OrtException
添加提供的外部加载的初始化器。请注意,一旦会话创建,初始化器就会被复制到会话中,并且原生引用会从此
SessionOptions中移除。会话创建后,这些初始化器可以关闭。这与通过addInitializer(String, OnnxTensorLike)添加的初始化器的生命周期不同。初始化器必须从Buffer对象创建。- 参数
initializers- 名称到初始化器的 Map。- 抛出
OrtException- 如果初始化器无法加载。
-
addInitializer
public void addInitializer(java.lang.String name, OnnxTensorLike initializer) throws OrtException添加一个初始化器以覆盖 ONNX 模型中的初始化器。请注意,初始化器的生命周期必须长于会话和会话选项。这与通过
addExternalInitializers(Map)添加的初始化器的生命周期不同。初始化器必须从Buffer对象创建。- 参数
name- 初始化器名称。initializer- 初始化器值。- 抛出
OrtException- 如果初始化器无法加载到会话选项中。
-
addCUDA
public void addCUDA() throws OrtException添加 CUDA 作为执行后端,使用设备 0。- 抛出
OrtException- 如果本地代码出错。
-
addCUDA
public void addCUDA(int deviceNum) throws OrtException添加 CUDA 作为执行后端,使用指定的 CUDA 设备 ID。- 参数
deviceNum- CUDA 设备 ID。- 抛出
OrtException- 如果本地代码出错。
-
addCUDA
public void addCUDA(OrtCUDAProviderOptions cudaOpts) throws OrtException
添加 CUDA 作为执行后端,使用指定的 CUDA 选项。- 参数
cudaOpts- CUDA 执行提供程序选项。- 抛出
OrtException- 如果本地代码出错。
-
addROCM
public void addROCM() throws OrtException添加 ROCM 作为执行后端,使用设备 0。- 抛出
OrtException- 如果本地代码出错。
-
addROCM
public void addROCM(int deviceNum) throws OrtException添加 ROCM 作为执行后端,使用指定的 ROCM 设备 ID。- 参数
deviceNum- ROCM 设备 ID。- 抛出
OrtException- 如果本地代码出错。
-
addCPU
public void addCPU(boolean useArena) throws OrtException添加 CPU 作为执行后端,如果需要,使用 Arena 分配器。默认情况下使用此后端,但如果请求了其他后端,则应最后请求它。
- 参数
useArena- 如果为 true,使用 Arena 内存分配器。- 抛出
OrtException- 如果本地代码出错。
-
addDnnl
public void addDnnl(boolean useArena) throws OrtException添加 Intel 的 Deep Neural Network Library 作为执行后端。- 参数
useArena- 如果为 true,使用 Arena 内存分配器。- 抛出
OrtException- 如果本地代码出错。
-
addOpenVINO
public void addOpenVINO(java.lang.String deviceId) throws OrtException添加 OpenVINO 作为执行后端。- 参数
deviceId- OpenVINO 执行设备的 ID。- 抛出
OrtException- 如果本地代码出错。
-
addTensorrt
public void addTensorrt(int deviceNum) throws OrtException添加 Nvidia 的 TensorRT 作为执行后端。- 参数
deviceNum- CUDA 设备的 ID。- 抛出
OrtException- 如果本地代码出错。
-
addTensorrt
public void addTensorrt(OrtTensorRTProviderOptions tensorRTOpts) throws OrtException
添加 Nvidia 的 TensorRT 作为执行后端。- 参数
tensorRTOpts- TensorRT 的配置参数。- 抛出
OrtException- 如果本地代码出错。
-
addNnapi
public void addNnapi() throws OrtException添加 Android 的 NNAPI 作为执行后端。使用默认的空标志。- 抛出
OrtException- 如果本地代码出错。
-
addNnapi
public void addNnapi(java.util.EnumSet<NNAPIFlags> flags) throws OrtException
添加 Android 的 NNAPI 作为执行后端。- 参数
flags- 控制 NNAPI 配置的标志。- 抛出
OrtException- 如果本地代码出错。
-
addTvm
public void addTvm(java.lang.String settings) throws OrtException添加 TVM 作为执行后端。- 参数
settings- 有效设置字符串请参阅文档。- 抛出
OrtException- 如果本地代码出错。
-
addDirectML
public void addDirectML(int deviceId) throws OrtException添加 DirectML 作为执行后端。- 参数
deviceId- DirectML 设备的 ID。- 抛出
OrtException- 如果本地代码出错。
-
addACL
public void addACL(boolean enableFastMath) throws OrtException添加 ARM Compute Library 作为执行后端。- 参数
enableFastMath- 在 ACL 中启用快速数学模式。- 抛出
OrtException- 如果本地代码出错。
-
addArmNN
public void addArmNN(boolean useArena) throws OrtException添加 ARM Neural Net Library 作为执行后端。- 参数
useArena- 如果为 true,使用 Arena 内存分配器。- 抛出
OrtException- 如果本地代码出错。
-
addCoreML
public void addCoreML() throws OrtException添加 Apple 的 CoreML 作为执行后端。使用默认的空标志。- 抛出
OrtException- 如果本地代码出错。
-
addCoreML
public void addCoreML(java.util.EnumSet<CoreMLFlags> flags) throws OrtException
添加 Apple 的 CoreML 作为执行后端。- 参数
flags- 控制 CoreML 配置的标志。- 抛出
OrtException- 如果本地代码出错。
-
addXnnpack
public void addXnnpack(java.util.Map<java.lang.String,java.lang.String> providerOptions) throws OrtException添加 XNNPACK 作为执行后端。- 参数
providerOptions- XNNPACK 后端的配置选项。请参阅 XNNPACK 执行提供程序的文档。- 抛出
OrtException- 如果本地代码出错。
-
addQnn
public void addQnn(java.util.Map<java.lang.String,java.lang.String> providerOptions) throws OrtException添加 QNN 作为执行后端。- 参数
providerOptions- QNN 后端的配置选项。请参阅 QNN 执行提供程序的文档。- 抛出
OrtException- 如果本地代码出错。
-
addCoreML
public void addCoreML(java.util.Map<java.lang.String,java.lang.String> providerOptions) throws OrtException添加 CoreML 作为执行后端。- 参数
providerOptions- CoreML 后端的配置选项。请参阅 CoreML 执行提供程序的文档。- 抛出
OrtException- 如果本地代码出错。
-
addWebGPU
public void addWebGPU(java.util.Map<java.lang.String,java.lang.String> providerOptions) throws OrtException添加 WebGPU 作为执行后端。- 参数
providerOptions- WebGPU 后端的配置选项。请参阅 WebGPU 执行提供程序的文档。- 抛出
OrtException- 如果本地代码出错。
-
-