包 ai.onnxruntime
ONNX Runtime 的 Java 介面。
提供與 C 庫相同的執行後端訪問。透過此 API 訪問時,Java 中不可表示的型別(例如 fp16)會被轉換為最接近的 Java 原語型別。
需要兩個共享庫:onnxruntime 和 onnxruntime4j_jni 。載入器位於 OnnxRuntime 中,邏輯順序如下
- 使用者可以使用
onnxruntime.native.LIB_NAME.skip形式的屬性,值為true來表示跳過共享庫載入。這意味著使用者已決定透過其他方式載入該庫。 - 使用者可以使用
onnxruntime.native.path形式的屬性指定所有原生庫檔案的顯式位置。這會使用System.load(java.lang.String)。 - 使用者可以使用
onnxruntime.native.LIB_NAME.path形式的屬性指定共享庫檔案的顯式位置。這會使用System.load(java.lang.String)。 - 共享庫會自動發現
- 如果共享庫存在於 classpath 資源中,則透過臨時檔案使用
System.load(java.lang.String)載入。理想情況下,這應該是在將包含共享庫的 JAR 包/依賴項新增到 classpath 時的預設使用方式。 - 如果共享庫不存在於 classpath 資源中,則使用
System.loadLibrary(java.lang.String)載入,該方法通常在檔案系統的其他位置查詢庫。該方法的語義和行為取決於系統/JVM。通常,java.library.path屬性用於指定原生庫的位置。
- 如果共享庫存在於 classpath 資源中,則透過臨時檔案使用
請注意,CUDA、ROCM、DNNL、OpenVINO 和 TensorRT 都是“共享庫執行提供程式”,必須儲存在包含 ONNX Runtime 核心原生庫的目錄中,或作為 classpath 資源。這是因為這些提供程式是由 ONNX Runtime 原生庫本身載入的,Java API 無法控制載入位置。
-
介面概述 介面 描述 OnnxValue ONNX 模型輸入和輸出值的頂級介面。OrtProviderOptions.OrtProviderSupplier 映象 Java Supplier 的函式式介面,但可以丟擲 OrtException。ValueInfo 描述OnnxValue的資訊物件介面。 -
列舉概述 列舉 描述 OnnxJavaType 表示 ONNX Runtime 支援的 Java 原語型別(和 String)的列舉。OnnxMap.OnnxMapValueType 表示儲存在OnnxMap中的值的 Java 型別的列舉。OnnxSparseTensor.SparseTensorType 稀疏張量的型別。OnnxValue.OnnxValueType 與 C API 中的 id 相對應的OnnxValue型別。OrtException.OrtErrorCode 將onnxruntime_c_api.h中的OrtErrorCode結構體對映到 Java 端錯誤,並增加一個條目。OrtLoggingLevel 日誌嚴重性級別。OrtProvider 透過 Java API 可用的執行提供程式。OrtSession.SessionOptions.ExecutionMode 要使用的執行模式。OrtSession.SessionOptions.OptLevel 要使用的最佳化級別。TensorInfo.OnnxTensorType ONNX runtime 支援的原生元素型別。 -
異常概述 異常 描述 OrtException 包含原生 onnxruntime 產生的錯誤訊息和程式碼的異常。