标准化连续特征的预处理层。
继承自:PreprocessingLayer
、Layer
、Module
用法
tf.keras.layers.Normalization(
axis=-1, mean=None, variance=None, **kwargs
)
参数
-
axis
整数、整数元组或无。对于形状中的每个索引,一个或多个轴应该具有单独的均值和方差。例如,如果形状是(None, 5)
和axis=1
,则图层将跟踪最后一个轴的 5 个单独的均值和方差值。如果axis
设置为None
,该层将通过标量均值和方差对输入中的所有元素进行归一化。默认为 -1,其中输入的最后一个轴被假定为特征维度并按索引进行归一化。请注意,在唯一轴是批处理轴的批处理标量输入的特定情况下,默认情况下将分别对批处理中的每个索引进行规范化。在这种情况下,请考虑传递axis=None
。 -
mean
标准化期间使用的平均值。传递的值将被广播到上面保留轴的形状;如果无法广播该值,则调用该层的build()
方法时将引发错误。 -
variance
标准化期间要使用的方差值。传递的值将被广播到上面保留轴的形状;如果无法广播该值,则调用该层的build()
方法时将引发错误。
属性
-
is_adapted
图层是否已经适合数据。
该层会将输入转换并缩放到以 0 为中心且标准差为 1 的分布中。它通过预先计算数据的均值和方差并在运行时调用 (input - mean) / sqrt(var)
来实现这一点。
该层的均值和方差值必须在构造时提供或通过 adapt()
学习。 adapt()
将计算数据的均值和方差,并将它们存储为层的权重。 adapt()
应该在 fit()
, evaluate()
或 predict()
之前调用。
有关预处理层的概述和完整列表,请参阅预处理指南。
例子:
通过分析 adapt()
中的数据集来计算全局均值和方差。
adapt_data = np.array([1., 2., 3., 4., 5.], dtype='float32')
input_data = np.array([1., 2., 3.], dtype='float32')
layer = tf.keras.layers.Normalization(axis=None)
layer.adapt(adapt_data)
layer(input_data)
<tf.Tensor:shape=(3,), dtype=float32, numpy=
array([-1.4142135, -0.70710677, 0.], dtype=float32)>
计算最后一个轴上每个指标的均值和方差。
adapt_data = np.array([[0., 7., 4.],
[2., 9., 6.],
[0., 7., 4.],
[2., 9., 6.]], dtype='float32')
input_data = np.array([[0., 7., 4.]], dtype='float32')
layer = tf.keras.layers.Normalization(axis=-1)
layer.adapt(adapt_data)
layer(input_data)
<tf.Tensor:shape=(1, 3), dtype=float32, numpy=
array([0., 0., 0.], dtype=float32)>
直接传递均值和方差。
input_data = np.array([[1.], [2.], [3.]], dtype='float32')
layer = tf.keras.layers.Normalization(mean=3., variance=2.)
layer(input_data)
<tf.Tensor:shape=(3, 1), dtype=float32, numpy=
array([[-1.4142135 ],
[-0.70710677],
[ 0. ]], dtype=float32)>
相关用法
- Python tf.keras.layers.InputLayer用法及代码示例
- Python tf.keras.layers.serialize用法及代码示例
- Python tf.keras.layers.Dropout用法及代码示例
- Python tf.keras.layers.maximum用法及代码示例
- Python tf.keras.layers.LayerNormalization用法及代码示例
- Python tf.keras.layers.Conv2D用法及代码示例
- Python tf.keras.layers.RepeatVector用法及代码示例
- Python tf.keras.layers.Multiply用法及代码示例
- Python tf.keras.layers.Activation用法及代码示例
- Python tf.keras.layers.Conv1D用法及代码示例
- Python tf.keras.layers.experimental.preprocessing.PreprocessingLayer.adapt用法及代码示例
- Python tf.keras.layers.CategoryEncoding用法及代码示例
- Python tf.keras.layers.subtract用法及代码示例
- Python tf.keras.layers.experimental.preprocessing.HashedCrossing用法及代码示例
- Python tf.keras.layers.Subtract用法及代码示例
- Python tf.keras.layers.ZeroPadding3D用法及代码示例
- Python tf.keras.layers.MaxPool3D用法及代码示例
- Python tf.keras.layers.Dot用法及代码示例
- Python tf.keras.layers.UpSampling1D用法及代码示例
- Python tf.keras.layers.MultiHeadAttention用法及代码示例
注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.keras.layers.Normalization。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。