Fork the tf initializer logic to keras initializer.

PiperOrigin-RevId: 348571002
Change-Id: I753afd8a2eabb87991f3ff263a763e0e7c1531fa
This commit is contained in:
Scott Zhu 2020-12-21 20:23:35 -08:00 committed by TensorFlower Gardener
parent 646d25d159
commit dde0d4f92c
41 changed files with 226 additions and 92 deletions
tensorflow
python/keras/initializers
tools/api/golden/v2
tensorflow.initializers.-glorot-normal.pbtxttensorflow.initializers.-glorot-uniform.pbtxttensorflow.initializers.-he-normal.pbtxttensorflow.initializers.-he-uniform.pbtxttensorflow.initializers.-identity.pbtxttensorflow.initializers.-lecun-normal.pbtxttensorflow.initializers.-lecun-uniform.pbtxttensorflow.initializers.-orthogonal.pbtxttensorflow.initializers.-truncated-normal.pbtxttensorflow.initializers.-variance-scaling.pbtxttensorflow.initializers.glorot_normal.pbtxttensorflow.initializers.glorot_uniform.pbtxttensorflow.initializers.he_normal.pbtxttensorflow.initializers.he_uniform.pbtxttensorflow.initializers.identity.pbtxttensorflow.initializers.lecun_normal.pbtxttensorflow.initializers.lecun_uniform.pbtxttensorflow.initializers.orthogonal.pbtxttensorflow.initializers.truncated_normal.pbtxttensorflow.initializers.variance_scaling.pbtxttensorflow.keras.initializers.-glorot-normal.pbtxttensorflow.keras.initializers.-glorot-uniform.pbtxttensorflow.keras.initializers.-he-normal.pbtxttensorflow.keras.initializers.-he-uniform.pbtxttensorflow.keras.initializers.-identity.pbtxttensorflow.keras.initializers.-lecun-normal.pbtxttensorflow.keras.initializers.-lecun-uniform.pbtxttensorflow.keras.initializers.-orthogonal.pbtxttensorflow.keras.initializers.-truncated-normal.pbtxttensorflow.keras.initializers.-variance-scaling.pbtxttensorflow.keras.initializers.glorot_normal.pbtxttensorflow.keras.initializers.glorot_uniform.pbtxttensorflow.keras.initializers.he_normal.pbtxttensorflow.keras.initializers.he_uniform.pbtxttensorflow.keras.initializers.identity.pbtxttensorflow.keras.initializers.lecun_normal.pbtxttensorflow.keras.initializers.lecun_uniform.pbtxttensorflow.keras.initializers.orthogonal.pbtxttensorflow.keras.initializers.truncated_normal.pbtxttensorflow.keras.initializers.variance_scaling.pbtxt

View File

@ -19,12 +19,23 @@ from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
import math
from tensorflow.python.framework import constant_op
from tensorflow.python.framework import dtypes
from tensorflow.python.keras import backend
from tensorflow.python.ops import array_ops
from tensorflow.python.ops import gen_linalg_ops
from tensorflow.python.ops import init_ops_v2
from tensorflow.python.ops import linalg_ops
from tensorflow.python.ops import math_ops
from tensorflow.python.ops import random_ops
from tensorflow.python.ops import stateless_random_ops
from tensorflow.python.util.tf_export import keras_export
_PARTITION_SHAPE = 'partition_shape'
_PARTITION_OFFSET = 'partition_offset'
@keras_export('keras.initializers.Initializer')
class Initializer(object):
@ -308,7 +319,7 @@ class RandomNormal(init_ops_v2.RandomNormal, Initializer):
@keras_export('keras.initializers.TruncatedNormal',
'keras.initializers.truncated_normal',
v1=[])
class TruncatedNormal(init_ops_v2.TruncatedNormal, Initializer):
class TruncatedNormal(Initializer):
"""Initializer that generates a truncated normal distribution.
Also available via the shortcut function
@ -338,6 +349,12 @@ class TruncatedNormal(init_ops_v2.TruncatedNormal, Initializer):
always produce the same random tensor for a given shape and dtype.
"""
def __init__(self, mean=0.0, stddev=0.05, seed=None):
self.mean = mean
self.stddev = stddev
self.seed = seed
self._random_generator = _RandomGenerator(seed)
def __call__(self, shape, dtype=None, **kwargs):
"""Returns a tensor object initialized to random normal values (truncated).
@ -349,14 +366,25 @@ class TruncatedNormal(init_ops_v2.TruncatedNormal, Initializer):
`tf.keras.backend.set_floatx(float_dtype)`)
**kwargs: Additional keyword arguments.
"""
return super(TruncatedNormal, self).__call__(
shape, dtype=_get_dtype(dtype), **kwargs)
_validate_kwargs(self.__class__.__name__, kwargs)
dtype = _assert_float_dtype(_get_dtype(dtype))
if _PARTITION_SHAPE in kwargs:
shape = kwargs[_PARTITION_SHAPE]
return self._random_generator.truncated_normal(shape, self.mean,
self.stddev, dtype)
def get_config(self):
return {
'mean': self.mean,
'stddev': self.stddev,
'seed': self.seed
}
@keras_export('keras.initializers.VarianceScaling',
'keras.initializers.variance_scaling',
v1=[])
class VarianceScaling(init_ops_v2.VarianceScaling, Initializer):
class VarianceScaling(Initializer):
"""Initializer capable of adapting its scale to the shape of weights tensors.
Also available via the shortcut function
@ -395,6 +423,28 @@ class VarianceScaling(init_ops_v2.VarianceScaling, Initializer):
always produce the same random tensor for a given shape and dtype.
"""
def __init__(self,
scale=1.0,
mode='fan_in',
distribution='truncated_normal',
seed=None):
if scale <= 0.:
raise ValueError('`scale` must be positive float.')
if mode not in {'fan_in', 'fan_out', 'fan_avg'}:
raise ValueError('Invalid `mode` argument:', mode)
distribution = distribution.lower()
# Compatibility with keras-team/keras.
if distribution == 'normal':
distribution = 'truncated_normal'
if distribution not in {'uniform', 'truncated_normal',
'untruncated_normal'}:
raise ValueError('Invalid `distribution` argument:', distribution)
self.scale = scale
self.mode = mode
self.distribution = distribution
self.seed = seed
self._random_generator = _RandomGenerator(seed)
def __call__(self, shape, dtype=None, **kwargs):
"""Returns a tensor object initialized as specified by the initializer.
@ -406,14 +456,42 @@ class VarianceScaling(init_ops_v2.VarianceScaling, Initializer):
`tf.keras.backend.set_floatx(float_dtype)`)
**kwargs: Additional keyword arguments.
"""
return super(VarianceScaling, self).__call__(
shape, dtype=_get_dtype(dtype), **kwargs)
_validate_kwargs(self.__class__.__name__, kwargs)
dtype = _assert_float_dtype(_get_dtype(dtype))
scale = self.scale
fan_in, fan_out = _compute_fans(shape)
if _PARTITION_SHAPE in kwargs:
shape = kwargs[_PARTITION_SHAPE]
if self.mode == 'fan_in':
scale /= max(1., fan_in)
elif self.mode == 'fan_out':
scale /= max(1., fan_out)
else:
scale /= max(1., (fan_in + fan_out) / 2.)
if self.distribution == 'truncated_normal':
# constant from scipy.stats.truncnorm.std(a=-2, b=2, loc=0., scale=1.)
stddev = math.sqrt(scale) / .87962566103423978
return self._random_generator.truncated_normal(shape, 0.0, stddev, dtype)
elif self.distribution == 'untruncated_normal':
stddev = math.sqrt(scale)
return self._random_generator.random_normal(shape, 0.0, stddev, dtype)
else:
limit = math.sqrt(3.0 * scale)
return self._random_generator.random_uniform(shape, -limit, limit, dtype)
def get_config(self):
return {
'scale': self.scale,
'mode': self.mode,
'distribution': self.distribution,
'seed': self.seed
}
@keras_export('keras.initializers.Orthogonal',
'keras.initializers.orthogonal',
v1=[])
class Orthogonal(init_ops_v2.Orthogonal, Initializer):
class Orthogonal(Initializer):
"""Initializer that generates an orthogonal matrix.
Also available via the shortcut function `tf.keras.initializers.orthogonal`.
@ -449,6 +527,11 @@ class Orthogonal(init_ops_v2.Orthogonal, Initializer):
([pdf](https://arxiv.org/pdf/1312.6120.pdf))
"""
def __init__(self, gain=1.0, seed=None):
self.gain = gain
self.seed = seed
self._random_generator = _RandomGenerator(seed)
def __call__(self, shape, dtype=None, **kwargs):
"""Returns a tensor object initialized to an orthogonal matrix.
@ -460,14 +543,39 @@ class Orthogonal(init_ops_v2.Orthogonal, Initializer):
(via `tf.keras.backend.set_floatx(float_dtype)`)
**kwargs: Additional keyword arguments.
"""
return super(Orthogonal, self).__call__(
shape, dtype=_get_dtype(dtype), **kwargs)
_validate_kwargs(self.__class__.__name__, kwargs, support_partition=False)
dtype = _assert_float_dtype(_get_dtype(dtype))
# Check the shape
if len(shape) < 2:
raise ValueError('The tensor to initialize must be '
'at least two-dimensional')
# Flatten the input shape with the last dimension remaining
# its original shape so it works for conv2d
num_rows = 1
for dim in shape[:-1]:
num_rows *= dim
num_cols = shape[-1]
flat_shape = (max(num_cols, num_rows), min(num_cols, num_rows))
# Generate a random matrix
a = self._random_generator.random_normal(flat_shape, dtype=dtype)
# Compute the qr factorization
q, r = gen_linalg_ops.qr(a, full_matrices=False)
# Make Q uniform
d = array_ops.tensor_diag_part(r)
q *= math_ops.sign(d)
if num_rows < num_cols:
q = array_ops.matrix_transpose(q)
return self.gain * array_ops.reshape(q, shape)
def get_config(self):
return {'gain': self.gain, 'seed': self.seed}
@keras_export('keras.initializers.Identity',
'keras.initializers.identity',
v1=[])
class Identity(init_ops_v2.Identity, Initializer):
class Identity(Initializer):
"""Initializer that generates the identity matrix.
Also available via the shortcut function `tf.keras.initializers.identity`.
@ -488,6 +596,9 @@ class Identity(init_ops_v2.Identity, Initializer):
gain: Multiplicative factor to apply to the identity matrix.
"""
def __init__(self, gain=1.0):
self.gain = gain
def __call__(self, shape, dtype=None, **kwargs):
"""Returns a tensor object initialized to a 2D identity matrix.
@ -499,8 +610,16 @@ class Identity(init_ops_v2.Identity, Initializer):
(via `tf.keras.backend.set_floatx(float_dtype)`)
**kwargs: Additional keyword arguments.
"""
return super(Identity, self).__call__(
shape, dtype=_get_dtype(dtype), **kwargs)
_validate_kwargs(self.__class__.__name__, kwargs, support_partition=False)
dtype = _assert_float_dtype(_get_dtype(dtype))
if len(shape) != 2:
raise ValueError(
'Identity matrix initializer can only be used for 2D matrices.')
initializer = linalg_ops.eye(*shape, dtype=dtype)
return self.gain * initializer
def get_config(self):
return {'gain': self.gain}
@keras_export('keras.initializers.GlorotUniform',
@ -765,3 +884,98 @@ def _get_dtype(dtype):
if dtype is None:
dtype = backend.floatx()
return dtypes.as_dtype(dtype)
def _assert_float_dtype(dtype):
"""Validate and return floating point type based on `dtype`.
`dtype` must be a floating point type.
Args:
dtype: The data type to validate.
Returns:
Validated type.
Raises:
ValueError: if `dtype` is not a floating point type.
"""
dtype = dtypes.as_dtype(dtype)
if not dtype.is_floating:
raise ValueError('Expected floating point type, got %s.' % dtype)
return dtype
class _RandomGenerator(object):
"""Random generator that selects appropriate random ops."""
def __init__(self, seed=None):
super(_RandomGenerator, self).__init__()
if seed is not None:
# Stateless random ops requires 2-int seed.
self.seed = [seed, 0]
else:
self.seed = None
def random_normal(self, shape, mean=0.0, stddev=1, dtype=dtypes.float32):
"""A deterministic random normal if seed is passed."""
if self.seed:
op = stateless_random_ops.stateless_random_normal
else:
op = random_ops.random_normal
return op(
shape=shape, mean=mean, stddev=stddev, dtype=dtype, seed=self.seed)
def random_uniform(self, shape, minval, maxval, dtype):
"""A deterministic random uniform if seed is passed."""
if self.seed:
op = stateless_random_ops.stateless_random_uniform
else:
op = random_ops.random_uniform
return op(
shape=shape, minval=minval, maxval=maxval, dtype=dtype, seed=self.seed)
def truncated_normal(self, shape, mean, stddev, dtype):
"""A deterministic truncated normal if seed is passed."""
if self.seed:
op = stateless_random_ops.stateless_truncated_normal
else:
op = random_ops.truncated_normal
return op(
shape=shape, mean=mean, stddev=stddev, dtype=dtype, seed=self.seed)
def _compute_fans(shape):
"""Computes the number of input and output units for a weight shape.
Args:
shape: Integer shape tuple or TF tensor shape.
Returns:
A tuple of integer scalars (fan_in, fan_out).
"""
if len(shape) < 1: # Just to avoid errors for constants.
fan_in = fan_out = 1
elif len(shape) == 1:
fan_in = fan_out = shape[0]
elif len(shape) == 2:
fan_in = shape[0]
fan_out = shape[1]
else:
# Assuming convolution kernels (2D, 3D, or more).
# kernel shape: (..., input_depth, depth)
receptive_field_size = 1
for dim in shape[:-2]:
receptive_field_size *= dim
fan_in = shape[-2] * receptive_field_size
fan_out = shape[-1] * receptive_field_size
return int(fan_in), int(fan_out)
def _validate_kwargs(cls_name, kwargs, support_partition=True):
for kwarg in kwargs:
if kwarg not in [_PARTITION_SHAPE, _PARTITION_OFFSET]:
raise TypeError('Unknown keyword arguments: %s' % kwarg)
elif not support_partition:
raise ValueError('%s initializer doesn\'t support partition-related '
'arguments' % cls_name)

View File

@ -2,8 +2,6 @@ path: "tensorflow.initializers.GlorotNormal"
tf_class {
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.GlorotNormal\'>"
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.VarianceScaling\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.VarianceScaling\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.Initializer\'>"
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.Initializer\'>"
is_instance: "<type \'object\'>"
member_method {

View File

@ -2,8 +2,6 @@ path: "tensorflow.initializers.GlorotUniform"
tf_class {
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.GlorotUniform\'>"
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.VarianceScaling\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.VarianceScaling\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.Initializer\'>"
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.Initializer\'>"
is_instance: "<type \'object\'>"
member_method {

View File

@ -2,8 +2,6 @@ path: "tensorflow.initializers.HeNormal"
tf_class {
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.HeNormal\'>"
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.VarianceScaling\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.VarianceScaling\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.Initializer\'>"
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.Initializer\'>"
is_instance: "<type \'object\'>"
member_method {

View File

@ -2,8 +2,6 @@ path: "tensorflow.initializers.HeUniform"
tf_class {
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.HeUniform\'>"
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.VarianceScaling\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.VarianceScaling\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.Initializer\'>"
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.Initializer\'>"
is_instance: "<type \'object\'>"
member_method {

View File

@ -1,8 +1,6 @@
path: "tensorflow.initializers.Identity"
tf_class {
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.Identity\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.Identity\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.Initializer\'>"
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.Initializer\'>"
is_instance: "<type \'object\'>"
member_method {

View File

@ -2,8 +2,6 @@ path: "tensorflow.initializers.LecunNormal"
tf_class {
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.LecunNormal\'>"
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.VarianceScaling\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.VarianceScaling\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.Initializer\'>"
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.Initializer\'>"
is_instance: "<type \'object\'>"
member_method {

View File

@ -2,8 +2,6 @@ path: "tensorflow.initializers.LecunUniform"
tf_class {
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.LecunUniform\'>"
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.VarianceScaling\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.VarianceScaling\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.Initializer\'>"
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.Initializer\'>"
is_instance: "<type \'object\'>"
member_method {

View File

@ -1,8 +1,6 @@
path: "tensorflow.initializers.Orthogonal"
tf_class {
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.Orthogonal\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.Orthogonal\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.Initializer\'>"
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.Initializer\'>"
is_instance: "<type \'object\'>"
member_method {

View File

@ -1,8 +1,6 @@
path: "tensorflow.initializers.TruncatedNormal"
tf_class {
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.TruncatedNormal\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.TruncatedNormal\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.Initializer\'>"
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.Initializer\'>"
is_instance: "<type \'object\'>"
member_method {

View File

@ -1,8 +1,6 @@
path: "tensorflow.initializers.VarianceScaling"
tf_class {
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.VarianceScaling\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.VarianceScaling\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.Initializer\'>"
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.Initializer\'>"
is_instance: "<type \'object\'>"
member_method {

View File

@ -2,8 +2,6 @@ path: "tensorflow.initializers.glorot_normal"
tf_class {
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.GlorotNormal\'>"
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.VarianceScaling\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.VarianceScaling\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.Initializer\'>"
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.Initializer\'>"
is_instance: "<type \'object\'>"
member_method {

View File

@ -2,8 +2,6 @@ path: "tensorflow.initializers.glorot_uniform"
tf_class {
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.GlorotUniform\'>"
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.VarianceScaling\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.VarianceScaling\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.Initializer\'>"
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.Initializer\'>"
is_instance: "<type \'object\'>"
member_method {

View File

@ -2,8 +2,6 @@ path: "tensorflow.initializers.he_normal"
tf_class {
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.HeNormal\'>"
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.VarianceScaling\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.VarianceScaling\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.Initializer\'>"
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.Initializer\'>"
is_instance: "<type \'object\'>"
member_method {

View File

@ -2,8 +2,6 @@ path: "tensorflow.initializers.he_uniform"
tf_class {
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.HeUniform\'>"
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.VarianceScaling\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.VarianceScaling\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.Initializer\'>"
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.Initializer\'>"
is_instance: "<type \'object\'>"
member_method {

View File

@ -1,8 +1,6 @@
path: "tensorflow.initializers.identity"
tf_class {
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.Identity\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.Identity\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.Initializer\'>"
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.Initializer\'>"
is_instance: "<type \'object\'>"
member_method {

View File

@ -2,8 +2,6 @@ path: "tensorflow.initializers.lecun_normal"
tf_class {
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.LecunNormal\'>"
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.VarianceScaling\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.VarianceScaling\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.Initializer\'>"
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.Initializer\'>"
is_instance: "<type \'object\'>"
member_method {

View File

@ -2,8 +2,6 @@ path: "tensorflow.initializers.lecun_uniform"
tf_class {
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.LecunUniform\'>"
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.VarianceScaling\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.VarianceScaling\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.Initializer\'>"
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.Initializer\'>"
is_instance: "<type \'object\'>"
member_method {

View File

@ -1,8 +1,6 @@
path: "tensorflow.initializers.orthogonal"
tf_class {
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.Orthogonal\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.Orthogonal\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.Initializer\'>"
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.Initializer\'>"
is_instance: "<type \'object\'>"
member_method {

View File

@ -1,8 +1,6 @@
path: "tensorflow.initializers.truncated_normal"
tf_class {
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.TruncatedNormal\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.TruncatedNormal\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.Initializer\'>"
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.Initializer\'>"
is_instance: "<type \'object\'>"
member_method {

View File

@ -1,8 +1,6 @@
path: "tensorflow.initializers.variance_scaling"
tf_class {
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.VarianceScaling\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.VarianceScaling\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.Initializer\'>"
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.Initializer\'>"
is_instance: "<type \'object\'>"
member_method {

View File

@ -2,8 +2,6 @@ path: "tensorflow.keras.initializers.GlorotNormal"
tf_class {
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.GlorotNormal\'>"
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.VarianceScaling\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.VarianceScaling\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.Initializer\'>"
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.Initializer\'>"
is_instance: "<type \'object\'>"
member_method {

View File

@ -2,8 +2,6 @@ path: "tensorflow.keras.initializers.GlorotUniform"
tf_class {
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.GlorotUniform\'>"
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.VarianceScaling\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.VarianceScaling\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.Initializer\'>"
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.Initializer\'>"
is_instance: "<type \'object\'>"
member_method {

View File

@ -2,8 +2,6 @@ path: "tensorflow.keras.initializers.HeNormal"
tf_class {
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.HeNormal\'>"
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.VarianceScaling\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.VarianceScaling\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.Initializer\'>"
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.Initializer\'>"
is_instance: "<type \'object\'>"
member_method {

View File

@ -2,8 +2,6 @@ path: "tensorflow.keras.initializers.HeUniform"
tf_class {
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.HeUniform\'>"
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.VarianceScaling\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.VarianceScaling\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.Initializer\'>"
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.Initializer\'>"
is_instance: "<type \'object\'>"
member_method {

View File

@ -1,8 +1,6 @@
path: "tensorflow.keras.initializers.Identity"
tf_class {
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.Identity\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.Identity\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.Initializer\'>"
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.Initializer\'>"
is_instance: "<type \'object\'>"
member_method {

View File

@ -2,8 +2,6 @@ path: "tensorflow.keras.initializers.LecunNormal"
tf_class {
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.LecunNormal\'>"
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.VarianceScaling\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.VarianceScaling\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.Initializer\'>"
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.Initializer\'>"
is_instance: "<type \'object\'>"
member_method {

View File

@ -2,8 +2,6 @@ path: "tensorflow.keras.initializers.LecunUniform"
tf_class {
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.LecunUniform\'>"
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.VarianceScaling\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.VarianceScaling\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.Initializer\'>"
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.Initializer\'>"
is_instance: "<type \'object\'>"
member_method {

View File

@ -1,8 +1,6 @@
path: "tensorflow.keras.initializers.Orthogonal"
tf_class {
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.Orthogonal\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.Orthogonal\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.Initializer\'>"
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.Initializer\'>"
is_instance: "<type \'object\'>"
member_method {

View File

@ -1,8 +1,6 @@
path: "tensorflow.keras.initializers.TruncatedNormal"
tf_class {
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.TruncatedNormal\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.TruncatedNormal\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.Initializer\'>"
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.Initializer\'>"
is_instance: "<type \'object\'>"
member_method {

View File

@ -1,8 +1,6 @@
path: "tensorflow.keras.initializers.VarianceScaling"
tf_class {
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.VarianceScaling\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.VarianceScaling\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.Initializer\'>"
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.Initializer\'>"
is_instance: "<type \'object\'>"
member_method {

View File

@ -2,8 +2,6 @@ path: "tensorflow.keras.initializers.glorot_normal"
tf_class {
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.GlorotNormal\'>"
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.VarianceScaling\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.VarianceScaling\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.Initializer\'>"
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.Initializer\'>"
is_instance: "<type \'object\'>"
member_method {

View File

@ -2,8 +2,6 @@ path: "tensorflow.keras.initializers.glorot_uniform"
tf_class {
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.GlorotUniform\'>"
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.VarianceScaling\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.VarianceScaling\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.Initializer\'>"
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.Initializer\'>"
is_instance: "<type \'object\'>"
member_method {

View File

@ -2,8 +2,6 @@ path: "tensorflow.keras.initializers.he_normal"
tf_class {
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.HeNormal\'>"
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.VarianceScaling\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.VarianceScaling\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.Initializer\'>"
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.Initializer\'>"
is_instance: "<type \'object\'>"
member_method {

View File

@ -2,8 +2,6 @@ path: "tensorflow.keras.initializers.he_uniform"
tf_class {
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.HeUniform\'>"
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.VarianceScaling\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.VarianceScaling\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.Initializer\'>"
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.Initializer\'>"
is_instance: "<type \'object\'>"
member_method {

View File

@ -1,8 +1,6 @@
path: "tensorflow.keras.initializers.identity"
tf_class {
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.Identity\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.Identity\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.Initializer\'>"
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.Initializer\'>"
is_instance: "<type \'object\'>"
member_method {

View File

@ -2,8 +2,6 @@ path: "tensorflow.keras.initializers.lecun_normal"
tf_class {
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.LecunNormal\'>"
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.VarianceScaling\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.VarianceScaling\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.Initializer\'>"
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.Initializer\'>"
is_instance: "<type \'object\'>"
member_method {

View File

@ -2,8 +2,6 @@ path: "tensorflow.keras.initializers.lecun_uniform"
tf_class {
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.LecunUniform\'>"
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.VarianceScaling\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.VarianceScaling\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.Initializer\'>"
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.Initializer\'>"
is_instance: "<type \'object\'>"
member_method {

View File

@ -1,8 +1,6 @@
path: "tensorflow.keras.initializers.orthogonal"
tf_class {
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.Orthogonal\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.Orthogonal\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.Initializer\'>"
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.Initializer\'>"
is_instance: "<type \'object\'>"
member_method {

View File

@ -1,8 +1,6 @@
path: "tensorflow.keras.initializers.truncated_normal"
tf_class {
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.TruncatedNormal\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.TruncatedNormal\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.Initializer\'>"
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.Initializer\'>"
is_instance: "<type \'object\'>"
member_method {

View File

@ -1,8 +1,6 @@
path: "tensorflow.keras.initializers.variance_scaling"
tf_class {
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.VarianceScaling\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.VarianceScaling\'>"
is_instance: "<class \'tensorflow.python.ops.init_ops_v2.Initializer\'>"
is_instance: "<class \'tensorflow.python.keras.initializers.initializers_v2.Initializer\'>"
is_instance: "<type \'object\'>"
member_method {