View source on GitHub |
Initializer capable of adapting its scale to the shape of weights tensors.
Inherits From: VarianceScaling
tf.compat.v1.keras.initializers.he_uniform(
seed=None
)
Migrate to TF2
Although it is a legacy compat.v1
API, this symbol is compatible with eager
execution and tf.function
.
To switch to TF2 APIs, move to using either
tf.initializers.variance_scaling
or tf.keras.initializers.VarianceScaling
(neither from compat.v1
) and
pass the dtype when calling the initializer.
Structural Mapping to TF2
Before:
initializer = tf.compat.v1.variance_scaling_initializer(
scale=scale,
mode=mode,
distribution=distribution
seed=seed,
dtype=dtype)
weight_one = tf.Variable(initializer(shape_one))
weight_two = tf.Variable(initializer(shape_two))
After:
initializer = tf.keras.initializers.VarianceScaling(
scale=scale,
mode=mode,
distribution=distribution
seed=seed)
weight_one = tf.Variable(initializer(shape_one, dtype=dtype))
weight_two = tf.Variable(initializer(shape_two, dtype=dtype))
How to Map Arguments
TF1 Arg Name | TF2 Arg Name | Note |
---|---|---|
scale |
scale |
No change to defaults |
mode |
mode |
No change to defaults |
distribution
|
distribution
|
No change to defaults. 'normal' maps to 'truncated_normal' |
seed |
seed |
|
dtype
|
dtype
|
The TF2 api only takes it
as a __call__ arg, not a constructor arg. |
partition_info |
- | (__call__ arg in TF1) Not supported |
Description
With distribution="truncated_normal" or "untruncated_normal"
,
samples are drawn from a truncated/untruncated normal
distribution with a mean of zero and a standard deviation (after truncation,
if used) stddev = sqrt(scale / n)
where n is:
- number of input units in the weight tensor, if mode = "fan_in"
- number of output units, if mode = "fan_out"
- average of the numbers of input and output units, if mode = "fan_avg"
With distribution="uniform"
, samples are drawn from a uniform distribution
within [-limit, limit], with limit = sqrt(3 * scale / n)
.
Args | |
---|---|
scale
|
Scaling factor (positive float). |
mode
|
One of "fan_in", "fan_out", "fan_avg". |
distribution
|
Random distribution to use. One of "normal", "uniform". |
seed
|
A Python integer. Used to create random seeds. See
tf.compat.v1.set_random_seed for behavior.
|
dtype
|
Default data type, used if no dtype argument is provided when
calling the initializer. Only floating point types are supported.
|
Raises | |
---|---|
ValueError
|
In case of an invalid value for the "scale", mode" or "distribution" arguments. |
Methods
from_config
@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)
Args | |
---|---|
config
|
A Python dictionary. It will typically be the output of
get_config .
|
Returns | |
---|---|
An Initializer instance. |
get_config
get_config()
Returns the configuration of the initializer as a JSON-serializable dict.
Returns | |
---|---|
A JSON-serializable Python dict. |
__call__
__call__(
shape, dtype=None, partition_info=None
)
Returns a tensor object initialized as specified by the initializer.
Args | |
---|---|
shape
|
Shape of the tensor. |
dtype
|
Optional dtype of the tensor. If not provided use the initializer dtype. |
partition_info
|
Optional information about the possible partitioning of a tensor. |