nvidia.dali.fn.experimental.tensor_resize#

nvidia.dali.fn.experimental.tensor_resize(__input, /, *, alignment=[0.5], antialias=True, axes=None, axis_names=None, bytes_per_sample_hint=[0], dtype=None, interp_type=DALIInterpType.INTERP_LINEAR, mag_filter=DALIInterpType.INTERP_LINEAR, max_size=None, min_filter=DALIInterpType.INTERP_LINEAR, minibatch_size=32, mode='default', preserve=False, roi_end=None, roi_relative=False, roi_start=None, scales=None, size_rounding='round', sizes=None, subpixel_scale=True, temp_buffer_hint=0, device=None, name=None)#

调整张量大小。

此操作符允许序列输入,并支持体积数据。

支持的后端
  • ‘cpu’

  • ‘gpu’

参数:

__input (TensorList) – 算子的输入。

关键词参数:
  • alignment (float 或 list of float 或 TensorList of float, 可选, 默认 = [0.5]) –

    确定使用缩放比例(提供或计算)时 ROI 的位置。

    实际输出大小必须为整数,并且可能与作为输入(或 ROI)大小乘以缩放因子计算的“理想”输出大小不同。在这种情况下,输出大小将四舍五入(根据 size_rounding 策略),并且需要调整输入 ROI 以保持缩放因子。此参数定义 ROI 的哪个相对点应保留其在输出中的位置。

    此点计算为 center = (1 - alignment) * roi_start + alignment * roi_end。Alignment 0.0 表示与 ROI 的起点对齐,0.5 与区域的中心对齐,1.0 与终点对齐。请注意,当未指定 ROI 时,将假定 roi_start=0 和 roi_end=input_size。

    当使用 0.5(默认值)时,调整大小操作具有翻转不变属性(调整大小后翻转在数学上等效于翻转后调整大小)。

    此参数的值包含与为尺寸/比例提供的维度一样多的元素。如果仅提供一个值,则将其应用于所有维度。

  • antialias (bool, 可选, 默认 = True) –

    如果启用,则在缩小比例时应用抗锯齿滤波器。

    注意

    最近邻插值不支持抗锯齿。

  • axes (intlist of int, 可选) –

    指代 sizes, scales, max_size, roi_start, roi_end 的维度索引。

    接受范围是 [-ndim, ndim-1]。负索引从末尾计数。

    默认情况下,假定所有维度。axis_namesaxes 参数互斥。

  • axis_names (layout str, 可选) –

    指代 sizes, scales, max_size, roi_start, roi_end 的轴名称。

    默认情况下,假定所有维度。axis_namesaxes 参数互斥。

  • bytes_per_sample_hint (int 或 list of int, 可选, 默认 = [0]) –

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

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

  • dtype (nvidia.dali.types.DALIDataType, 可选) –

    输出数据类型。

    必须与输入类型或 float 相同。如果未设置,则使用输入类型。

  • interp_type (nvidia.dali.types.DALIInterpType 或 TensorList of nvidia.dali.types.DALIInterpType, 可选, 默认 = DALIInterpType.INTERP_LINEAR) –

    要使用的插值类型。

    使用 min_filtermag_filter 为缩小和放大指定不同的滤波。

    注意

    现在不建议使用 INTERP_TRIANGULAR,应将其替换为

    启用 antialias 的 INTERP_LINEAR 组合。

  • mag_filter (nvidia.dali.types.DALIInterpType 或 TensorList of nvidia.dali.types.DALIInterpType, 可选, 默认 = DALIInterpType.INTERP_LINEAR) – 放大时使用的滤波器。

  • max_size (floatlist of float, 可选) –

    输出大小的限制。

    当操作符配置为保持宽高比并且仅指定较小尺寸时,其他尺寸可能会变得非常大。当使用 resize_shorter 参数或 “not_smaller” 模式或某些范围未指定时,可能会发生这种情况。

    此参数限制了输出可以变得多大。可以为每个轴或所有轴统一指定此值。

    注意

    当与 “not_smaller” 模式或 resize_shorter 参数一起使用时,max_size 优先,并且保持宽高比 - 例如,使用 mode="not_smaller", size=800, max_size=1400 调整大小,大小为 1200x600 的图像将调整为 1400x700。

  • min_filter (nvidia.dali.types.DALIInterpType 或 TensorList of nvidia.dali.types.DALIInterpType, 可选, 默认 = DALIInterpType.INTERP_LINEAR) – 缩小时使用的滤波器。

  • minibatch_size (int, 可选, 默认 = 32) – 内核调用中处理的最大图像数。

  • mode (str, 可选, 默认 = ‘default’) –

    调整大小模式。

    以下是支持的模式列表

    • "default" - 图像调整为指定大小。
      缺失的范围将使用提供的范围的平均比例进行缩放。
    • "stretch" - 图像调整为指定大小。
      缺失的范围根本不缩放。
    • "not_larger" - 图像调整大小,保持宽高比,以便输出图像的任何范围都不超过指定大小。
      例如,1280x720 的图像,所需的输出大小为 640x480,实际产生 640x360 的输出。
    • "not_smaller" - 图像调整大小,保持宽高比,以便输出图像的任何范围都不小于指定大小。
      例如,640x480 图像,所需的输出大小为 1920x1080,实际产生 1920x1440 的输出。

      此参数与 resize_longerresize_shorter 互斥

  • preserve (bool, 可选, 默认 = False) – 即使操作符的输出未使用,也阻止将其从图中删除。

  • roi_end (floatlist of floatTensorList of float, 可选) –

    输入感兴趣区域 (ROI) 的结束位置。

    必须与 roi_start 一起指定。坐标遵循张量形状顺序,与 size 相同。坐标可以是绝对坐标(以像素为单位,这是默认值)或相对坐标 (0..1),具体取决于 relative_roi 参数的值。如果任何维度中 ROI 原点大于 ROI 终点,则该区域在该维度中翻转。

  • roi_relative (bool, 可选, 默认 = False) – 如果为 true,则 ROI 坐标相对于输入大小,其中 0 表示顶部/左侧,1 表示底部/右侧

  • roi_start (floatlist of floatTensorList of float, 可选) –

    输入感兴趣区域 (ROI) 的起始位置。

    必须与 roi_end 一起指定。坐标遵循张量形状顺序,与 size 相同。坐标可以是绝对坐标(以像素为单位,这是默认值)或相对坐标 (0..1),具体取决于 relative_roi 参数的值。如果任何维度中 ROI 原点大于 ROI 终点,则该区域在该维度中翻转。

  • scales (floatlist of floatTensorList of float, 可选) –

    缩放因子。

    结果输出大小计算为 out_size = size_rounding(scale_factor * original_size)。有关支持的舍入策略列表,请参见 size_rounding

    当提供 axes 时,缩放因子值指代指定的轴。注意:参数 sizesscales 互斥。

  • size_rounding (str, 可选, 默认 = ‘round’) –

    确定使用比例时的舍入策略。

    可能的值包括:* | "round" - 将结果大小四舍五入到最接近的整数值,对于中间值,则远离零进行四舍五入。 * | "truncate" - 丢弃结果大小的小数部分。 * | "ceil" - 将结果大小向上舍入到下一个整数值。

  • sizes (floatlist of floatTensorList of float, 可选) –

    输出大小。

    当提供 axes 时,size 值指的是指定的轴。注意:参数 sizesscales 是互斥的。

  • subpixel_scale (bool, 可选, 默认值 = True) –

    如果为 True,则直接指定或计算出的 fractional sizes 将导致调整输入 ROI 以保持缩放比例因子。

    否则,将调整缩放比例因子,以便源图像映射到四舍五入后的输出大小。

  • temp_buffer_hint (int, 可选, 默认值 = 0) –

    用于重采样的临时缓冲区的初始大小(以字节为单位)。

    注意

    此参数在 CPU 变体中被忽略。