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

对于标量,输出在从 input 获取的索引处设置为 on_value,在其他地方设置为 off_value

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

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

支持的后端
  • ‘cpu’

  • ‘gpu’

参数:

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

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

  • 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) – 即使操作器的输出未使用,也阻止将其从图中删除。