nvidia.dali.fn.experimental.filter#

nvidia.dali.fn.experimental.filter(__data, __filter, __fill_value=None, /, *, anchor=[-1], border='reflect_101', bytes_per_sample_hint=[0], dtype=None, mode='same', preserve=False, device=None, name=None)#

使用提供的过滤器卷积图像。

注意

实际上,该操作符计算的是相关性,而不是卷积,即在计算过滤器和图像的乘积时,过滤器元素的顺序不会翻转。

此操作符允许序列输入。

支持的后端
  • ‘cpu’

  • ‘gpu’

参数:
  • __data (TensorList) –

    输入样本批次。

    样本可以是图像、视频或体积(3D)数据。样本可以包含通道:支持通道优先和通道最后布局。对于视频/序列,帧范围必须在通道范围之前,即,例如,支持具有 "FCHW" 布局的视频,但不接受 "CFHW" 样本。

    支持以下类型的样本:int8、int16、uint8、uint16、float16、float32。

    请注意,用于计算的中间类型始终为 float32。

    注意

    CPU 变体不支持体积(3D)数据,也不支持以下类型的输入:int8 和 float16。

  • __filter (TensorList) –

    过滤器批次。

    对于具有两个空间维度(图像或视频)的输入,每个过滤器必须是 2D 数组(或要应用于视频输入的 per-frame 的 2D 数组序列)。对于体积输入,过滤器必须是 3D 数组。过滤器值必须为 float32 类型。

  • __fill_value (TensorList, optional) –

    用于填充的标量批次。

    如果 "border" 设置为 "constant",则当与过滤器卷积时,输入样本将填充相应的标量。标量必须与输入样本的类型相同。对于视频/序列输入,可以指定标量数组以应用于 per-frame

关键字参数:
  • anchor (int or list of int or TensorList of int, optional, default = [-1]) –

    指定过滤器在输入上的位置。

    如果过滤器大小为 (r, s) 且锚点为 (a, b),则位置 (x, y) 处的输出是过滤器与输入矩形的乘积,该矩形跨越角点:左上角 (x - a, y - b) 和右下角 (x - a + r - 1, x - b + s - 1)

    如果指定 -1(默认值),则使用过滤器范围的中间值(向下舍入为整数),对于奇数大小的过滤器,这将导致过滤器在输入上居中。

    根据输入维度,锚点必须是 2D 或 3D 点,其每个范围都位于过滤器边界内([0, ..., filter_extent - 1])。锚点范围的顺序对应于过滤器范围的顺序。

    "valid" 模式下,此参数将被忽略。

    支持 per-frame 输入。

  • border (str, optional, default = ‘reflect_101’) –

    控制如何处理样本上超出边界的过滤器位置。

    支持的值为:"reflect_101""reflect_1001""wrap""clamp""constant"

    • "reflect_101"(默认),反射输入,但不重复最外层的值(dcb|abcdefghi|hgf)。

    • "reflect_1001":反射输入,包括最外层的值(cba|abcdefghi|ihg

    • "wrap":包装输入(ghi|abcdefghi|abc)。

    • "clamp":输入用最外层的值填充(aaa|abcdefghi|iii)。

    • "constant":输入用用户提供的标量(默认为零)填充。在样本内。

  • bytes_per_sample_hint (int or list of int, optional, default = [0]) –

    输出大小提示,以每样本字节为单位。

    如果指定,则位于 GPU 或页锁定主机内存中的操作符输出将被预分配以容纳此大小的样本批次。

  • dtype (nvidia.dali.types.DALIDataType, optional) –

    输出数据类型。输出类型可以是 float 或必须与输入类型相同。如果未设置,则使用输入类型。

    注意

    用于实际计算的中间类型为 float32。如果输出为整数类型,则值将被限制为输出类型范围。

  • mode (str, optional, default = ‘same’) –

    支持的值为:"same""valid"

    • "same"(默认):输入和输出大小相同,并且 border 用于处理超出边界的过滤器位置。

    • "valid":输出样本被裁剪(按 filter_extent - 1),以便所有过滤器位置完全位于输入样本内。

  • preserve (bool, optional, default = False) – 阻止操作符从图中删除,即使其输出未使用。