nvidia.dali.fn.reinterpret#

nvidia.dali.fn.reinterpret(__data, __shape_input=None, /, *, bytes_per_sample_hint=[0], dtype=None, layout='', preserve=False, rel_shape=[], shape=[], src_dims=[], device=None, name=None)#

将输入的内容视为具有不同的类型、形状和/或布局。

缓冲区内容不会被复制。

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

支持的后端
  • ‘cpu’

  • ‘gpu’

参数:
  • __data (TensorList) – 要重塑的数据

  • __shape_input (1D TensorList of integers, optional) – 与 shape 关键字参数相同

关键字参数:
  • bytes_per_sample_hint (int or list of int, optional, default = [0]) –

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

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

  • dtype (nvidia.dali.types.DALIDataType, optional) –

    输出数据类型。

    输出的总大小(以字节为单位)必须与输入匹配。如果未提供形状,则会相应地调整最内层维度。如果最内层维度的字节大小不能被目标类型的大小整除,则会发生错误。

  • layout (layout str, optional, default = ‘’) –

    数据的新布局。

    如果未指定值,如果维度数与现有布局匹配,则保留输出布局。如果维度数不匹配,则参数将重置为空。如果设置了值且不为空,则布局必须与输出的维度匹配。

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

  • rel_shape (float or list of float or TensorList of float, optional, default = []) –

    输出的相对形状。

    输出形状通过将输入形状乘以 rel_shape 计算得出

    out_shape[i] = in_shape[i] * rel_shape[i]
    

    可以使用附加参数 src_dims 来更改用于计算输出形状的源维度

    out_shape[i] = in_shape[src_dims[i]] * rel_shape[i]
    

    可以有一个负范围,它接收匹配输入体积所需的大小。例如,形状为 [480, 640, 3] 的输入和 rel_shape = [0.5, -1] 会导致输出形状 [240, 3840]

    维度数受以下限制

    • 如果使用了 src_dims 参数,则 src_dimsrel_shape 中的元素数量必须匹配

    • 否则,rel_shape 的长度不得超过输入中的维度数,除非 rel_shape 中的最后一个元素为负数,在这种情况下,将在末尾添加一个额外的维度

    注意

    rel_shapeshape 是互斥的。

  • shape (int or list of int or TensorList of int, optional, default = []) –

    输出的期望形状。

    可以有一个负范围,它接收匹配输入体积所需的大小。例如,形状为 [480, 640, 3]shape = [240, -1] 会导致输出形状 [240, 3840]

    注意

    rel_shapeshape 是互斥的。

  • src_dims (int or list of int or TensorList of int, optional, default = []) –

    要保留的维度索引。

    此参数可用于操作现有维度的顺序,或删除或添加维度。特殊索引值 -1 可用于插入新维度。

    例如,重塑形状为 [300, 200, 1] 的样本和 src_dims 参数 [-1, 1, 0] 会产生输出形状 [1, 200, 300]。在开头插入一个范围为 1 的前导维度,后跟第一个原始维度,但顺序相反。最后一个维度被删除。

    src_dims 参数可以与 rel_shape 一起使用,在这种情况下,rel_shape 中的相对范围描述了目标维度。在上面的示例中,指定 rel_shape = [-1, 0.5, 2] 将导致输出形状 [1, 100, 600]

    所有索引都必须在输入有效维度的范围内,或为 -1。