nvidia.dali.fn.pad#
- nvidia.dali.fn.pad(__input, /, *, align=[], axes=[], axis_names='', bytes_per_sample_hint=[0], fill_value=0.0, preserve=False, shape=[], device=None, name=None)#
使用指定的
fill_value
在指定的轴上填充所有样本,以匹配这些轴上批次中的最大范围或匹配指定的最小形状。以下是一些示例
一维 样本,
fill_value
= -1,axes
= (0,)
样本在第一个轴上进行填充,以匹配最大样本的范围。
input = [[3, 4, 2, 5, 4], [2, 2], [3, 199, 5]]; output = [[3, 4, 2, 5, 4], [2, 2, -1, -1, -1], [3, 199, 5, -1, -1]]
一维 样本,
fill_value
= -1,axes
= (0,),shape
= (7,)
样本在第一个轴上填充到最小范围 7。
input = [[3, 4, 2, 5, 4], [2, 2], [3, 199, 5], [1, 2, 3, 4, 5, 6, 7, 8]]; output = [[3, 4, 2, 5, 4, -1, -1], [2, 2, -1, -1, -1, -1, -1], [3, 199, 5, -1, -1, -1, -1], [1, 2, 3, 4, 5, 6, 7, 8]]
一维 样本,
fill_value
= -1,axes
= (0,),align
= (4,)
样本在第一个轴上进行填充,以匹配最大样本的范围和对齐要求。输出范围为 8,这是将最大范围 (5) 向上舍入到对齐值 (4) 的倍数的结果。
input = [[3, 4, 2, 5, 4], [2, 2], [3, 199, 5]]; output = [[3, 4, 2, 5, 4, -1, -1, -1], [2, 2, -1, -1, -1, -1, -1, -1], [3, 199, 5, -1, -1, -1, -1, -1]]
一维 样本,
fill_value
= -1,axes
= (0,),shape
= (1,),align
= (2,)
样本在第一个轴上进行填充,仅以匹配对齐要求。最小范围 (shape) 设置为 1,以避免除对齐所需的任何填充。
input = [[3, 4, 2, 5, 4], [2, 2], [3, 199, 5]]; output = [[3, 4, 2, 5, 4, -1], [2, 2], [3, 199, 5, -1]]
二维 样本,
fill_value
= 42,axes
= (1,)
样本在第二个轴上进行填充,以匹配最大样本的范围,并使用自定义填充值 42 而不是默认值 0。
input = [[[1, 2, 3, 4], [5, 6, 7, 8]], [[1, 2], [4, 5]]] output = [[[1, 2, 3, 4], [5, 6, 7, 8]], [[1, 2, 42, 42], [4, 5, 42, 42]]]
二维 样本,
fill_value
= 0,axes
= (0, 1),align
= (4, 5)
样本在第一个和第二个轴上进行填充,以匹配每个轴的对齐要求。
input = [[[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]], [[1, 2], [4, 5]]] output = [[[1, 2, 3, 4, 0], [5, 6, 7, 8, 0], [9, 10, 11, 12, 0], [0, 0, 0, 0, 0]], [[1, 2, 0, 0, 0], [4, 5, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]]
二维 样本,
fill_value
= 0,axes
= (0, 1),align
= (1, 2),shape
= (4, -1)
样本在第一个轴上填充到最小范围 4,在第二个轴上填充以匹配批次中最大的样本和对齐值 2。
input = [[[1, 2, 3], [4, 5, 6]], [[1, 2], [4, 5], [6, 7]]] output = [[[1, 2, 3, 0], [4, 5, 6, 0], [0, 0, 0, 0], [0, 0, 0, 0]], [[1, 2, 0, 0], [4, 5, 0, 0], [6, 7, 0, 0], [0, 0, 0, 0]]]
- 支持的后端
‘cpu’
‘gpu’
- 参数:
__input¶ (TensorList) – 算子的输入。
- 关键字参数:
align¶ (int 或 list of int 或 TensorList of int, 可选, 默认值 = []) –
如果指定,此参数确定由
axes
或axis_names
指定的维度上的对齐方式。axis = axes[i]
上的范围将调整为align[i]
的倍数。如果提供整数值,则对齐限制将应用于所有填充轴。
要仅使用对齐,即没有任何默认或显式填充行为,请将指定轴的最小
shape
设置为 1。axes¶ (int 或 list of int 或 TensorList of int, 可选, 默认值 = []) –
批次样本将要填充的轴的索引。
负值被解释为从后面计数维度。有效范围:
[-ndim, ndim-1]
,其中 ndim 是输入数据中的维度数。axis_names
和axes
参数是互斥的。如果axes
和axis_names
为空或未提供,则输出将在所有轴上填充。axis_names¶ (layout str, 可选, 默认值 = ‘’) –
批次样本将要填充的轴的名称。
axis_names
和axes
参数是互斥的。如果axes
和axis_names
为空或未提供,则输出将在所有轴上填充。bytes_per_sample_hint¶ (int 或 list of int, 可选, 默认值 = [0]) –
输出大小提示,以字节/样本为单位。
如果指定,则驻留在 GPU 或分页锁定主机内存中的操作符输出将预先分配,以容纳此大小的样本批次。
fill_value¶ (float 或 TensorList of float, 可选, 默认值 = 0.0) – 用于填充批次的值。
preserve¶ (bool, 可选, 默认值 = False) – 阻止操作符从图中移除,即使其输出未使用。
shape¶ (int 或 list of int 或 TensorList of int, 可选, 默认值 = []) –
由
axes
或axis_names
指定的轴中输出形状的范围。为轴指定 -1 会恢复默认行为,即将轴扩展为容纳批次中最大样本的对齐大小。
如果提供的范围小于样本的范围,则仅应用填充以匹配所需的对齐方式。例如,要禁用轴中的填充,除非对齐是必需的,否则可以指定值 1。