holoscan.decorator
SPDX-FileCopyrightText: 版权所有 (c) 2024-2025 NVIDIA CORPORATION & AFFILIATES。保留所有权利。SPDX-许可证标识符:Apache-2.0
根据 Apache 许可证 2.0 版(“许可证”)获得许可;除非遵守许可证,否则您不得使用此文件。您可以在以下位置获取许可证副本:
https://apache.ac.cn/licenses/LICENSE-2.0
除非适用法律要求或书面同意,否则根据许可证分发的软件按“现状”分发,不附带任何形式的明示或暗示的保证或条件。有关许可证下特定语言的管理权限和限制,请参阅许可证。
- class holoscan.decorator.Input(name: str, arg_map: typing.Optional[typing.Union[str, dict[str, str]]] = (), condition_type: typing.Optional[holoscan.core._core.ConditionType] = None, condition_kwargs: dict[str, typing.Any] = <factory>, connector_type: typing.Optional[holoscan.core._core.IOSpec.ConnectorType] = None, connector_kwargs: dict[str, typing.Any] = <factory>)
基类:
object
用于指定输入端口以及接收值如何映射到函数参数的类。
- 参数
- namestr
输入端口的名称。
- arg_map: str 或 dict[str, str]
如果 arg_map 是 str,则输入端口接收的 Python 对象将传递给 arg_map 指定的函数参数。如果 arg_map 是 dict,则假定输入为 TensorMap(张量字典)。在这种情况下,dict 的键是张量名称,值是将张量映射到的函数参数的名称。
- condition_typeholoscan.core.ConditionType,可选
输入端口的条件类型。
- condition_kwargsdict[str, Any],可选
传递给 condition_type 指定的条件的关键字。
- connector_typeholoscan.core.IOSpec.ConnectorType,可选
输入端口的连接器类型。
- connector_kwargsdict[str, Any],可选
传递给 connector_type 指定的连接器的关键字。
属性
condition_type connector_type 方法
create_input - __init__(name: str, arg_map: typing.Optional[typing.Union[str, dict[str, str]]] = (), condition_type: typing.Optional[holoscan.core._core.ConditionType] = None, condition_kwargs: dict[str, typing.Any] = <factory>, connector_type: typing.Optional[holoscan.core._core.IOSpec.ConnectorType] = None, connector_kwargs: dict[str, typing.Any] = <factory>) → None
- arg_map: Optional[Union[str, dict[str, str]]] = ()
- condition_kwargs: dict[str, Any]
- condition_type: Optional[holoscan.core._core.ConditionType] = None
- connector_kwargs: dict[str, Any]
- connector_type: Optional[holoscan.core._core.IOSpec.ConnectorType] = None
- create_input(spec: holoscan.core._core.PyOperatorSpec) → holoscan.core._core.IOSpec
- name: str
- class holoscan.decorator.Output(name: str, tensor_names: typing.Optional[typing.Union[str, tuple[str]]] = (), condition_type: typing.Optional[holoscan.core._core.ConditionType] = None, condition_kwargs: dict[str, typing.Any] = <factory>, connector_type: typing.Optional[holoscan.core._core.IOSpec.ConnectorType] = None, connector_kwargs: dict[str, typing.Any] = <factory>)
基类:
object
用于指定输出端口以及一个或多个函数返回值如何映射到它的类。
- 参数
- namestr
输出端口的名称。
- tensor_names: str,tuple(str) 或 None
如果为 None,则 func 输出的任何 Python 对象都将在输出端口上发出。如果提供字符串元组,则假定 func 返回张量字典。元组中的名称指定将要在输出端口上传输的字典中的张量。如果要传输函数返回的字典中的所有张量,则无需指定 tensor_names。对于单个张量名称,可以提供字符串而不是元组。
- condition_typeholoscan.core.ConditionType,可选
输入端口的条件类型。
- condition_kwargsdict[str, Any],可选
传递给 condition_type 指定的条件的关键字。
- connector_typeholoscan.core.IOSpec.ConnectorType,可选
输入端口的连接器类型。
- connector_kwargsdict[str, Any],可选
传递给 connector_type 指定的连接器的关键字。
属性
condition_type connector_type 方法
create_output - __init__(name: str, tensor_names: typing.Optional[typing.Union[str, tuple[str]]] = (), condition_type: typing.Optional[holoscan.core._core.ConditionType] = None, condition_kwargs: dict[str, typing.Any] = <factory>, connector_type: typing.Optional[holoscan.core._core.IOSpec.ConnectorType] = None, connector_kwargs: dict[str, typing.Any] = <factory>) → None
- condition_kwargs: dict[str, Any]
- condition_type: Optional[holoscan.core._core.ConditionType] = None
- connector_kwargs: dict[str, Any]
- connector_type: Optional[holoscan.core._core.IOSpec.ConnectorType] = None
- create_output(spec: holoscan.core._core.PyOperatorSpec) → holoscan.core._core.IOSpec
- name: str
- tensor_names: Optional[Union[str, tuple[str]]] = ()
- holoscan.decorator.create_op(function_or_class=None, inputs: Union[str, holoscan.decorator.Input, tuple[Union[str, holoscan.decorator.Input]]] = (), outputs: Union[str, holoscan.decorator.Output, tuple[Union[str, holoscan.decorator.Output]]] = (), cast_tensors=True)
用于从函数或类创建运算符的装饰器。
当装饰器用于类时,该类必须具有一个 __call__ 方法,该方法将用作运算符函数。
- inputsstr、Input 或 Tuple[str | Input],可选
如果提供 str,则假定它是输入端口的名称,并且该函数具有与该端口名称匹配的变量,接收端口上的对象将连接到该变量。如果端口名称与函数签名中变量的名称不匹配,或者如果有多个张量要映射到多个对象,请使用 Input 参数。可以提供 str 或 Input 对象元组来指定多个输入端口。默认为空元组,表示没有输入端口。
- outputsstr、Output 或 Tuple[str | Output],可选
如果提供 str,则函数返回的任何值都将在该名称的输出端口上发出。如果提供多个 str 的元组,并且函数返回元组,则元组元素将按照定义的顺序从每个输出端口发出。在这种情况下,输出端口的数量应与输出元组的长度匹配。最后,如果函数返回应跨多个端口拆分的输出数组字典,则可以提供 Output 对象。
- cast_tensorsbool,可选
如果为 True,则自动将任何类似张量的输入转换为 NumPy 或 CuPy 数组(分别用于主机和设备张量)。如果设置为 False,则这些将保留为 holoscan.Tensor,用户将不得不在装饰函数或类的正文中强制转换为所需的类型。
注释
需要使用 Input 或 Output 对象的另一种情况是,如果用户希望覆盖端口的默认连接器或条件类型。