類 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://onnxruntime.llms.tw/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- 如果原生代碼出錯。
-
-