標準化連續特征的預處理層。
繼承自: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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。