nvidia.dali.fn.reshape#
- nvidia.dali.fn.reshape(__data, __shape_input=None, /, *, bytes_per_sample_hint=[0], layout='', preserve=False, rel_shape=[], shape=[], src_dims=[], device=None, name=None)#
将输入的内容视为具有不同的形状和/或布局。
缓冲区内容不会被复制。
此运算符允许序列输入并支持体积数据。
- 支持的后端
‘cpu’
‘gpu’
- 参数:
- 关键字参数:
bytes_per_sample_hint¶ (int 或 list of int, optional, default = [0]) –
每个样本的输出大小提示(以字节为单位)。
如果指定,则驻留在 GPU 或分页锁定主机内存中的运算符输出将被预先分配,以适应此大小的样本批次。
layout¶ (layout str, optional, default = ‘’) –
数据的新布局。
如果未指定值,如果维度数与现有布局匹配,则保留输出布局。如果维度数不匹配,则参数重置为空。如果设置了值且不为空,则布局必须与输出的维度匹配。
preserve¶ (bool, optional, default = False) – 即使运算符的输出未使用,也阻止将其从图中移除。
rel_shape¶ (float 或 list of float 或 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]
可以有一个负 extent 接收匹配输入体积所需的大小。例如,形状为
[480, 640, 3]
的输入和rel_shape = [0.5, -1]
会导致输出形状为[240, 3840]
。维度的数量受以下限制
shape¶ (int 或 list of int 或 TensorList of int, optional, default = []) –
所需的输出形状。
可以有一个负 extent 接收匹配输入体积所需的大小。例如,形状为
[480, 640, 3]
的输入和shape = [240, -1]
会导致输出形状为[240, 3840]
。src_dims¶ (int 或 list of int 或 TensorList of int, optional, default = []) –
要保留的维度的索引。
此参数可用于操作现有维度的顺序或删除或添加维度。特殊索引值 -1 可用于插入新维度。
例如,reshape 形状为
[300, 200, 1]
的样本和src_dims
参数[-1, 1, 0]
会生成输出形状[1, 200, 300]
。在开头插入一个 extent 为 1 的前导维度,后跟第一个原始维度,但顺序相反。最后一个维度被删除。src_dims
参数可以与rel_shape
一起使用,在这种情况下,rel_shape
中的相对 extent 描述目标维度。在上面的示例中,指定rel_shape = [-1, 0.5, 2]
将导致输出形状[1, 100, 600]
。所有索引都必须在输入的有效维度范围内,或为 -1。
另请参阅