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, optional, default = [0]) –

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

    如果指定,则将预先分配位于 GPU 或页面锁定主机内存中的算子输出,以适应此大小的样本批次。

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

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

  • keys (int 或 list of int, optional, default = []) –

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

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

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

    警告

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

  • preserve (bool, optional, default = False) – 即使算子的输出未使用,也阻止从图中删除算子。

  • values (float 或 list of float, optional, default = []) –

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

    keysvalues 参数的长度必须匹配。