View source on GitHub
  
 | 
Initializer capable of adapting its scale to the shape of weights tensors.
tf.compat.v1.keras.initializers.VarianceScaling(
    scale=1.0,
    mode='fan_in',
    distribution='truncated_normal',
    seed=None,
    dtype=tf.dtypes.float32
)
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
@classmethodfrom_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. | 
    View source on GitHub