nvidia.dali.fn.erase#
- nvidia.dali.fn.erase(__input, /, *, anchor=[], axes=[1, 0], axis_names='HW', bytes_per_sample_hint=[0], centered_anchor=False, fill_value=[0.0], normalized=False, normalized_anchor=False, normalized_shape=False, preserve=False, shape=[], device=None, name=None)#
从输入张量中擦除一个或多个区域。
区域由
anchor
(起始点)和shape
(尺寸)指定。仅指定相关维度的坐标。未指定的维度被视为提供了轴的整个范围。要指定多个区域,anchor
和shape
连续表示多个点(例如,anchor
= (y0, x0, y1, x1, …) 和shape
= (h0, w0, h1, w1, …))。anchor
和shape
参数根据axis_names
参数的值或axes
参数的值进行解释。如果未提供axis_names
或axes
参数,则必须指定除C
(通道)之外的所有维度。示例 1
anchor
= (10, 20),shape
= (190, 200),axis_names
= “HW”,fill_value
= 0输入:
layout
= “HWC”,shape
= (300, 300, 3)擦除区域覆盖垂直维度(高度)上 10 到 200 之间的范围,以及水平维度(宽度)上 20 到 220 之间的范围。通道维度的范围未指定,因此介于 0 到 3 之间。结果为
output[y, x, c] = 0 if 20 <= x < 220 and 10 <= y < 200 output[y, x, c] = input[y, x, c] otherwise
示例 2
anchor
= (10, 250),shape
= (20, 30),axis_names
= “W”,fill_value
= (118, 185, 0)输入:
layout
= “HWC”,shape
= (300, 300, 3)提供了两个擦除区域,分别覆盖 x=(10, 30) 和 x=(250, 280) 范围内的两个垂直带。擦除区域中的每个像素都填充了多通道值 (118, 185, 0)。结果为
output[y, x, :] = (118, 185, 0) if 10 <= x < 30 or 250 <= x < 280 output[y, x, :] = input[y, x, :] otherwise
示例 3
anchor
= (0.15, 0.15),shape
= (0.3, 0.3),axis_names
= “HW”,fill_value
= 100,normalized
= True输入:
layout
= “HWC”,shape
= (300, 300, 3)提供了一个在高度和宽度维度上具有归一化坐标的擦除区域。为所有通道提供了填充值。坐标可以通过乘以输入形状转换为绝对坐标。结果为
if (0.15 * 300 <= x < (0.3 + 0.15) * 300 and 0.15 * 300 <= y < (0.3 + 0.15) * 300(): output[y, x, c] = 100 else: output[y, x, c] = input[y, x, c]
示例 4:
anchor
= (0.15, 0.15),shape
= (20, 30),normalized_anchor
= True,normalized_shape
= False输入:
layout
= “HWC”,shape
= (300, 300, 3)一个擦除区域,其锚点以归一化坐标指定,形状以绝对坐标指定。由于未提供 axis_names,因此 anchor 和 shape 必须包含除 “C”(通道)之外的所有维度。结果为
if (0.15 * 300 <= x < (0.15 * 300) + 20 and (0.15 * 300) <= y < (0.15 * 300) + 30): output[y, x, c] = 0 else: output[y, x, c] = input[y, x, c]
此运算符允许序列输入并支持体积数据。
- 支持的后端
‘cpu’
‘gpu’
- 参数:
__input¶ (TensorList) – 运算符的输入。
- 关键字参数:
anchor¶ (float 或 float 列表或 TensorList of float, 可选, 默认 = []) –
擦除区域的锚点或起点的坐标。
仅应提供由 axis_names 或 axes 指定的相关维度的坐标。
axes¶ (int 或 int 列表, 可选, 默认 = [1, 0]) –
用于 anchor 和 shape 参数的维度顺序,作为维度索引。
例如,axes=(1, 0) 表示 anchor 和 shape 中的坐标按特定顺序引用轴 1 和 0。
axis_names¶ (str, 可选, 默认 = ‘HW’) –
用于锚点和形状参数的维度顺序,如布局中所述。
例如,axis_names=”HW” 表示 anchor 和 shape 中的坐标按特定顺序引用维度 H(高度)和 W(宽度)。
注意
axis_name*s 比 *axes 具有更高的优先级.
bytes_per_sample_hint¶ (int 或 int 列表, 可选, 默认 = [0]) –
输出大小提示,以每样本字节数为单位。
如果指定,则运算符的输出(位于 GPU 或页锁定主机内存中)将被预分配以容纳此大小的样本批次。
centered_anchor¶ (bool, 可选, 默认 = False) –
如果设置为 True,则锚点引用区域的中心而不是左上角。
这会在指定的 anchor 处产生居中擦除的区域。
fill_value¶ (float 或 float 列表或 TensorList of float, 可选, 默认 = [0.0]) –
用于填充擦除区域的值。
可以指定为单个值(例如,0)或多通道值(例如,(200, 210, 220))。如果提供了多通道填充值,则输入布局应包含通道维度
C
。normalized¶ (bool, 可选, 默认 = False) –
确定 anchor 和 shape 参数应解释为归一化坐标(范围 [0.0, 1.0])还是绝对坐标。
分别为 normalized_shape 和 normalized_anchor 参数提供值是互斥的。
normalized_anchor¶ (bool, 可选, 默认 = False) –
确定 anchor 参数应解释为归一化坐标(范围 [0.0, 1.0])还是绝对坐标。
为 normalized 提供值是互斥的。
normalized_shape¶ (bool, 可选, 默认 = False) –
确定 shape 参数应解释为归一化坐标(范围 [0.0, 1.0])还是绝对坐标。
为 normalized 提供值是互斥的。
preserve¶ (bool, 可选, 默认 = False) – 即使运算符的输出未使用,也阻止将其从图中删除。
shape¶ (float 或 float 列表或 TensorList of float, 可选, 默认 = []) –
擦除区域的形状或尺寸的值。
仅应提供由 axis_names 或 axes 指定的相关维度的坐标。