nvidia.dali.fn.normalize#
- nvidia.dali.fn.normalize(__input, /, *, axes=[], axis_names='', batch=False, bytes_per_sample_hint=[0], ddof=0, dtype=DALIDataType.FLOAT, epsilon=0.0, mean=None, preserve=False, scale=1.0, shift=0.0, stddev=None, device=None, name=None)#
通过移除均值并除以标准差来归一化输入。
均值和标准差可以在内部为指定的轴子集计算,也可以作为
mean
和stddev
参数从外部提供。归一化按照以下公式进行
out = scale * (in - mean) / stddev + shift
该公式假设 out 和 in 是形状相等的张量,但 mean 和 stddev 可能是相同形状的张量、标量或两者的混合。
注意
该表达式遵循 numpy 广播规则。
如果给定轴被缩减,则非标量
mean
和stddev
的大小必须为 1,或者与输入的相应范围匹配。如果轴在axes
或axis_names
中列出,则认为该维度被缩减。如果axes
和axis_names
参数都不存在,则通过比较输入形状与均值/标准差参数的形状来推断缩减轴的集合,但对于批次中的所有张量,缩减轴的集合必须相同。以下是一些有效参数组合的示例
维度 0 和 2 的每样本归一化
axes = 0,2 # optional input.shape = [ [480, 640, 3], [1080, 1920, 4] ] batch = False mean.shape = [ [1, 640, 1], [1, 1920, 1] ] stddev = (not supplied)
使用这些形状,批次归一化是不可能的,因为非缩减维度在不同样本之间具有不同的范围。
维度 0 和 1 的批次归一化
axes = 0,1 # optional input.shape = [ [480, 640, 3], [1080, 1920, 3] ] batch = True mean = (scalar) stddev.shape = [ [1, 1, 3] ] ]
对于彩色图像,此示例分别归一化 3 个颜色通道,但在批次中的所有样本中进行归一化。
此算子允许序列输入并支持体积数据。
- 支持的后端
‘cpu’
‘gpu’
- 参数:
__input¶ (TensorList) – 算子的输入。
- 关键字参数:
axes¶ (int 或 list of int, optional, default = []) –
输入沿其归一化的维度索引。
默认情况下,使用所有轴,也可以按名称指定轴。有关更多信息,请参阅
axis_names
。axis_names¶ (layout str, optional, default = ‘’) –
输入中轴的名称。
轴索引取自输入布局,此参数不能与
axes
一起使用。batch¶ (bool, optional, default = False) –
如果设置为 True,则跨批次中的张量计算均值和标准差。
此参数还要求非缩减轴中的输入样本形状匹配。
bytes_per_sample_hint¶ (int 或 list of int, optional, default = [0]) –
每个样本的输出大小提示(以字节为单位)。
如果指定,则将预先分配驻留在 GPU 或页面锁定主机内存中的算子输出,以容纳此大小的样本批次。
ddof¶ (int, optional, default = 0) –
Bessel 校正的 Delta 自由度。
方差估计使用以下公式
sum(Xi - mean)**2 / (N - ddof).
当使用外部提供的标准差时,将忽略此参数。
dtype¶ (
nvidia.dali.types.DALIDataType
, optional, default = DALIDataType.FLOAT) –输出数据类型。
当使用整数类型时,请使用
shift
和scale
以提高输出类型动态范围的利用率。如果dtype
是整数类型,则超出范围的值将被钳制,非整数值将四舍五入到最接近的整数。epsilon¶ (float, optional, default = 0.0) – 添加到方差以避免除以小数值的值。
mean¶ (float 或 TensorList of float, optional) –
要从数据中减去的均值。
该值可以是标量或与输入具有相同维度的张量批次。每个维度中的范围必须与输入的值匹配或等于 1。如果范围为 1,则该值将在此维度中广播。如果未指定值,则从输入计算均值。当 batch 参数设置为 True 时,不能使用非标量均值。
preserve¶ (bool, optional, default = False) – 即使算子的输出未使用,也阻止从图中删除该算子。
scale¶ (float, optional, default = 1.0) –
应用于输出的缩放因子。
此参数对于整数输出类型很有用。
shift¶ (float, optional, default = 0.0) –
均值将在输出中映射到的值。
此参数对于无符号输出类型很有用。
stddev¶ (float 或 TensorList of float, optional) –
用于缩放数据的标准差值。
有关形状约束的更多信息,请参阅
mean
参数。如果未指定值,则从输入计算标准差。当batch
参数设置为 True 时,不能使用非标量stddev
。
另请参阅