nvidia.dali.fn.lookup_table#

nvidia.dali.fn.lookup_table(__input, /, *, bytes_per_sample_hint=[0], default_value=0.0, dtype=DALIDataType.FLOAT, keys=[], preserve=False, values=[], device=None, name=None)#

通过使用由 keysvalues 指定的查找表,以及未指定键的 default_value,将输入映射到输出。

例如,当 keysvalues 用于以下方式定义查找表时

keys[] =   {0,     2,   3,   4,   5,    3}
values[] = {0.2, 0.4, 0.5, 0.6, 0.7, 0.10}
default_value = 0.99

0 <= i < max(keys)
lut[i] = values[keys.index[i]]   if i in keys
lut[i] = default_value           otherwise

操作符创建以下表

lut[] = {0.2, 0.99, 0.4, 0.10, 0.6, 0.7}  // only last occurrence of a key is considered

并根据以下公式生成输出

Output[i] = lut[Input[i]]   if 0 <= Input[i] <= len(lut)
Output[i] = default_value   otherwise

这是一个实际示例,考虑上面定义的表

Input[] =  {1,      4,    1,   0,  100,   2,     3,   4}
Output[] = {0.99, 0.6, 0.99, 0.2, 0.99, 0.4,  0.10, 0.6}

注意

只有整数类型可以用作此操作符的输入。

此操作符允许序列输入并支持体积数据。

支持的后端
  • ‘cpu’

  • ‘gpu’

参数:

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

关键字参数:
  • bytes_per_sample_hint (int 或 list of int, 可选, 默认 = [0]) –

    输出大小提示,以每样本字节为单位。

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

  • default_value (float, 可选, 默认 = 0.0) – 表中不存在的键的默认输出值。

  • dtype (nvidia.dali.types.DALIDataType, 可选, 默认 = DALIDataType.FLOAT) – 输出数据类型。

  • keys (int 或 list of int, 可选, 默认 = []) –

    查找表中输入值(键)的列表。

    keysvalues 参数的长度必须匹配。keys 中的值应在 [0, 65535 ] 范围内。

  • output_dtype (nvidia.dali.types.DALIDataType) –

    警告

    参数 output_dtypedtype 的已弃用别名。请改用 dtype

  • preserve (bool, 可选, 默认 = False) – 即使操作符的输出未使用,也阻止将其从图中删除。

  • values (float 或 list of float, 可选, 默认 = []) –

    每个 keys 条目的映射输出 values 列表。

    keysvalues 参数的长度必须匹配。