程序包 ai.onnxruntime

类 OrtEnvironment

  • 所有已实现的接口
    java.lang.AutoCloseable

    public final class OrtEnvironment
    extends java.lang.Object
    implements java.lang.AutoCloseable
    ONNX Runtime 系统的宿主对象。可以创建封装特定模型的 OrtSession。在创建任何其他 ONNX Runtime 类之前,应先实例化此对象。

    在 JVM 生命周期内最多只能创建一个 OrtEnvironment 对象。此类像以前一样实现了 AutoCloseable 以保持与 1.10 及更早版本的向后兼容性,但 close 方法为空操作。环境通过在构造时注册的 JVM 关闭挂钩(shutdown hook)来关闭。

    • 字段详细信息

      • DEFAULT_NAME

        public static final java.lang.String DEFAULT_NAME
        从 Java 构建的 ORT 环境的默认名称。
        另请参阅
        常量字段值
    • 方法详细信息

      • getEnvironment

        public static OrtEnvironment getEnvironment​(java.lang.String name)
        获取 OrtEnvironment。如果当前尚未创建环境,它将使用提供的名称和 OrtLoggingLevel.ORT_LOGGING_LEVEL_WARNING 创建一个环境。

        如果环境已存在,则返回现有的环境;如果名称或日志级别与请求的不同,则记录警告。

        参数
        name - 环境的日志标识。
        返回值
        OrtEnvironment 单例。
      • getEnvironment

        public static OrtEnvironment getEnvironment​(OrtLoggingLevel logLevel)
        获取 OrtEnvironment。如果当前尚未创建环境,它将使用 DEFAULT_NAME 和提供的日志级别创建一个环境。

        如果环境已存在,则返回现有的环境;如果名称或日志级别与请求的不同,则记录警告。

        参数
        logLevel - 要使用的日志级别。
        返回值
        OrtEnvironment 单例。
      • getEnvironment

        public static OrtEnvironment getEnvironment​(OrtLoggingLevel loggingLevel,
                                                    java.lang.String name)
        获取 OrtEnvironment。如果当前尚未创建环境,它将使用提供的名称和日志级别创建一个环境。如果已存在具有不同名称的环境,则返回该环境并记录警告。
        参数
        loggingLevel - 要使用的日志级别。
        name - 日志 ID。
        返回值
        OrtEnvironment 单例。
      • getEnvironment

        public static OrtEnvironment getEnvironment​(OrtLoggingLevel loggingLevel,
                                                    java.lang.String name,
                                                    OrtEnvironment.ThreadingOptions threadOptions)
        使用指定的全局线程池选项创建 OrtEnvironment。请注意,与其他 getEnvironment 方法不同,如果已存在现有的 OrtEnvironment,此调用将抛出 IllegalStateException,因为我们无法保证该环境具有适当的线程池配置。
        参数
        loggingLevel - 要使用的日志级别。
        name - 日志 ID。
        threadOptions - 全局线程池选项。
        返回值
        OrtEnvironment 单例。
      • createSession

        public OrtSession createSession​(java.lang.String modelPath)
                                 throws OrtException
        使用默认的 OrtSession.SessionOptions、模型和默认内存分配器创建会话。
        参数
        modelPath - 从中加载模型的磁盘路径。
        返回值
        带有指定模型的 OrtSession
        抛出
        OrtException - 如果模型加载失败、不兼容或导致错误。
      • createSession

        public OrtSession createSession​(java.nio.ByteBuffer modelBuffer,
                                        OrtSession.SessionOptions options)
                                 throws OrtException
        使用指定的 OrtSession.SessionOptions、模型和默认内存分配器创建会话。
        参数
        modelBuffer - 表示 ONNX 模型的字节缓冲区。必须是直接字节缓冲区。
        options - 会话选项。
        返回值
        带有指定模型的 OrtSession
        抛出
        OrtException - 如果模型解析失败、不兼容或导致错误。
      • createSession

        public OrtSession createSession​(java.nio.ByteBuffer modelBuffer)
                                 throws OrtException
        使用默认的 OrtSession.SessionOptions、模型和默认内存分配器创建会话。
        参数
        modelBuffer - 表示 ONNX 模型的字节缓冲区。必须是直接字节缓冲区。
        返回值
        带有指定模型的 OrtSession
        抛出
        OrtException - 如果模型解析失败、不兼容或导致错误。
      • createSession

        public OrtSession createSession​(byte[] modelArray)
                                 throws OrtException
        使用默认的 OrtSession.SessionOptions、模型和默认内存分配器创建会话。
        参数
        modelArray - 表示 ONNX 模型的字节数组。
        返回值
        带有指定模型的 OrtSession
        抛出
        OrtException - 如果模型解析失败、不兼容或导致错误。
      • createTrainingSession

        public OrtTrainingSession createTrainingSession​(java.lang.String checkpointPath,
                                                        java.lang.String trainPath,
                                                        java.lang.String evalPath,
                                                        java.lang.String optimizerPath)
                                                 throws OrtException
        使用默认的 OrtSession.SessionOptions、模型和默认内存分配器创建训练会话。
        参数
        checkpointPath - 检查点文件夹的路径。
        trainPath - 训练模型的路径。
        evalPath - 评估模型的路径。Null 表示没有评估模型。
        optimizerPath - 优化器模型的路径。Null 表示没有优化器模型。
        返回值
        加载了指定模型的 OrtTrainingSession
        抛出
        OrtException - 如果模型加载失败、不兼容或导致错误。
      • createTrainingSession

        public OrtTrainingSession createTrainingSession​(java.lang.String checkpointPath,
                                                        java.lang.String trainPath,
                                                        java.lang.String evalPath,
                                                        java.lang.String optimizerPath,
                                                        OrtSession.SessionOptions options)
                                                 throws OrtException
        使用指定的 OrtSession.SessionOptions、模型和默认内存分配器创建训练会话。
        参数
        checkpointPath - 检查点文件夹的路径。
        trainPath - 训练模型的路径。
        evalPath - 评估模型的路径。Null 表示没有评估模型。
        optimizerPath - 优化器模型的路径。Null 表示没有优化器模型。
        options - 会话选项。
        返回值
        带有指定模型的 OrtTrainingSession
        抛出
        OrtException - 如果模型加载失败、不兼容或导致错误。
      • isTrainingEnabled

        public boolean isTrainingEnabled()
        此 ONNX Runtime 版本是否启用了训练功能?
        返回值
        如果启用了训练,则为 True。
      • setTelemetry

        public void setTelemetry​(boolean sendTelemetry)
                          throws OrtException
        开启或关闭遥测。
        参数
        sendTelemetry - 如果为 true,则发送关于 ONNX Runtime 使用情况的遥测数据。
        抛出
        OrtException - 如果调用失败。
      • getVersion

        public java.lang.String getVersion()
        获取原生库的版本字符串。
        返回值
        版本字符串。
      • toString

        public java.lang.String toString()
        重写
        toString in class java.lang.Object
      • getAvailableProviders

        public static java.util.EnumSet<OrtProvider> getAvailableProviders()
        获取此环境中可用的提供程序。
        返回值
        可用执行提供程序的枚举集。
      • registerExecutionProviderLibrary

        public void registerExecutionProviderLibrary​(java.lang.String registrationName,
                                                     java.lang.String libraryPath)
                                              throws OrtException
        向此 OrtEnvironment 注册执行提供程序库。
        参数
        registrationName - 注册库所使用的名称(稍后用于通过 unregisterExecutionProviderLibrary(String) 移除它)。
        libraryPath - 磁盘上库二进制文件的路径。
        抛出
        OrtException - 如果库无法注册。
      • unregisterExecutionProviderLibrary

        public void unregisterExecutionProviderLibrary​(java.lang.String registrationName)
                                                throws OrtException
        从此 OrtEnvironment 中注销执行提供程序库。
        参数
        registrationName - 库注册时使用的名称。
        抛出
        OrtException - 如果库无法移除。
      • getModelCompatibilityForEpDevices

        public OrtEnvironment.OrtCompiledModelCompatibility getModelCompatibilityForEpDevices​(java.util.List<OrtEpDevice> epDevices,
                                                                                              java.lang.String modelInfo)
                                                                                       throws OrtException
        对照 OrtEpDevice 列表检查提供的模型信息字符串,以查看模型是否兼容。
        参数
        epDevices - 要使用的 EP-Device 元组。
        modelInfo - 要检查的模型信息字符串。
        返回值
        模型兼容性。
        抛出
        OrtException - 如果调用失败。
      • close

        public void close()
        自 ORT 1.11 起,Close 在 OrtEnvironment 上为空操作。
        指定者
        接口 java.lang.AutoCloseable 中的 close