包 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 包/依赖项添加到类路径时,这应该是默认的使用场景。 - 如果共享库不存在于类路径资源中,则使用
System.loadLibrary(java.lang.String)加载,该方法通常会在文件系统的其他位置查找库。该方法的语义和行为取决于系统/JVM。通常,使用java.library.path属性来指定原生库的位置。
- 如果共享库存在于类路径(classpath)资源中,则通过临时文件使用
请注意,CUDA、ROCM、DNNL、OpenVINO 和 TensorRT 均为“共享库执行提供程序”,必须存储在包含 ONNX Runtime 核心原生库的目录中,或者作为类路径资源存储。这是因为这些提供程序是由 ONNX Runtime 原生库自身加载的,Java API 无法控制其加载位置。
-
接口摘要 接口 描述 OnnxValue ONNX 模型输入和输出值的顶级接口。OrtFlags 用于位集枚举的接口,应聚合成单个整数。OrtProviderOptions.OrtProviderSupplier 映射 Java supplier 的函数接口,但可以抛出 OrtException。ValueInfo 用于描述OnnxValue的信息对象的接口。 -
枚举摘要 枚举 描述 OnnxJavaType 一个表示 ONNX Runtime 支持的 Java 基本类型(以及 String)的枚举。OnnxMap.OnnxMapValueType 表示存储在OnnxMap中的值对应的 Java 枚举类型。OnnxSparseTensor.SparseTensorType 稀疏张量的类型。OnnxValue.OnnxValueType OnnxValue的类型,映射 C API 中的 ID。OrtEnvironment.OrtCompiledModelCompatibility 表示已编译模型与一组OrtEpDevice的兼容性的枚举。OrtException.OrtErrorCode 映射onnxruntime_c_api.h中的OrtErrorCode结构,并增加了 Java 端错误的条目。OrtHardwareDevice.OrtHardwareDeviceType 硬件设备类型。OrtLoggingLevel 日志严重级别。OrtModelCompilationOptions.OrtCompileApiFlags 表示编译模型时所用选项的标志。OrtProvider 通过 Java API 可用的执行提供程序。OrtSession.SessionOptions.ExecutionMode 要使用的执行模式。OrtSession.SessionOptions.OptLevel 要使用的优化级别。TensorInfo.OnnxTensorType ONNX 运行时支持的原生元素类型。 -
异常摘要 Exception 描述 OrtException 包含本机 onnxruntime 产生的错误消息和代码的异常。