nvidia.dali.fn.laplacian#
- nvidia.dali.fn.laplacian(__input, /, *, bytes_per_sample_hint=[0], dtype=None, normalized_kernel=False, preserve=False, scale=[1.0], smoothing_size=None, window_size=[3], device=None, name=None)#
计算输入的拉普拉斯算子。
拉普拉斯算子计算为关于每个空间维度的二阶偏导数的总和。每个偏导数都使用可分离卷积来近似,该卷积在偏导数方向上使用导数窗口,并在其余轴上使用平滑窗口。
默认情况下,每个偏导数都通过沿所有空间轴卷积来近似:偏导数方向上的轴使用
window_size
的导数窗口,其余轴与相同大小的平滑窗口卷积。如果指定了smoothing_size
,则应用于给定轴的平滑窗口可以具有与导数窗口不同的大小。指定smoothing_size = 1
意味着在垂直于导数方向的轴上不进行平滑处理。window_size
和smoothing_size
都可以指定为单个值或每个轴的值。例如,对于体积输入,如果指定了window_size=[dz, dy, dx]
和smoothing_size=[sz, sy, sx]
,则将使用以下窗口对于
z
方向的偏导数:沿z
轴大小为dz
的导数窗口,以及分别沿 y 和 x 轴大小为sy
和sx
的平滑窗口。对于
y
方向的偏导数:沿y
轴大小为dy
的导数窗口,以及分别沿 z 和 x 轴大小为sz
和sx
的平滑窗口。对于
x
方向的偏导数:沿x
轴大小为dx
的导数窗口,以及分别沿 z 和 y 轴大小为sz
和sy
的平滑窗口。
窗口大小和平滑大小必须为奇数。导数窗口的大小必须至少为 3。平滑窗口的大小可以为 1,这意味着沿相应轴不进行平滑处理。
要标准化偏导数,可以使用
normalized_kernel=True
。每个偏导数都按2^(-s + n + 2)
缩放,其中s
是用于计算给定偏导数的窗口大小之和(包括平滑窗口),n
是数据维度/轴的数量。或者,您可以指定scale
参数来自定义缩放因子。Scale 可以是单个值或n
个值,每个偏导数一个值。操作符使用 32 位浮点数作为中间类型。
注意
通道
C
和帧F
维度不被视为数据轴。如果存在通道,则仅支持通道优先或通道最后的输入。此操作符允许序列输入并支持体积数据。
- 支持的后端
‘cpu’
‘gpu’
- 参数:
__input¶ (TensorList) – 操作符的输入。
- 关键字参数:
bytes_per_sample_hint¶ (int 或 list of int, optional, default = [0]) –
每个样本的输出大小提示(以字节为单位)。
如果指定,则将预先分配驻留在 GPU 或页锁定主机内存中的操作符输出,以容纳此大小的样本批次。
dtype¶ (
nvidia.dali.types.DALIDataType
, optional) –输出数据类型。
支持的类型:FLOAT。如果未设置,则使用输入类型。
normalized_kernel¶ (bool, optional, default = False) – 如果设置为 True,则自动缩放偏导数内核。如果指定了
scale
,则必须为 False。preserve¶ (bool, optional, default = False) – 阻止从图中删除操作符,即使其输出未使用。
scale¶ (float 或 list of float 或 TensorList of float, optional, default = [1.0]) –
手动缩放偏导数的因子。
支持
per-frame
输入。smoothing_size¶ (int 或 list of int 或 TensorList of int, optional) –
卷积中使用的平滑窗口的大小。
平滑大小必须为奇数,介于 1 到 23 之间。
支持
per-frame
输入。window_size¶ (int 或 list of int 或 TensorList of int, optional, default = [3]) –
卷积中使用的导数窗口的大小。
窗口大小必须为奇数,介于 3 到 23 之间。
支持
per-frame
输入。
另请参阅