View source on GitHub
|
A preprocessing layer that normalizes continuous features.
Inherits From: Layer, Operation
tf.keras.layers.Normalization(
axis=-1, mean=None, variance=None, invert=False, **kwargs
)
Used in the notebooks
| Used in the guide | Used in the tutorials |
|---|---|
This layer will shift and scale inputs into a distribution centered around
0 with standard deviation 1. It accomplishes this by precomputing the mean
and variance of the data, and calling (input - mean) / sqrt(var) at
runtime.
The mean and variance values for the layer must be either supplied on
construction or learned via adapt(). adapt() will compute the mean and
variance of the data and store them as the layer's weights. adapt() should
be called before fit(), evaluate(), or predict().
Examples:
Calculate a global mean and variance by analyzing the dataset in adapt().
adapt_data = np.array([1., 2., 3., 4., 5.], dtype='float32')input_data = np.array([1., 2., 3.], dtype='float32')layer = keras.layers.Normalization(axis=None)layer.adapt(adapt_data)layer(input_data)array([-1.4142135, -0.70710677, 0.], dtype=float32)
Calculate a mean and variance for each index on the last axis.
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 = keras.layers.Normalization(axis=-1)layer.adapt(adapt_data)layer(input_data)array([-1., -1., -1.], dtype=float32)
Pass the mean and variance directly.
input_data = np.array([[1.], [2.], [3.]], dtype='float32')layer = keras.layers.Normalization(mean=3., variance=2.)layer(input_data)array([[-1.4142135 ],[-0.70710677],[ 0. ]], dtype=float32)
Use the layer to de-normalize inputs (after adapting the layer).
adapt_data = np.array([[0., 7., 4.],[2., 9., 6.],[0., 7., 4.],[2., 9., 6.]], dtype='float32')input_data = np.array([[1., 2., 3.]], dtype='float32')layer = keras.layers.Normalization(axis=-1, invert=True)layer.adapt(adapt_data)layer(input_data)array([2., 10., 8.], dtype=float32)
Methods
adapt
adapt(
data
)
Computes the mean and variance of values in a dataset.
Calling adapt() on a Normalization layer is an alternative to
passing in mean and variance arguments during layer construction. A
Normalization layer should always either be adapted over a dataset or
passed mean and variance.
During adapt(), the layer will compute a mean and variance
separately for each position in each axis specified by the axis
argument. To calculate a single mean and variance over the input
data, simply pass axis=None to the layer.
| Arg | |
|---|---|
data
|
The data to train on. It can be passed either as a
tf.data.Dataset, as a NumPy array, or as a backend-native
eager tensor.
If a dataset, it must be batched. Keras will assume that the
data is batched, and if that assumption doesn't hold, the mean
and variance may be incorrectly computed.
|
finalize_state
finalize_state()
from_config
@classmethodfrom_config( config )
Creates a layer from its config.
This method is the reverse of get_config,
capable of instantiating the same layer from the config
dictionary. It does not handle layer connectivity
(handled by Network), nor weights (handled by set_weights).
| Args | |
|---|---|
config
|
A Python dictionary, typically the output of get_config. |
| Returns | |
|---|---|
| A layer instance. |
symbolic_call
symbolic_call(
*args, **kwargs
)
View source on GitHub