ORTSessionOptions

Objective-C

@interface ORTSessionOptions : NSObject

Swift

class ORTSessionOptions : NSObject

用于配置会话的选项。

  • 不可用

    声明

    Objective-C

    - (instancetype)init NS_UNAVAILABLE;
  • 创建会话配置选项。

    声明

    Objective-C

    - (nullable instancetype)initWithError:(NSError *_Nullable *_Nullable)error;

    Swift

    init() throws

    参数

    error

    如果发生错误,则设置的可选错误信息。

    返回值

    实例,如果发生错误则为 nil。

  • 将执行提供程序添加到会话选项中,以便在运行模型时使用该执行提供程序。

    从 1.14 版本开始提供。

    执行提供程序列表按优先级递减排序。即:第一个注册的提供程序优先级最高。

    声明

    Objective-C

    - (BOOL)appendExecutionProvider:(nonnull NSString *)providerName
                    providerOptions:(nonnull NSDictionary<NSString *, NSString *> *)
                                        providerOptions
                              error:(NSError *_Nullable *_Nullable)error;

    Swift

    func appendExecutionProvider(_ providerName: String, providerOptions: [String : String] = [:]) throws

    参数

    providerName

    提供程序名称。例如,“xnnpack”。

    providerOptions

    提供程序特定选项。例如,对于 “xnnpack” 提供程序,可以使用 {“intra_op_num_threads”: “2”}。

    error

    如果发生错误,则设置的可选错误信息。

    返回值

    执行提供程序是否添加成功

  • 设置用于节点内并行执行的线程数。值为 0 表示 ORT 将选择默认值。

    声明

    Objective-C

    - (BOOL)setIntraOpNumThreads:(int)intraOpNumThreads
                           error:(NSError *_Nullable *_Nullable)error;

    Swift

    func setIntraOpNumThreads(_ intraOpNumThreads: Int32) throws

    参数

    intraOpNumThreads

    线程数。

    error

    如果发生错误,则设置的可选错误信息。

    返回值

    选项是否设置成功。

  • 设置图优化级别。

    声明

    Objective-C

    - (BOOL)setGraphOptimizationLevel:
                (ORTGraphOptimizationLevel)graphOptimizationLevel
                                error:(NSError *_Nullable *_Nullable)error;

    Swift

    func setGraphOptimizationLevel(_ graphOptimizationLevel: ORTGraphOptimizationLevel) throws

    参数

    graphOptimizationLevel

    图优化级别。

    error

    如果发生错误,则设置的可选错误信息。

    返回值

    选项是否设置成功。

  • 设置优化后的模型文件保存路径。

    声明

    Objective-C

    - (BOOL)setOptimizedModelFilePath:(nonnull NSString *)optimizedModelFilePath
                                error:(NSError *_Nullable *_Nullable)error;

    Swift

    func setOptimizedModelFilePath(_ optimizedModelFilePath: String) throws

    参数

    optimizedModelFilePath

    优化后的模型文件路径。

    error

    如果发生错误,则设置的可选错误信息。

    返回值

    选项是否设置成功。

  • 设置会话日志 ID。

    声明

    Objective-C

    - (BOOL)setLogID:(nonnull NSString *)logID
               error:(NSError *_Nullable *_Nullable)error;

    Swift

    func setLogID(_ logID: String) throws

    参数

    logID

    日志 ID。

    error

    如果发生错误,则设置的可选错误信息。

    返回值

    选项是否设置成功。

  • 设置会话日志严重性级别。

    声明

    Objective-C

    - (BOOL)setLogSeverityLevel:(ORTLoggingLevel)loggingLevel
                          error:(NSError *_Nullable *_Nullable)error;

    Swift

    func setLogSeverityLevel(_ loggingLevel: ORTLoggingLevel) throws

    参数

    loggingLevel

    日志严重性级别。

    error

    如果发生错误,则设置的可选错误信息。

    返回值

    选项是否设置成功。

  • 设置会话配置键值对。之前设置的任何同名键的值都将被覆盖。会话配置键和值请参考:https://github.com/microsoft/onnxruntime/blob/main/include/onnxruntime/core/session/onnxruntime_session_options_config_keys.h

    声明

    Objective-C

    - (BOOL)addConfigEntryWithKey:(nonnull NSString *)key
                            value:(nonnull NSString *)value
                            error:(NSError *_Nullable *_Nullable)error;

    Swift

    func addConfigEntry(withKey key: String, value: String) throws

    参数

    key

    键。

    value

    该值。

    error

    如果发生错误,则设置的可选错误信息。

    返回值

    选项是否设置成功。

  • 通过调用指定的原生函数名称,为使用此 SessionOptions 的 ORTSession 注册自定义算子。自定义算子库必须已链接,或者之前已由用户加载。

    从 1.14 版本开始提供。

    注册函数必须具有以下签名:OrtStatus* (*fn)(OrtSessionOptions* options, const OrtApiBase* api);

    该签名定义在 ONNX Runtime C API 中:https://github.com/microsoft/onnxruntime/blob/67f4cd54fab321d83e4a75a40efeee95a6a17079/include/onnxruntime/core/session/onnxruntime_c_api.h#L697

    有关自定义算子的更多信息,请参阅 https://runtime.onnx.org.cn/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 指向一个有效的、对原生 ONNX Runtime 代码可见且具有正确签名的函数。他们必须确保该函数能够按预期工作,因为此方法仅负责调用它。

    声明

    Objective-C

    - (BOOL)registerCustomOpsUsingFunction:(nonnull NSString *)registrationFuncName
                                     error:(NSError *_Nullable *_Nullable)error;

    Swift

    func registerCustomOps(usingFunction registrationFuncName: String) throws

    参数

    registrationFuncName

    要调用的注册函数的名称。

    error

    如果发生错误,则设置的可选错误信息。

    返回值

    注册函数是否成功调用。

  • 通过调用由 registerCustomOpsFn 指向的函数,为使用此 SessionOptions 的 ORTSession 注册自定义算子。

    从 1.16 版本开始提供。

    注册函数必须具有以下签名:OrtStatus* (*fn)(OrtSessionOptions* options, const OrtApiBase* api);

    该签名定义在 ONNX Runtime C API 中:https://github.com/microsoft/onnxruntime/blob/67f4cd54fab321d83e4a75a40efeee95a6a17079/include/onnxruntime/core/session/onnxruntime_c_api.h#L697

    有关自定义算子的更多信息,请参阅 https://runtime.onnx.org.cn/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

    注意

    调用者必须确保 registerCustomOpsFn 是一个有效的函数指针且具有正确的签名。他们必须确保该函数能够按预期工作,因为此方法仅负责调用它。

    声明

    Objective-C

    - (BOOL)registerCustomOpsUsingFunctionPointer:
                (nonnull ORTCAPIRegisterCustomOpsFnPtr)registerCustomOpsFn
                                            error:(NSError *_Nullable *_Nullable)
                                                      error;

    Swift

    func registerCustomOps(functionPointer registerCustomOpsFn: ORTCAPIRegisterCustomOpsFnPtr) throws

    参数

    registerCustomOpsFn

    指向要调用的注册函数的指针。

    error

    如果发生错误,则设置的可选错误信息。

    返回值

    注册函数是否成功调用。

  • 注册已内置于 ONNX Runtime 中的 ONNX Runtime Extensions 自定义算子。

    从 1.16 版本开始提供。

    注意

    ONNX Runtime 在构建时必须包含 --use_extensions 标志,才能使用此方法注册 ONNX Runtime Extensions 自定义算子。如果使用单独的 ONNX Runtime Extensions 库,请改用 registerCustomOpsUsingFunctionPointer:error:

    声明

    Objective-C

    - (BOOL)enableOrtExtensionsCustomOpsWithError:
        (NSError *_Nullable *_Nullable)error;

    Swift

    func enableOrtExtensionsCustomOps() throws

    参数

    error

    如果发生错误,则设置的可选错误信息。

    返回值

    ONNX Runtime Extensions 自定义算子是否注册成功。

ORTSessionOptionsCoreMLEP

  • 在会话配置选项中启用 CoreML 执行提供程序。它被添加到按优先级递减排序的执行提供程序列表中。

    声明

    Objective-C

    - (BOOL)appendCoreMLExecutionProviderWithOptions:
                (nonnull ORTCoreMLExecutionProviderOptions *)options
                                               error:(NSError *_Nullable *_Nullable)
                                                         error;

    Swift

    func appendCoreMLExecutionProvider(with options: ORTCoreMLExecutionProviderOptions) throws

    参数

    options

    CoreML 执行提供程序配置选项。

    error

    如果发生错误,则设置的可选错误信息。

    返回值

    提供程序是否成功启用。

  • 在会话配置选项中启用 CoreML 执行提供程序。它被添加到按优先级递减排序的执行提供程序列表中。

    声明

    Objective-C

    - (BOOL)appendCoreMLExecutionProviderWithOptionsV2:
                (nonnull NSDictionary *)provider_options
                                                 error:
                                                     (NSError *_Nullable *_Nullable)
                                                         error;

    Swift

    func appendCoreMLExecutionProvider(withOptionsV2 provider_options: [AnyHashable : Any] = [:]) throws

    参数

    provider_options

    CoreML 执行提供程序选项字典。可用键值对:详细信息请见 core/providers/coreml/coreml_execution_provider.h。kCoremlProviderOption_MLComputeUnits: “CPUAndNeuralEngine”、“CPUAndGPU”、“CPUOnly”、“All” 之一。kCoremlProviderOption_ModelFormat: “MLProgram”、“NeuralNetwork” 之一。kCoremlProviderOption_RequireStaticInputShapes: “1” 或 “0”。kCoremlProviderOption_EnableOnSubgraphs: “1” 或 “0”。

    error

    如果发生错误,则设置的可选错误信息。

    返回值

    提供程序是否成功启用。

ORTSessionOptionsXnnpackEP

  • 从 1.14 版本开始提供。在会话配置选项中启用 Xnnpack 执行提供程序。它被添加到按优先级递减排序的执行提供程序列表中。

    声明

    Objective-C

    - (BOOL)appendXnnpackExecutionProviderWithOptions:
                (nonnull ORTXnnpackExecutionProviderOptions *)options
                                                error:
                                                    (NSError *_Nullable *_Nullable)
                                                        error;

    Swift

    func appendXnnpackExecutionProvider(with options: ORTXnnpackExecutionProviderOptions) throws

    参数

    options

    Xnnpack 执行提供程序配置选项。

    error

    如果发生错误,则设置的可选错误信息。

    返回值

    提供程序是否成功启用。