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, 可选, 默认值 = [0]) –
每个样本的输出大小提示(以字节为单位)。
如果指定,则驻留在 GPU 或分页锁定主机内存中的操作符输出将被预先分配,以容纳此大小的样本批次。
layout¶ (布局字符串, 可选, 默认值 = ‘’) –
数据的新布局。
如果未指定值,如果维度数与现有布局匹配,则保留输出布局。如果维度数不匹配,则参数将重置为空。如果设置了值且不为空,则布局必须与输出的维度匹配。
preserve¶ (bool, 可选, 默认值 = False) – 即使操作符的输出未使用,也阻止将其从图中移除。
rel_shape¶ (float 或 list of float 或 float 的 TensorList, 可选, 默认值 = []) –
输出的相对形状。
输出形状通过将输入形状乘以
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 或 list of int 或 int 的 TensorList, 可选, 默认值 = []) –
输出的所需形状。
可以有一个负数范围,用于接收与输入体积匹配所需的大小。例如,形状为
[480, 640, 3]
的输入和shape = [240, -1]
会产生输出形状[240, 3840]
。src_dims¶ (int 或 list of int 或 int 的 TensorList, 可选, 默认值 = []) –
要保留的维度的索引。
此参数可用于操作现有维度的顺序,或删除或添加维度。特殊索引值 -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。
另请参阅