nvidia.dali.fn.crop_mirror_normalize#

nvidia.dali.fn.crop_mirror_normalize(__input, /, *, bytes_per_sample_hint=[0], crop=None, crop_d=0.0, crop_h=0.0, crop_pos_x=0.5, crop_pos_y=0.5, crop_pos_z=0.5, crop_w=0.0, dtype=DALIDataType.FLOAT, fill_values=[0.0], mean=[0.0], mirror=0, out_of_bounds_policy='error', output_layout='CHW', pad_output=False, preserve=False, rounding='round', scale=1.0, shift=0.0, std=[1.0], device=None, name=None)#

执行融合的裁剪、归一化、格式转换(NHWC 到 NCHW,如果需要)和类型转换。

归一化采用输入图像,并使用以下公式生成输出

output = scale * (input - mean) / std + shift

注意

如果未指定裁剪参数,则只会进行镜像和归一化。

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

支持的后端
  • ‘cpu’

  • ‘gpu’

参数:

__input (TensorList ('HWC', 'CHW', 'DHWC', 'CDHW', 'FHWC', 'FCHW', 'CFHW', 'FDHWC', 'FCDHW', 'CFDHW')) – 运算符的输入。

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

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

    如果指定,则将预先分配驻留在 GPU 或页锁定主机内存中的运算符输出,以容纳此大小的样本批次。

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

    裁剪图像的形状,指定为值列表(例如,2D 裁剪的 (crop_H, crop_W) 和体积裁剪的 (crop_D, crop_H, crop_W))。

    提供 crop 参数与提供单独的参数(如 crop_dcrop_hcrop_w)不兼容。

  • crop_d (float 或 TensorList of float, 可选, 默认 = 0.0) –

    适用于体积输入;裁剪窗口深度(以体素为单位)。

    crop_wcrop_hcrop_d 必须一起指定。为 crop_wcrop_hcrop_d 提供值与提供固定裁剪窗口尺寸(参数 crop)不兼容。

  • crop_h (float 或 TensorList of float, 可选, 默认 = 0.0) –

    裁剪窗口高度(以像素为单位)。

    crop_wcrop_h 提供值与提供固定裁剪窗口尺寸(参数 crop)不兼容。

  • crop_pos_x (float 或 TensorList of float, 可选, 默认 = 0.5) –

    裁剪窗口水平位置的归一化值 (0.0 - 1.0)(左上角)。

    实际位置计算为 crop_x = crop_x_norm * (W - crop_W),其中 crop_x_norm 是归一化位置,W 是图像宽度,crop_W 是裁剪窗口宽度。

    有关 crop_x 如何转换为整数值的更多详细信息,请参阅 rounding 参数。

  • crop_pos_y (float 或 TensorList of float, 可选, 默认 = 0.5) –

    裁剪窗口起始位置(通常为左上角)的归一化垂直位置 (0.0 - 1.0)。

    实际位置计算为 crop_y = crop_y_norm * (H - crop_H),其中 crop_y_norm 是归一化位置,H 是图像高度,crop_H 是裁剪窗口高度。

    有关 crop_y 如何转换为整数值的更多详细信息,请参阅 rounding 参数。

  • crop_pos_z (float 或 TensorList of float, 可选, 默认 = 0.5) –

    适用于体积输入。

    裁剪窗口法线位置的归一化值 (0.0 - 1.0)(前平面)。实际位置计算为 crop_z = crop_z_norm * (D - crop_D),其中 crop_z_norm 是归一化位置,D 是图像深度,crop_D 是裁剪窗口深度。

    有关 crop_z 如何转换为整数值的更多详细信息,请参阅 rounding 参数。

  • crop_w (float 或 TensorList of float, 可选, 默认 = 0.0) –

    裁剪窗口宽度(以像素为单位)。

    crop_wcrop_h 提供值与提供固定裁剪窗口尺寸(参数 crop)不兼容。

  • dtype (nvidia.dali.types.DALIDataType, 可选, 默认 = DALIDataType.FLOAT) –

    输出数据类型。

    支持的类型:FLOATFLOAT16INT8UINT8

  • fill_values (float 或 list of float, 可选, 默认 = [0.0]) –

    确定填充值,仅在 out_of_bounds_policy 设置为“pad”时相关。

    如果提供标量值,它将用于所有通道。如果提供多个值,则值的数量和通道必须相同(输出切片中维度 C 的范围)。

  • image_type (nvidia.dali.types.DALIImageType) –

    警告

    参数 image_type 不再使用,将在未来的版本中移除。

  • mean (float 或 list of float 或 TensorList of float, 可选, 默认 = [0.0]) – 用于图像归一化的平均像素值。

  • mirror (int 或 TensorList of int, 可选, 默认 = 0) – 如果非零,图像将水平翻转(镜像)。

  • out_of_bounds_policy (str, 可选, 默认 = ‘error’) –

    确定在对输入进行越界区域切片时的策略。

    以下是支持值的列表

    • "error" (默认): 尝试在输入边界之外进行切片将产生错误。

    • "pad": 将根据需要使用零或使用 fill_values 参数指定的任何其他值填充输入。

    • "trim_to_shape": 切片窗口将裁剪到输入的边界。

  • output_dtype (nvidia.dali.types.DALIDataType) –

    警告

    参数 output_dtypedtype 的已弃用的别名。请改用 dtype

  • output_layout (layout str, 可选, 默认 = ‘CHW’) – 输出的张量数据布局。

  • pad_output (bool, 可选, 默认 = False) –

    确定是否填充输出,以便通道数是 2 的幂。

    用于填充的值由 fill_values 参数确定。

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

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

    确定用于将窗口的起始坐标转换为整数值的舍入函数(请参阅 crop_pos_xcrop_pos_ycrop_pos_z)。

    可能的值为

    • "round" - 四舍五入到最接近的整数值,中间情况四舍五入到远离零的值。
    • "truncate" - 丢弃数字的小数部分(向零截断)。

  • scale (float, 可选, 默认 = 1.0) –

    结果乘以的值。

    当使用整数输出以提高动态范围利用率时,此参数很有用。

  • shift (float, 可选, 默认 = 0.0) –

    添加到(缩放)结果的值。

    当使用无符号整数输出以提高动态范围利用率时,此参数很有用。

  • std (float 或 list of float 或 TensorList of float, 可选, 默认 = [1.0]) – 用于图像归一化的标准差值。