diff --git a/tensorflow/python/keras/initializers/initializers_v2.py b/tensorflow/python/keras/initializers/initializers_v2.py index 0e4fd66027e..1eaf0af90f7 100644 --- a/tensorflow/python/keras/initializers/initializers_v2.py +++ b/tensorflow/python/keras/initializers/initializers_v2.py @@ -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) diff --git a/tensorflow/tools/api/golden/v2/tensorflow.initializers.-glorot-normal.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.initializers.-glorot-normal.pbtxt index 0df534b7567..529f7158a5b 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.initializers.-glorot-normal.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.initializers.-glorot-normal.pbtxt @@ -2,8 +2,6 @@ path: "tensorflow.initializers.GlorotNormal" tf_class { is_instance: "" is_instance: "" - is_instance: "" - is_instance: "" is_instance: "" is_instance: "" member_method { diff --git a/tensorflow/tools/api/golden/v2/tensorflow.initializers.-glorot-uniform.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.initializers.-glorot-uniform.pbtxt index 15db2f10eb5..1e87df98b74 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.initializers.-glorot-uniform.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.initializers.-glorot-uniform.pbtxt @@ -2,8 +2,6 @@ path: "tensorflow.initializers.GlorotUniform" tf_class { is_instance: "" is_instance: "" - is_instance: "" - is_instance: "" is_instance: "" is_instance: "" member_method { diff --git a/tensorflow/tools/api/golden/v2/tensorflow.initializers.-he-normal.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.initializers.-he-normal.pbtxt index c23aa7827c3..30754358a03 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.initializers.-he-normal.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.initializers.-he-normal.pbtxt @@ -2,8 +2,6 @@ path: "tensorflow.initializers.HeNormal" tf_class { is_instance: "" is_instance: "" - is_instance: "" - is_instance: "" is_instance: "" is_instance: "" member_method { diff --git a/tensorflow/tools/api/golden/v2/tensorflow.initializers.-he-uniform.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.initializers.-he-uniform.pbtxt index 70412ed4252..28c7048b6ba 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.initializers.-he-uniform.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.initializers.-he-uniform.pbtxt @@ -2,8 +2,6 @@ path: "tensorflow.initializers.HeUniform" tf_class { is_instance: "" is_instance: "" - is_instance: "" - is_instance: "" is_instance: "" is_instance: "" member_method { diff --git a/tensorflow/tools/api/golden/v2/tensorflow.initializers.-identity.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.initializers.-identity.pbtxt index b6f3b9fe45d..b0df723bbd2 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.initializers.-identity.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.initializers.-identity.pbtxt @@ -1,8 +1,6 @@ path: "tensorflow.initializers.Identity" tf_class { is_instance: "" - is_instance: "" - is_instance: "" is_instance: "" is_instance: "" member_method { diff --git a/tensorflow/tools/api/golden/v2/tensorflow.initializers.-lecun-normal.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.initializers.-lecun-normal.pbtxt index a392394e113..8a5fd180cad 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.initializers.-lecun-normal.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.initializers.-lecun-normal.pbtxt @@ -2,8 +2,6 @@ path: "tensorflow.initializers.LecunNormal" tf_class { is_instance: "" is_instance: "" - is_instance: "" - is_instance: "" is_instance: "" is_instance: "" member_method { diff --git a/tensorflow/tools/api/golden/v2/tensorflow.initializers.-lecun-uniform.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.initializers.-lecun-uniform.pbtxt index d863752d047..3a0d9ee6c53 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.initializers.-lecun-uniform.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.initializers.-lecun-uniform.pbtxt @@ -2,8 +2,6 @@ path: "tensorflow.initializers.LecunUniform" tf_class { is_instance: "" is_instance: "" - is_instance: "" - is_instance: "" is_instance: "" is_instance: "" member_method { diff --git a/tensorflow/tools/api/golden/v2/tensorflow.initializers.-orthogonal.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.initializers.-orthogonal.pbtxt index c918524bf17..cac6ffc7069 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.initializers.-orthogonal.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.initializers.-orthogonal.pbtxt @@ -1,8 +1,6 @@ path: "tensorflow.initializers.Orthogonal" tf_class { is_instance: "" - is_instance: "" - is_instance: "" is_instance: "" is_instance: "" member_method { diff --git a/tensorflow/tools/api/golden/v2/tensorflow.initializers.-truncated-normal.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.initializers.-truncated-normal.pbtxt index 53b9f2039e5..02712efdba3 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.initializers.-truncated-normal.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.initializers.-truncated-normal.pbtxt @@ -1,8 +1,6 @@ path: "tensorflow.initializers.TruncatedNormal" tf_class { is_instance: "" - is_instance: "" - is_instance: "" is_instance: "" is_instance: "" member_method { diff --git a/tensorflow/tools/api/golden/v2/tensorflow.initializers.-variance-scaling.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.initializers.-variance-scaling.pbtxt index bb9a8470467..bb6c1932525 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.initializers.-variance-scaling.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.initializers.-variance-scaling.pbtxt @@ -1,8 +1,6 @@ path: "tensorflow.initializers.VarianceScaling" tf_class { is_instance: "" - is_instance: "" - is_instance: "" is_instance: "" is_instance: "" member_method { diff --git a/tensorflow/tools/api/golden/v2/tensorflow.initializers.glorot_normal.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.initializers.glorot_normal.pbtxt index 30e92a31858..78d7748976f 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.initializers.glorot_normal.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.initializers.glorot_normal.pbtxt @@ -2,8 +2,6 @@ path: "tensorflow.initializers.glorot_normal" tf_class { is_instance: "" is_instance: "" - is_instance: "" - is_instance: "" is_instance: "" is_instance: "" member_method { diff --git a/tensorflow/tools/api/golden/v2/tensorflow.initializers.glorot_uniform.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.initializers.glorot_uniform.pbtxt index fc43bef7141..9808f8bdcb2 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.initializers.glorot_uniform.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.initializers.glorot_uniform.pbtxt @@ -2,8 +2,6 @@ path: "tensorflow.initializers.glorot_uniform" tf_class { is_instance: "" is_instance: "" - is_instance: "" - is_instance: "" is_instance: "" is_instance: "" member_method { diff --git a/tensorflow/tools/api/golden/v2/tensorflow.initializers.he_normal.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.initializers.he_normal.pbtxt index 0cade59f8de..4ae0d68cb1a 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.initializers.he_normal.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.initializers.he_normal.pbtxt @@ -2,8 +2,6 @@ path: "tensorflow.initializers.he_normal" tf_class { is_instance: "" is_instance: "" - is_instance: "" - is_instance: "" is_instance: "" is_instance: "" member_method { diff --git a/tensorflow/tools/api/golden/v2/tensorflow.initializers.he_uniform.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.initializers.he_uniform.pbtxt index 3b43fd2c763..f5bbf39a922 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.initializers.he_uniform.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.initializers.he_uniform.pbtxt @@ -2,8 +2,6 @@ path: "tensorflow.initializers.he_uniform" tf_class { is_instance: "" is_instance: "" - is_instance: "" - is_instance: "" is_instance: "" is_instance: "" member_method { diff --git a/tensorflow/tools/api/golden/v2/tensorflow.initializers.identity.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.initializers.identity.pbtxt index e857e75a84c..89682722748 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.initializers.identity.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.initializers.identity.pbtxt @@ -1,8 +1,6 @@ path: "tensorflow.initializers.identity" tf_class { is_instance: "" - is_instance: "" - is_instance: "" is_instance: "" is_instance: "" member_method { diff --git a/tensorflow/tools/api/golden/v2/tensorflow.initializers.lecun_normal.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.initializers.lecun_normal.pbtxt index 8dfe4da3ea4..a9af6976a09 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.initializers.lecun_normal.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.initializers.lecun_normal.pbtxt @@ -2,8 +2,6 @@ path: "tensorflow.initializers.lecun_normal" tf_class { is_instance: "" is_instance: "" - is_instance: "" - is_instance: "" is_instance: "" is_instance: "" member_method { diff --git a/tensorflow/tools/api/golden/v2/tensorflow.initializers.lecun_uniform.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.initializers.lecun_uniform.pbtxt index df8dfefc69c..fd91a6aa6f8 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.initializers.lecun_uniform.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.initializers.lecun_uniform.pbtxt @@ -2,8 +2,6 @@ path: "tensorflow.initializers.lecun_uniform" tf_class { is_instance: "" is_instance: "" - is_instance: "" - is_instance: "" is_instance: "" is_instance: "" member_method { diff --git a/tensorflow/tools/api/golden/v2/tensorflow.initializers.orthogonal.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.initializers.orthogonal.pbtxt index fa90188c798..81cee0aad44 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.initializers.orthogonal.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.initializers.orthogonal.pbtxt @@ -1,8 +1,6 @@ path: "tensorflow.initializers.orthogonal" tf_class { is_instance: "" - is_instance: "" - is_instance: "" is_instance: "" is_instance: "" member_method { diff --git a/tensorflow/tools/api/golden/v2/tensorflow.initializers.truncated_normal.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.initializers.truncated_normal.pbtxt index 9750914aeb0..4d0a4001e3e 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.initializers.truncated_normal.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.initializers.truncated_normal.pbtxt @@ -1,8 +1,6 @@ path: "tensorflow.initializers.truncated_normal" tf_class { is_instance: "" - is_instance: "" - is_instance: "" is_instance: "" is_instance: "" member_method { diff --git a/tensorflow/tools/api/golden/v2/tensorflow.initializers.variance_scaling.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.initializers.variance_scaling.pbtxt index 5cff80eba00..97bc11c545d 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.initializers.variance_scaling.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.initializers.variance_scaling.pbtxt @@ -1,8 +1,6 @@ path: "tensorflow.initializers.variance_scaling" tf_class { is_instance: "" - is_instance: "" - is_instance: "" is_instance: "" is_instance: "" member_method { diff --git a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-glorot-normal.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-glorot-normal.pbtxt index a9f559347bd..d332e0b00f6 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-glorot-normal.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-glorot-normal.pbtxt @@ -2,8 +2,6 @@ path: "tensorflow.keras.initializers.GlorotNormal" tf_class { is_instance: "" is_instance: "" - is_instance: "" - is_instance: "" is_instance: "" is_instance: "" member_method { diff --git a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-glorot-uniform.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-glorot-uniform.pbtxt index 255b1c14f13..10afe978052 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-glorot-uniform.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-glorot-uniform.pbtxt @@ -2,8 +2,6 @@ path: "tensorflow.keras.initializers.GlorotUniform" tf_class { is_instance: "" is_instance: "" - is_instance: "" - is_instance: "" is_instance: "" is_instance: "" member_method { diff --git a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-he-normal.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-he-normal.pbtxt index 5b53b41efd6..d59d94aa85f 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-he-normal.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-he-normal.pbtxt @@ -2,8 +2,6 @@ path: "tensorflow.keras.initializers.HeNormal" tf_class { is_instance: "" is_instance: "" - is_instance: "" - is_instance: "" is_instance: "" is_instance: "" member_method { diff --git a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-he-uniform.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-he-uniform.pbtxt index 41fd8a2e135..ac1e5fc12f6 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-he-uniform.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-he-uniform.pbtxt @@ -2,8 +2,6 @@ path: "tensorflow.keras.initializers.HeUniform" tf_class { is_instance: "" is_instance: "" - is_instance: "" - is_instance: "" is_instance: "" is_instance: "" member_method { diff --git a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-identity.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-identity.pbtxt index 1a02232371b..0e763b5ded3 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-identity.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-identity.pbtxt @@ -1,8 +1,6 @@ path: "tensorflow.keras.initializers.Identity" tf_class { is_instance: "" - is_instance: "" - is_instance: "" is_instance: "" is_instance: "" member_method { diff --git a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-lecun-normal.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-lecun-normal.pbtxt index 6ef45b229ac..00960450ed9 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-lecun-normal.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-lecun-normal.pbtxt @@ -2,8 +2,6 @@ path: "tensorflow.keras.initializers.LecunNormal" tf_class { is_instance: "" is_instance: "" - is_instance: "" - is_instance: "" is_instance: "" is_instance: "" member_method { diff --git a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-lecun-uniform.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-lecun-uniform.pbtxt index d2e590a8855..7ef39b5c19f 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-lecun-uniform.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-lecun-uniform.pbtxt @@ -2,8 +2,6 @@ path: "tensorflow.keras.initializers.LecunUniform" tf_class { is_instance: "" is_instance: "" - is_instance: "" - is_instance: "" is_instance: "" is_instance: "" member_method { diff --git a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-orthogonal.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-orthogonal.pbtxt index e1d23edfd09..4e50862d96c 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-orthogonal.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-orthogonal.pbtxt @@ -1,8 +1,6 @@ path: "tensorflow.keras.initializers.Orthogonal" tf_class { is_instance: "" - is_instance: "" - is_instance: "" is_instance: "" is_instance: "" member_method { diff --git a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-truncated-normal.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-truncated-normal.pbtxt index 14fe9547976..08f21648931 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-truncated-normal.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-truncated-normal.pbtxt @@ -1,8 +1,6 @@ path: "tensorflow.keras.initializers.TruncatedNormal" tf_class { is_instance: "" - is_instance: "" - is_instance: "" is_instance: "" is_instance: "" member_method { diff --git a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-variance-scaling.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-variance-scaling.pbtxt index c0e3d3585b8..5e6d5f35c5c 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-variance-scaling.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-variance-scaling.pbtxt @@ -1,8 +1,6 @@ path: "tensorflow.keras.initializers.VarianceScaling" tf_class { is_instance: "" - is_instance: "" - is_instance: "" is_instance: "" is_instance: "" member_method { diff --git a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.glorot_normal.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.glorot_normal.pbtxt index 5bca6a37ee1..40f65fb4355 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.glorot_normal.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.glorot_normal.pbtxt @@ -2,8 +2,6 @@ path: "tensorflow.keras.initializers.glorot_normal" tf_class { is_instance: "" is_instance: "" - is_instance: "" - is_instance: "" is_instance: "" is_instance: "" member_method { diff --git a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.glorot_uniform.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.glorot_uniform.pbtxt index 3a6cbe15e18..c42584c3a14 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.glorot_uniform.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.glorot_uniform.pbtxt @@ -2,8 +2,6 @@ path: "tensorflow.keras.initializers.glorot_uniform" tf_class { is_instance: "" is_instance: "" - is_instance: "" - is_instance: "" is_instance: "" is_instance: "" member_method { diff --git a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.he_normal.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.he_normal.pbtxt index 5ece8aee902..6393b9aff5f 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.he_normal.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.he_normal.pbtxt @@ -2,8 +2,6 @@ path: "tensorflow.keras.initializers.he_normal" tf_class { is_instance: "" is_instance: "" - is_instance: "" - is_instance: "" is_instance: "" is_instance: "" member_method { diff --git a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.he_uniform.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.he_uniform.pbtxt index 0d2dc7ed5b2..5fd1fc75620 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.he_uniform.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.he_uniform.pbtxt @@ -2,8 +2,6 @@ path: "tensorflow.keras.initializers.he_uniform" tf_class { is_instance: "" is_instance: "" - is_instance: "" - is_instance: "" is_instance: "" is_instance: "" member_method { diff --git a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.identity.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.identity.pbtxt index 647864a25fb..36a49248187 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.identity.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.identity.pbtxt @@ -1,8 +1,6 @@ path: "tensorflow.keras.initializers.identity" tf_class { is_instance: "" - is_instance: "" - is_instance: "" is_instance: "" is_instance: "" member_method { diff --git a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.lecun_normal.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.lecun_normal.pbtxt index 4eb04c91864..ccaafdfb92c 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.lecun_normal.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.lecun_normal.pbtxt @@ -2,8 +2,6 @@ path: "tensorflow.keras.initializers.lecun_normal" tf_class { is_instance: "" is_instance: "" - is_instance: "" - is_instance: "" is_instance: "" is_instance: "" member_method { diff --git a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.lecun_uniform.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.lecun_uniform.pbtxt index d1f8e8abc4c..11d760a194d 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.lecun_uniform.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.lecun_uniform.pbtxt @@ -2,8 +2,6 @@ path: "tensorflow.keras.initializers.lecun_uniform" tf_class { is_instance: "" is_instance: "" - is_instance: "" - is_instance: "" is_instance: "" is_instance: "" member_method { diff --git a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.orthogonal.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.orthogonal.pbtxt index 227f8957954..f89f5813029 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.orthogonal.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.orthogonal.pbtxt @@ -1,8 +1,6 @@ path: "tensorflow.keras.initializers.orthogonal" tf_class { is_instance: "" - is_instance: "" - is_instance: "" is_instance: "" is_instance: "" member_method { diff --git a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.truncated_normal.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.truncated_normal.pbtxt index e5ebf905d08..b03849a5c3e 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.truncated_normal.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.truncated_normal.pbtxt @@ -1,8 +1,6 @@ path: "tensorflow.keras.initializers.truncated_normal" tf_class { is_instance: "" - is_instance: "" - is_instance: "" is_instance: "" is_instance: "" member_method { diff --git a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.variance_scaling.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.variance_scaling.pbtxt index 4ec96caa16f..d5e4f79ae9c 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.variance_scaling.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.variance_scaling.pbtxt @@ -1,8 +1,6 @@ path: "tensorflow.keras.initializers.variance_scaling" tf_class { is_instance: "" - is_instance: "" - is_instance: "" is_instance: "" is_instance: "" member_method {