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’
- 参数:
- 关键字参数:
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]
。维度数受以下限制
shape¶ (int or list of int or TensorList of int, optional, default = []) –
输出的期望形状。
可以有一个负范围,它接收匹配输入体积所需的大小。例如,形状为
[480, 640, 3]
和shape = [240, -1]
会导致输出形状[240, 3840]
。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。
另请参阅