nvidia.dali.fn.one_hot#

nvidia.dali.fn.one_hot(__input, /, *, axis=-1, axis_name=None, bytes_per_sample_hint=[0], dtype=DALIDataType.FLOAT, num_classes=0, off_value=0.0, on_value=1.0, preserve=False, device=None, name=None)#

生成输入的 one-hot 编码。

添加新轴,或将标量输入转换为 num_classes 元素的轴。

对于给定的输入坐标 (x0, x1, ..., xn),以及 axis = k,输出样本指定为

cls = input[x0, x1, ..., xn]
output[x0, x1, ..., xk-1, i, xk, ..., xn] = on_value if i == cls else off_value

对于范围 [0, num_classes) 中的所有 i

对于标量,输出设置为索引取自 inputon_value,以及其他地方的 off_value

output[i] = on_value if i == input else off_value

为了向后兼容,所有张量都只有一个元素(无论维度数量如何)的任何输入都被视为标量。如果指定了 axis 参数,则不支持将张量解释为标量的旧版方式。

支持的后端
  • ‘cpu’

  • ‘gpu’

参数:

__input (TensorList) – 操作符的输入。

关键字参数:
  • axis (int, optional, default = -1) – 放置 num_classes 大小的 one-hot 编码轴的维度。 默认情况下,对于非标量输入,它作为最后一个维度附加。 对于标量输入,它成为唯一的维度。

  • axis_name (str, optional) – 将用作输出布局中新添加维度的名称的单个字符。 如果未提供字符,则输出布局将为空。

  • bytes_per_sample_hint (int or list of int, optional, default = [0]) –

    每个样本的输出大小提示(以字节为单位)。

    如果指定,则将预先分配驻留在 GPU 或分页锁定主机内存中的操作符的输出,以适应此大小的样本批次。

  • dtype (nvidia.dali.types.DALIDataType, optional, default = DALIDataType.FLOAT) – 输出数据类型。

  • num_classes (int, optional, default = 0) – 数据中所有类别的数量。

  • off_value (float, optional, default = 0.0) –

    将用于填充输出的值,以指示相应输入坐标中缺少给定类别。

    此值将转换为 dtype 类型。

  • on_value (float, optional, default = 1.0) –

    将用于填充输出的值,以指示相应输入坐标中给定的类别。

    此值将转换为 dtype 类型。

  • preserve (bool, optional, default = False) – 阻止操作符从图中删除,即使其输出未使用。