nvidia.dali.fn.random_crop_generator#

nvidia.dali.fn.random_crop_generator(__input, /, *, bytes_per_sample_hint=[0], num_attempts=10, preserve=False, random_area=[0.08, 1.0], random_aspect_ratio=[0.75, 1.333333], seed=-1, device=None, name=None)#

生成一个裁剪窗口,其区域和宽高比是随机选择的。

期望一个一维输入,表示我们要裁剪的输入的形状 (HW 或 HWC 表示)。

生成两个输出,分别表示裁剪窗口的锚点和形状。

此算子的输出(锚点和形状)可以馈送到 fn.slicefn.decoders.image_slice 或任何其他接受感兴趣区域的算子。例如

crop_anchor, crop_shape = fn.random_crop_generator(image_shapes)
images_crop = fn.slice(images, start=crop_anchor, shape=crop_shape, axes=[0, 1])
支持的后端
  • ‘cpu’

参数:

__input (TensorList) – 算子的输入。

关键字参数:
  • bytes_per_sample_hint (int 或 list of int, 可选, 默认 = [0]) –

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

    如果指定,则算子的输出(位于 GPU 或页锁定主机内存中)将被预分配,以适应此大小的样本批次。

  • num_attempts (int, 可选, 默认 = 10) – 用于选择随机区域和宽高比的最大尝试次数。

  • preserve (bool, 可选, 默认 = False) – 阻止算子从图中移除,即使其输出未使用。

  • random_area (float 或 list of float, 可选, 默认 = [0.08, 1.0]) –

    选择随机区域比例 A 的范围。

    裁剪图像的面积将等于 A * 原始图像的面积。

  • random_aspect_ratio (float 或 list of float, 可选, 默认 = [0.75, 1.333333]) – 选择随机宽高比(宽度/高度)的范围。

  • seed (int, 可选, 默认 = -1) – 随机种子;如果未设置,将自动分配一个。