# tf.keras.initializers.Initializer

<br />

|---|
| [![](https://www.tensorflow.org/images/GitHub-Mark-32px.png) View source on GitHub](https://github.com/keras-team/keras/tree/v2.14.0/keras/initializers/initializers.py#L35-L129) |

Initializer base class: all Keras initializers inherit from this class.

#### View aliases


**Main aliases**

[`tf.initializers.Initializer`](https://www.tensorflow.org/api_docs/python/tf/keras/initializers/Initializer)

<br />

Initializers should implement a `__call__()` method with the following
signature:

    def __call__(self, shape, dtype=None, **kwargs):
        # returns a tensor of shape `shape` and dtype `dtype`
        # containing values drawn from a distribution of your choice.
        return tf.random.uniform(shape=shape, dtype=dtype)

Optionally, you an also implement the method `get_config()` and the class
method `from_config()` in order to support serialization -- just like with
any Keras object.

Here's a simple example: a random normal initializer.

    class ExampleRandomNormal(Initializer):
        def __init__(self, mean, stddev):
            self.mean = mean
            self.stddev = stddev

        def __call__(self, shape, dtype=None, **kwargs):
            return tf.random.normal(
                shape, mean=self.mean, stddev=self.stddev, dtype=dtype
            )

        def get_config(self):  # To support serialization
            return {"mean": self.mean, "stddev": self.stddev}

Note that we don't have to implement `from_config()` in the example above
since the constructor arguments of the class the keys in the config returned
by `get_config` are the same. In this case, the default `from_config()`
works fine.

## Methods

### `from_config`

[View source](https://github.com/keras-team/keras/tree/v2.14.0/keras/initializers/initializers.py#L96-L115)

    @classmethod
    from_config(
        config
    )

Instantiates an initializer from a configuration dictionary.

#### Example:

    initializer = RandomUniform(-1, 1)
    config = initializer.get_config()
    initializer = RandomUniform.from_config(config)

<br />

<br />

<br />

| Args ||
|---|---|
| `config` | A Python dictionary, the output of `get_config()`. |

<br />

<br />

<br />

<br />

| Returns ||
|---|---|
| An `Initializer` instance. ||

<br />

### `get_config`

[View source](https://github.com/keras-team/keras/tree/v2.14.0/keras/initializers/initializers.py#L88-L94)

    get_config()

Returns the initializer's configuration as a JSON-serializable dict.

<br />

<br />

<br />

| Returns ||
|---|---|
| A JSON-serializable Python dict. ||

<br />

### `__call__`

[View source](https://github.com/keras-team/keras/tree/v2.14.0/keras/initializers/initializers.py#L76-L86)

    __call__(
        shape, dtype=None, **kwargs
    )

Returns a tensor object initialized as specified by the initializer.

<br />

<br />

<br />

| Args ||
|---|---|
| `shape` | Shape of the tensor. |
| `dtype` | Optional dtype of the tensor. |
| `**kwargs` | Additional keyword arguments. |

<br />