包 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 产生的错误消息和代码的异常。