diff --git a/tensorflow/python/keras/BUILD b/tensorflow/python/keras/BUILD index 6af56e7ab77..b98154b9095 100755 --- a/tensorflow/python/keras/BUILD +++ b/tensorflow/python/keras/BUILD @@ -16,7 +16,6 @@ py_library( "__init__.py", "estimator/__init__.py", "keras_parameterized.py", - "ops.py", ], srcs_version = "PY2AND3", deps = [ @@ -189,7 +188,9 @@ py_library( py_library( name = "initializers", srcs = [ - "initializers.py", + "initializers/__init__.py", + "initializers/initializers_v1.py", + "initializers/initializers_v2.py", ], srcs_version = "PY2AND3", deps = [ diff --git a/tensorflow/python/keras/api/BUILD b/tensorflow/python/keras/api/BUILD index 32c5e87a8f9..41a3f13e3eb 100644 --- a/tensorflow/python/keras/api/BUILD +++ b/tensorflow/python/keras/api/BUILD @@ -47,6 +47,8 @@ keras_packages = [ "tensorflow.python.keras.engine.training", "tensorflow.python.keras.estimator", "tensorflow.python.keras.initializers", + "tensorflow.python.keras.initializers.initializers_v1", + "tensorflow.python.keras.initializers.initializers_v2", "tensorflow.python.keras.layers.advanced_activations", "tensorflow.python.keras.layers.convolutional", "tensorflow.python.keras.layers.convolutional_recurrent", @@ -71,7 +73,6 @@ keras_packages = [ "tensorflow.python.keras.mixed_precision.experimental.loss_scale_optimizer", "tensorflow.python.keras.mixed_precision.experimental.policy", "tensorflow.python.keras.models", - "tensorflow.python.keras.ops", "tensorflow.python.keras.optimizer_v2.adadelta", "tensorflow.python.keras.optimizer_v2.adagrad", "tensorflow.python.keras.optimizer_v2.adam", diff --git a/tensorflow/python/keras/backend.py b/tensorflow/python/keras/backend.py index 8c0acc6f25f..3272c4a7c2a 100644 --- a/tensorflow/python/keras/backend.py +++ b/tensorflow/python/keras/backend.py @@ -818,6 +818,9 @@ def name_scope(name): """ return ops.name_scope_v2(name) +# Export V1 version. +keras_export(v1=['keras.backend.name_scope'])(ops.name_scope_v1) + @keras_export('keras.backend.variable') def variable(value, dtype=None, name=None, constraint=None): diff --git a/tensorflow/python/keras/initializers.py b/tensorflow/python/keras/initializers.py deleted file mode 100644 index 58a90ccadc3..00000000000 --- a/tensorflow/python/keras/initializers.py +++ /dev/null @@ -1,234 +0,0 @@ -# Copyright 2015 The TensorFlow Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# ============================================================================== -"""Keras initializer serialization / deserialization. -""" -# pylint: disable=unused-import -# pylint: disable=line-too-long -# pylint: disable=g-import-not-at-top -# pylint: disable=g-bad-import-order -# pylint: disable=invalid-name -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -import six - -from tensorflow.python import tf2 -from tensorflow.python.framework import dtypes -from tensorflow.python.keras.utils.generic_utils import deserialize_keras_object -from tensorflow.python.keras.utils.generic_utils import serialize_keras_object -from tensorflow.python.ops import init_ops_v2 - -# These imports are brought in so that keras.initializers.deserialize -# has them available in module_objects. -from tensorflow.python.ops.init_ops_v2 import Constant as ConstantV2 -from tensorflow.python.ops.init_ops_v2 import GlorotNormal as GlorotNormalV2 -from tensorflow.python.ops.init_ops_v2 import GlorotUniform as GlorotUniformV2 -from tensorflow.python.ops.init_ops_v2 import he_normal as he_normalV2 -from tensorflow.python.ops.init_ops_v2 import he_uniform as he_uniformV2 -from tensorflow.python.ops.init_ops_v2 import Identity as IdentityV2 -from tensorflow.python.ops.init_ops_v2 import Initializer as InitializerV2 -from tensorflow.python.ops.init_ops_v2 import lecun_normal as lecun_normalV2 -from tensorflow.python.ops.init_ops_v2 import lecun_uniform as lecun_uniformV2 -from tensorflow.python.ops.init_ops_v2 import Ones as OnesV2 -from tensorflow.python.ops.init_ops_v2 import Orthogonal as OrthogonalV2 -from tensorflow.python.ops.init_ops_v2 import RandomNormal as RandomNormalV2 -from tensorflow.python.ops.init_ops_v2 import RandomUniform as RandomUniformV2 -from tensorflow.python.ops.init_ops_v2 import TruncatedNormal as TruncatedNormalV2 -from tensorflow.python.ops.init_ops_v2 import VarianceScaling as VarianceScalingV2 -from tensorflow.python.ops.init_ops_v2 import Zeros as ZerosV2 - -if tf2.enabled(): - Constant = ConstantV2 - GlorotNormal = GlorotNormalV2 - GlorotUniform = GlorotUniformV2 - he_normal = he_normalV2 - he_uniform = he_uniformV2 - Identity = IdentityV2 - Initializer = InitializerV2 - lecun_normal = lecun_normalV2 - lecun_uniform = lecun_uniformV2 - Ones = OnesV2 - Orthogonal = OrthogonalV2 - VarianceScaling = VarianceScalingV2 - Zeros = ZerosV2 -else: - from tensorflow.python.ops.init_ops import Constant - from tensorflow.python.ops.init_ops import GlorotNormal - from tensorflow.python.ops.init_ops import GlorotUniform - from tensorflow.python.ops.init_ops import he_normal - from tensorflow.python.ops.init_ops import he_uniform - from tensorflow.python.ops.init_ops import Identity - from tensorflow.python.ops.init_ops import Initializer - from tensorflow.python.ops.init_ops import lecun_normal - from tensorflow.python.ops.init_ops import lecun_uniform - from tensorflow.python.ops.init_ops import Ones - from tensorflow.python.ops.init_ops import Orthogonal - from tensorflow.python.ops.init_ops import VarianceScaling - from tensorflow.python.ops.init_ops import Zeros - -from tensorflow.python.ops.init_ops import RandomNormal as TFRandomNormalV1 -from tensorflow.python.ops.init_ops import RandomUniform as TFRandomUniformV1 -from tensorflow.python.ops.init_ops import TruncatedNormal as TFTruncatedNormalV1 - -from tensorflow.python.util.tf_export import keras_export - - -@keras_export(v1=['keras.initializers.TruncatedNormal', - 'keras.initializers.truncated_normal']) -class TruncatedNormalV1(TFTruncatedNormalV1): - """Initializer that generates a truncated normal distribution. - - These values are similar to values from a `random_normal_initializer` - except that values more than two standard deviations from the mean - are discarded and re-drawn. This is the recommended initializer for - neural network weights and filters. - - Args: - mean: a python scalar or a scalar tensor. Mean of the random values to - generate. Defaults to 0. - stddev: a python scalar or a scalar tensor. Standard deviation of the random - values to generate. Defaults to 0.05. - seed: A Python integer. Used to create random seeds. See - `tf.compat.v1.set_random_seed` for behavior. - dtype: The data type. Only floating point types are supported. - - Returns: - A TruncatedNormal instance. - """ - - def __init__(self, mean=0.0, stddev=0.05, seed=None, dtype=dtypes.float32): - super(TruncatedNormalV1, self).__init__( - mean=mean, stddev=stddev, seed=seed, dtype=dtype) - - -@keras_export(v1=['keras.initializers.RandomUniform', - 'keras.initializers.uniform', - 'keras.initializers.random_uniform']) -class RandomUniformV1(TFRandomUniformV1): - """Initializer that generates tensors with a uniform distribution. - - Args: - minval: A python scalar or a scalar tensor. Lower bound of the range of - random values to generate. Defaults to -0.05. - maxval: A python scalar or a scalar tensor. Upper bound of the range of - random values to generate. Defaults to 0.05. - seed: A Python integer. Used to create random seeds. See - `tf.compat.v1.set_random_seed` for behavior. - dtype: The data type. - - Returns: - A RandomUniform instance. - """ - - def __init__(self, minval=-0.05, maxval=0.05, seed=None, - dtype=dtypes.float32): - super(RandomUniformV1, self).__init__( - minval=minval, maxval=maxval, seed=seed, dtype=dtype) - - -@keras_export(v1=['keras.initializers.RandomNormal', - 'keras.initializers.normal', - 'keras.initializers.random_normal']) -class RandomNormalV1(TFRandomNormalV1): - """Initializer that generates tensors with a normal distribution. - - Args: - mean: a python scalar or a scalar tensor. Mean of the random values to - generate. Defaults to 0. - stddev: a python scalar or a scalar tensor. Standard deviation of the random - values to generate. Defaults to 0.05. - seed: A Python integer. Used to create random seeds. See - `tf.compat.v1.set_random_seed` for behavior. - dtype: The data type. Only floating point types are supported. - - Returns: - RandomNormal instance. - """ - - def __init__(self, mean=0.0, stddev=0.05, seed=None, dtype=dtypes.float32): - super(RandomNormalV1, self).__init__( - mean=mean, stddev=stddev, seed=seed, dtype=dtype) - - -if tf2.enabled(): - RandomNormal = RandomNormalV2 - RandomUniform = RandomUniformV2 - TruncatedNormal = TruncatedNormalV2 -else: - RandomNormal = RandomNormalV1 - RandomUniform = RandomUniformV1 - TruncatedNormal = TruncatedNormalV1 - -# Compatibility aliases -zero = zeros = Zeros -one = ones = Ones -constant = Constant -uniform = random_uniform = RandomUniform -normal = random_normal = RandomNormal -truncated_normal = TruncatedNormal -identity = Identity -orthogonal = Orthogonal -glorot_normal = GlorotNormal -glorot_uniform = GlorotUniform - -# Utility functions - - -@keras_export('keras.initializers.serialize') -def serialize(initializer): - return serialize_keras_object(initializer) - - -@keras_export('keras.initializers.deserialize') -def deserialize(config, custom_objects=None): - """Return an `Initializer` object from its config.""" - if tf2.enabled(): - # Class names are the same for V1 and V2 but the V2 classes - # are aliased in this file so we need to grab them directly - # from `init_ops_v2`. - module_objects = { - obj_name: getattr(init_ops_v2, obj_name) - for obj_name in dir(init_ops_v2) - } - else: - module_objects = globals() - return deserialize_keras_object( - config, - module_objects=module_objects, - custom_objects=custom_objects, - printable_module_name='initializer') - - -@keras_export('keras.initializers.get') -def get(identifier): - if identifier is None: - return None - if isinstance(identifier, dict): - return deserialize(identifier) - elif isinstance(identifier, six.string_types): - identifier = str(identifier) - # We have to special-case functions that return classes. - # TODO(omalleyt): Turn these into classes or class aliases. - special_cases = ['he_normal', 'he_uniform', 'lecun_normal', 'lecun_uniform'] - if identifier in special_cases: - # Treat like a class. - return deserialize({'class_name': identifier, 'config': {}}) - return deserialize(identifier) - elif callable(identifier): - return identifier - else: - raise ValueError('Could not interpret initializer identifier: ' + - str(identifier)) diff --git a/tensorflow/python/keras/initializers/__init__.py b/tensorflow/python/keras/initializers/__init__.py new file mode 100644 index 00000000000..7f2922b4c04 --- /dev/null +++ b/tensorflow/python/keras/initializers/__init__.py @@ -0,0 +1,142 @@ +# Copyright 2015 The TensorFlow Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== +"""Keras initializer serialization / deserialization. +""" +# pylint: disable=unused-import +# pylint: disable=line-too-long +# pylint: disable=g-import-not-at-top +# pylint: disable=g-bad-import-order +# pylint: disable=invalid-name +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function + +import six + +from tensorflow.python import tf2 +from tensorflow.python.keras.utils.generic_utils import deserialize_keras_object +from tensorflow.python.keras.utils.generic_utils import serialize_keras_object +from tensorflow.python.util.tf_export import keras_export + +# These imports are brought in so that keras.initializers.deserialize +# has them available in module_objects. +from tensorflow.python.keras.initializers.initializers_v2 import Constant as ConstantV2 +from tensorflow.python.keras.initializers.initializers_v2 import GlorotNormal as GlorotNormalV2 +from tensorflow.python.keras.initializers.initializers_v2 import GlorotUniform as GlorotUniformV2 +from tensorflow.python.keras.initializers.initializers_v2 import HeNormal as HeNormalV2 +from tensorflow.python.keras.initializers.initializers_v2 import HeUniform as HeUniformV2 +from tensorflow.python.keras.initializers.initializers_v2 import Identity as IdentityV2 +from tensorflow.python.keras.initializers.initializers_v2 import Initializer +from tensorflow.python.keras.initializers.initializers_v2 import LecunNormal as LecunNormalV2 +from tensorflow.python.keras.initializers.initializers_v2 import LecunUniform as LecunUniformV2 +from tensorflow.python.keras.initializers.initializers_v2 import Ones as OnesV2 +from tensorflow.python.keras.initializers.initializers_v2 import Orthogonal as OrthogonalV2 +from tensorflow.python.keras.initializers.initializers_v2 import RandomNormal as RandomNormalV2 +from tensorflow.python.keras.initializers.initializers_v2 import RandomUniform as RandomUniformV2 +from tensorflow.python.keras.initializers.initializers_v2 import TruncatedNormal as TruncatedNormalV2 +from tensorflow.python.keras.initializers.initializers_v2 import VarianceScaling as VarianceScalingV2 +from tensorflow.python.keras.initializers.initializers_v2 import Zeros as ZerosV2 + +if tf2.enabled(): + Constant = ConstantV2 + GlorotNormal = GlorotNormalV2 + GlorotUniform = GlorotUniformV2 + HeNormal = HeNormalV2 + HeUniform = HeUniformV2 + Identity = IdentityV2 + LecunNormal = LecunNormalV2 + LecunUniform = LecunUniformV2 + Ones = OnesV2 + Orthogonal = OrthogonalV2 + RandomNormal = RandomNormalV2 + RandomUniform = RandomUniformV2 + TruncatedNormal = TruncatedNormalV2 + VarianceScaling = VarianceScalingV2 + Zeros = ZerosV2 +else: + from tensorflow.python.ops.init_ops import Constant + from tensorflow.python.ops.init_ops import GlorotNormal + from tensorflow.python.ops.init_ops import GlorotUniform + from tensorflow.python.ops.init_ops import Identity + from tensorflow.python.ops.init_ops import Ones + from tensorflow.python.ops.init_ops import Orthogonal + from tensorflow.python.ops.init_ops import VarianceScaling + from tensorflow.python.ops.init_ops import Zeros + from tensorflow.python.keras.initializers.initializers_v1 import HeNormal + from tensorflow.python.keras.initializers.initializers_v1 import HeUniform + from tensorflow.python.keras.initializers.initializers_v1 import LecunNormal + from tensorflow.python.keras.initializers.initializers_v1 import LecunUniform + from tensorflow.python.keras.initializers.initializers_v1 import RandomNormal + from tensorflow.python.keras.initializers.initializers_v1 import RandomUniform + from tensorflow.python.keras.initializers.initializers_v1 import TruncatedNormal + + +# Compatibility aliases +glorot_normal = GlorotNormal +glorot_uniform = GlorotUniform +he_normal = HeNormal +he_uniform = HeUniform +lecun_normal = LecunNormal +lecun_uniform = LecunUniform +zero = zeros = Zeros +one = ones = Ones +constant = Constant +uniform = random_uniform = RandomUniform +normal = random_normal = RandomNormal +truncated_normal = TruncatedNormal +identity = Identity +orthogonal = Orthogonal + +# For unit tests +glorot_normalV2 = GlorotNormalV2 +glorot_uniformV2 = GlorotUniformV2 +he_normalV2 = HeNormalV2 +he_uniformV2 = HeUniformV2 +lecun_normalV2 = LecunNormalV2 +lecun_uniformV2 = LecunUniformV2 + +# Utility functions + + +@keras_export('keras.initializers.serialize') +def serialize(initializer): + return serialize_keras_object(initializer) + + +@keras_export('keras.initializers.deserialize') +def deserialize(config, custom_objects=None): + """Return an `Initializer` object from its config.""" + module_objects = globals() + return deserialize_keras_object( + config, + module_objects=module_objects, + custom_objects=custom_objects, + printable_module_name='initializer') + + +@keras_export('keras.initializers.get') +def get(identifier): + if identifier is None: + return None + if isinstance(identifier, dict): + return deserialize(identifier) + elif isinstance(identifier, six.string_types): + identifier = str(identifier) + return deserialize(identifier) + elif callable(identifier): + return identifier + else: + raise ValueError('Could not interpret initializer identifier: ' + + str(identifier)) diff --git a/tensorflow/python/keras/initializers/initializers_v1.py b/tensorflow/python/keras/initializers/initializers_v1.py new file mode 100644 index 00000000000..63b81065e8d --- /dev/null +++ b/tensorflow/python/keras/initializers/initializers_v1.py @@ -0,0 +1,112 @@ +# Copyright 2020 The TensorFlow Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== +"""Keras initializers for TF 1. +""" +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function + +from tensorflow.python.framework import dtypes +from tensorflow.python.ops import init_ops +from tensorflow.python.util.tf_export import keras_export + +keras_export(v1=['keras.initializers.Zeros', 'keras.initializers.zeros'])( + init_ops.Zeros) +keras_export(v1=['keras.initializers.Ones', 'keras.initializers.ones'])( + init_ops.Ones) +keras_export(v1=['keras.initializers.Constant', 'keras.initializers.constant'])( + init_ops.Constant) +keras_export(v1=['keras.initializers.VarianceScaling'])( + init_ops.VarianceScaling) +keras_export(v1=['keras.initializers.Orthogonal', + 'keras.initializers.orthogonal'])(init_ops.Orthogonal) +keras_export(v1=['keras.initializers.Identity', + 'keras.initializers.identity'])(init_ops.Identity) +keras_export(v1=['keras.initializers.glorot_uniform'])(init_ops.GlorotUniform) +keras_export(v1=['keras.initializers.glorot_normal'])(init_ops.GlorotNormal) + + +@keras_export(v1=['keras.initializers.RandomNormal', + 'keras.initializers.random_normal', + 'keras.initializers.normal']) +class RandomNormal(init_ops.RandomNormal): + + def __init__(self, mean=0.0, stddev=0.05, seed=None, dtype=dtypes.float32): + super(RandomNormal, self).__init__( + mean=mean, stddev=stddev, seed=seed, dtype=dtype) + + +@keras_export(v1=['keras.initializers.RandomUniform', + 'keras.initializers.random_uniform', + 'keras.initializers.uniform']) +class RandomUniform(init_ops.RandomUniform): + + def __init__(self, minval=-0.05, maxval=0.05, seed=None, + dtype=dtypes.float32): + super(RandomUniform, self).__init__( + minval=minval, maxval=maxval, seed=seed, dtype=dtype) + + +@keras_export(v1=['keras.initializers.TruncatedNormal', + 'keras.initializers.truncated_normal']) +class TruncatedNormal(init_ops.TruncatedNormal): + + def __init__(self, mean=0.0, stddev=0.05, seed=None, dtype=dtypes.float32): + super(TruncatedNormal, self).__init__( + mean=mean, stddev=stddev, seed=seed, dtype=dtype) + + +@keras_export(v1=['keras.initializers.lecun_normal']) +class LecunNormal(init_ops.VarianceScaling): + + def __init__(self, seed=None): + super(LecunNormal, self).__init__( + scale=1., mode='fan_in', distribution='truncated_normal', seed=seed) + + def get_config(self): + return {'seed': self.seed} + + +@keras_export(v1=['keras.initializers.lecun_uniform']) +class LecunUniform(init_ops.VarianceScaling): + + def __init__(self, seed=None): + super(LecunUniform, self).__init__( + scale=1., mode='fan_in', distribution='uniform', seed=seed) + + def get_config(self): + return {'seed': self.seed} + + +@keras_export(v1=['keras.initializers.he_normal']) +class HeNormal(init_ops.VarianceScaling): + + def __init__(self, seed=None): + super(HeNormal, self).__init__( + scale=2., mode='fan_in', distribution='truncated_normal', seed=seed) + + def get_config(self): + return {'seed': self.seed} + + +@keras_export(v1=['keras.initializers.he_uniform']) +class HeUniform(init_ops.VarianceScaling): + + def __init__(self, seed=None): + super(HeUniform, self).__init__( + scale=2., mode='fan_in', distribution='uniform', seed=seed) + + def get_config(self): + return {'seed': self.seed} diff --git a/tensorflow/python/keras/initializers/initializers_v2.py b/tensorflow/python/keras/initializers/initializers_v2.py new file mode 100644 index 00000000000..69dca335857 --- /dev/null +++ b/tensorflow/python/keras/initializers/initializers_v2.py @@ -0,0 +1,751 @@ +# Copyright 2020 The TensorFlow Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== +"""Keras initializers for TF 2. +""" +# pylint: disable=g-classes-have-attributes +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function + +from tensorflow.python.framework import constant_op +from tensorflow.python.framework import dtypes +from tensorflow.python.keras import backend +from tensorflow.python.ops import init_ops_v2 +from tensorflow.python.util.tf_export import keras_export + + +@keras_export('keras.initializers.Initializer') +class Initializer(object): + """Initializer base class: all Keras initializers inherit from this class. + + Initializers should implement a `__call__` method with the following + signature: + + ```python + def __call__(self, shape, dtype=None)`: + # returns a tensor of shape `shape` and dtype `dtype` + # containing values drawn from a distribution of your choice. + ``` + + 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. + + ```python + import tensorflow as tf + + class ExampleRandomNormal(tf.keras.initializers.Initializer): + + def __init__(self, mean, stddev): + self.mean = mean + self.stddev = stddev + + def __call__(self, shape, dtype=None)`: + 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. + """ + + def __call__(self, shape, dtype=None): + """Returns a tensor object initialized as specified by the initializer. + + Args: + shape: Shape of the tensor. + dtype: Optional dtype of the tensor. + """ + raise NotImplementedError + + def get_config(self): + """Returns the configuration of the initializer as a JSON-serializable dict. + + Returns: + A JSON-serializable Python dict. + """ + return {} + + @classmethod + def from_config(cls, config): + """Instantiates an initializer from a configuration dictionary. + + Example: + + ```python + initializer = RandomUniform(-1, 1) + config = initializer.get_config() + initializer = RandomUniform.from_config(config) + ``` + + Args: + config: A Python dictionary, the output of `get_config`. + + Returns: + A `tf.keras.initializers.Initializer` instance. + """ + config.pop('dtype', None) + return cls(**config) + + +@keras_export('keras.initializers.Zeros', 'keras.initializers.zeros', v1=[]) +class Zeros(init_ops_v2.Zeros, Initializer): + """Initializer that generates tensors initialized to 0. + + Also available via the shortcut function `tf.keras.initializers.zeros`. + + Examples: + + >>> # Standalone usage: + >>> initializer = tf.keras.initializers.Zeros() + >>> values = initializer(shape=(2, 2)) + + >>> # Usage in a Keras layer: + >>> initializer = tf.keras.initializers.Zeros() + >>> layer = tf.keras.layers.Dense(3, kernel_initializer=initializer) + """ + + def __call__(self, shape, dtype=None): + """Returns a tensor object initialized as specified by the initializer. + + Args: + shape: Shape of the tensor. + dtype: Optional dtype of the tensor. Only numeric or boolean dtypes are + supported. If not specified, `tf.keras.backend.floatx()` is used, + which default to `float32` unless you configured it otherwise + (via `tf.keras.backend.set_floatx(float_dtype)`). + """ + return super(Zeros, self).__call__(shape, dtype=_get_dtype(dtype)) + + +@keras_export('keras.initializers.Ones', 'keras.initializers.ones', v1=[]) +class Ones(init_ops_v2.Ones, Initializer): + """Initializer that generates tensors initialized to 1. + + Also available via the shortcut function `tf.keras.initializers.ones`. + + Examples: + + >>> # Standalone usage: + >>> initializer = tf.keras.initializers.Ones() + >>> values = initializer(shape=(2, 2)) + + >>> # Usage in a Keras layer: + >>> initializer = tf.keras.initializers.Ones() + >>> layer = tf.keras.layers.Dense(3, kernel_initializer=initializer) + """ + + def __call__(self, shape, dtype=None): + """Returns a tensor object initialized as specified by the initializer. + + Args: + shape: Shape of the tensor. + dtype: Optional dtype of the tensor. Only numeric or boolean dtypes are + supported. If not specified, `tf.keras.backend.floatx()` is used, + which default to `float32` unless you configured it otherwise + (via `tf.keras.backend.set_floatx(float_dtype)`). + """ + return super(Ones, self).__call__(shape, dtype=_get_dtype(dtype)) + + +@keras_export('keras.initializers.Constant', + 'keras.initializers.constant', + v1=[]) +class Constant(Initializer): + """Initializer that generates tensors with constant values. + + Also available via the shortcut function `tf.keras.initializers.constant`. + + Only scalar values are allowed. + The constant value provided must be convertible to the dtype requested + when calling the initializer. + + Examples: + + >>> # Standalone usage: + >>> initializer = tf.keras.initializers.Constant(3.) + >>> values = initializer(shape=(2, 2)) + + >>> # Usage in a Keras layer: + >>> initializer = tf.keras.initializers.Constant(3.) + >>> layer = tf.keras.layers.Dense(3, kernel_initializer=initializer) + + Args: + value: A Python scalar. + """ + + def __init__(self, value=0): + self.value = value + + def __call__(self, shape, dtype=None): + """Returns a tensor object initialized to `self.value`. + + Args: + shape: Shape of the tensor. + dtype: Optional dtype of the tensor. If not specified, + `tf.keras.backend.floatx()` is used, + which default to `float32` unless you configured it otherwise + (via `tf.keras.backend.set_floatx(float_dtype)`). + """ + return constant_op.constant( + self.value, dtype=_get_dtype(dtype), shape=shape) + + def get_config(self): + return {'value': self.value} + + +@keras_export('keras.initializers.RandomUniform', + 'keras.initializers.random_uniform', + v1=[]) +class RandomUniform(init_ops_v2.RandomUniform, Initializer): + """Initializer that generates tensors with a uniform distribution. + + Also available via the shortcut function + `tf.keras.initializers.random_uniform`. + + Examples: + + >>> # Standalone usage: + >>> initializer = tf.keras.initializers.RandomUniform(minval=0., maxval=1.) + >>> values = initializer(shape=(2, 2)) + + >>> # Usage in a Keras layer: + >>> initializer = tf.keras.initializers.RandomUniform(minval=0., maxval=1.) + >>> layer = tf.keras.layers.Dense(3, kernel_initializer=initializer) + + Args: + minval: A python scalar or a scalar tensor. Lower bound of the range of + random values to generate (inclusive). + maxval: A python scalar or a scalar tensor. Upper bound of the range of + random values to generate (exclusive). + seed: A Python integer. An initializer created with a given seed will + always produce the same random tensor for a given shape and dtype. + """ + + def __call__(self, shape, dtype=None): + """Returns a tensor object initialized as specified by the initializer. + + Args: + shape: Shape of the tensor. + dtype: Optional dtype of the tensor. Only floating point and integer + types are supported. If not specified, + `tf.keras.backend.floatx()` is used, + which default to `float32` unless you configured it otherwise + (via `tf.keras.backend.set_floatx(float_dtype)`). + """ + return super(RandomUniform, self).__call__(shape, dtype=_get_dtype(dtype)) + + +@keras_export('keras.initializers.RandomNormal', + 'keras.initializers.random_normal', + v1=[]) +class RandomNormal(init_ops_v2.RandomNormal, Initializer): + """Initializer that generates tensors with a normal distribution. + + Also available via the shortcut function + `tf.keras.initializers.random_normal`. + + Examples: + + >>> # Standalone usage: + >>> initializer = tf.keras.initializers.RandomNormal(mean=0., stddev=1.) + >>> values = initializer(shape=(2, 2)) + + >>> # Usage in a Keras layer: + >>> initializer = tf.keras.initializers.RandomNormal(mean=0., stddev=1.) + >>> layer = tf.keras.layers.Dense(3, kernel_initializer=initializer) + + Args: + mean: a python scalar or a scalar tensor. Mean of the random values to + generate. + stddev: a python scalar or a scalar tensor. Standard deviation of the random + values to generate. + seed: A Python integer. An initializer created with a given seed will + always produce the same random tensor for a given shape and dtype. + """ + + def __call__(self, shape, dtype=None): + """Returns a tensor object initialized to random normal values. + + Args: + shape: Shape of the tensor. + dtype: Optional dtype of the tensor. Only floating point types are + supported. If not specified, `tf.keras.backend.floatx()` is used, + which default to `float32` unless you configured it otherwise + (via `tf.keras.backend.set_floatx(float_dtype)`) + """ + return super(RandomNormal, self).__call__(shape, dtype=_get_dtype(dtype)) + + +@keras_export('keras.initializers.TruncatedNormal', + 'keras.initializers.truncated_normal', + v1=[]) +class TruncatedNormal(init_ops_v2.TruncatedNormal, Initializer): + """Initializer that generates a truncated normal distribution. + + Also available via the shortcut function + `tf.keras.initializers.truncated_normal`. + + The values generated are similar to values from a + `tf.keras.initializers.RandomNormal` initializer except that values more + than two standard deviations from the mean are + discarded and re-drawn. + + Examples: + + >>> # Standalone usage: + >>> initializer = tf.keras.initializers.TruncatedNormal(mean=0., stddev=1.) + >>> values = initializer(shape=(2, 2)) + + >>> # Usage in a Keras layer: + >>> initializer = tf.keras.initializers.TruncatedNormal(mean=0., stddev=1.) + >>> layer = tf.keras.layers.Dense(3, kernel_initializer=initializer) + + Args: + mean: a python scalar or a scalar tensor. Mean of the random values + to generate. + stddev: a python scalar or a scalar tensor. Standard deviation of the + random values to generate. + seed: A Python integer. An initializer created with a given seed will + always produce the same random tensor for a given shape and dtype. + """ + + def __call__(self, shape, dtype=None): + """Returns a tensor object initialized to random normal values (truncated). + + Args: + shape: Shape of the tensor. + dtype: Optional dtype of the tensor. Only floating point types are + supported. If not specified, `tf.keras.backend.floatx()` is used, + which default to `float32` unless you configured it otherwise + (via `tf.keras.backend.set_floatx(float_dtype)`) + """ + return super(TruncatedNormal, self).__call__(shape, dtype=_get_dtype(dtype)) + + +@keras_export('keras.initializers.VarianceScaling', + 'keras.initializers.variance_scaling', + v1=[]) +class VarianceScaling(init_ops_v2.VarianceScaling, Initializer): + """Initializer capable of adapting its scale to the shape of weights tensors. + + Also available via the shortcut function + `tf.keras.initializers.variance_scaling`. + + 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)`. + + Examples: + + >>> # Standalone usage: + >>> initializer = tf.keras.initializers.VarianceScaling( + ... scale=0.1, mode='fan_in', distribution='uniform') + >>> values = initializer(shape=(2, 2)) + + >>> # Usage in a Keras layer: + >>> initializer = tf.keras.initializers.VarianceScaling( + ... scale=0.1, mode='fan_in', distribution='uniform') + >>> layer = tf.keras.layers.Dense(3, kernel_initializer=initializer) + + Args: + scale: Scaling factor (positive float). + mode: One of "fan_in", "fan_out", "fan_avg". + distribution: Random distribution to use. One of "truncated_normal", + "untruncated_normal" and "uniform". + seed: A Python integer. An initializer created with a given seed will + always produce the same random tensor for a given shape and dtype. + """ + + def __call__(self, shape, dtype=None): + """Returns a tensor object initialized as specified by the initializer. + + Args: + shape: Shape of the tensor. + dtype: Optional dtype of the tensor. Only floating point types are + supported. If not specified, `tf.keras.backend.floatx()` is used, + which default to `float32` unless you configured it otherwise + (via `tf.keras.backend.set_floatx(float_dtype)`) + """ + return super(VarianceScaling, self).__call__(shape, dtype=_get_dtype(dtype)) + + +@keras_export('keras.initializers.Orthogonal', + 'keras.initializers.orthogonal', + v1=[]) +class Orthogonal(init_ops_v2.Orthogonal, Initializer): + """Initializer that generates an orthogonal matrix. + + Also available via the shortcut function `tf.keras.initializers.orthogonal`. + + If the shape of the tensor to initialize is two-dimensional, it is initialized + with an orthogonal matrix obtained from the QR decomposition of a matrix of + random numbers drawn from a normal distribution. + If the matrix has fewer rows than columns then the output will have orthogonal + rows. Otherwise, the output will have orthogonal columns. + + If the shape of the tensor to initialize is more than two-dimensional, + a matrix of shape `(shape[0] * ... * shape[n - 2], shape[n - 1])` + is initialized, where `n` is the length of the shape vector. + The matrix is subsequently reshaped to give a tensor of the desired shape. + + Examples: + + >>> # Standalone usage: + >>> initializer = tf.keras.initializers.Orthogonal() + >>> values = initializer(shape=(2, 2)) + + >>> # Usage in a Keras layer: + >>> initializer = tf.keras.initializers.Orthogonal() + >>> layer = tf.keras.layers.Dense(3, kernel_initializer=initializer) + + Args: + gain: multiplicative factor to apply to the orthogonal matrix + seed: A Python integer. An initializer created with a given seed will + always produce the same random tensor for a given shape and dtype. + + References: + [Saxe et al., 2014](https://openreview.net/forum?id=_wzZwKpTDF_9C) + ([pdf](https://arxiv.org/pdf/1312.6120.pdf)) + """ + + def __call__(self, shape, dtype=None): + """Returns a tensor object initialized to an orthogonal matrix. + + Args: + shape: Shape of the tensor. + dtype: Optional dtype of the tensor. Only floating point types are + supported. If not specified, `tf.keras.backend.floatx()` is used, + which default to `float32` unless you configured it otherwise + (via `tf.keras.backend.set_floatx(float_dtype)`) + """ + return super(Orthogonal, self).__call__(shape, dtype=_get_dtype(dtype)) + + +@keras_export('keras.initializers.Identity', + 'keras.initializers.identity', + v1=[]) +class Identity(init_ops_v2.Identity, Initializer): + """Initializer that generates the identity matrix. + + Also available via the shortcut function `tf.keras.initializers.identity`. + + Only usable for generating 2D matrices. + + Examples: + + >>> # Standalone usage: + >>> initializer = tf.keras.initializers.Identity() + >>> values = initializer(shape=(2, 2)) + + >>> # Usage in a Keras layer: + >>> initializer = tf.keras.initializers.Identity() + >>> layer = tf.keras.layers.Dense(3, kernel_initializer=initializer) + + Args: + gain: Multiplicative factor to apply to the identity matrix. + """ + + def __call__(self, shape, dtype=None): + """Returns a tensor object initialized to a 2D identity matrix. + + Args: + shape: Shape of the tensor. It should have exactly rank 2. + dtype: Optional dtype of the tensor. Only floating point types are + supported. If not specified, `tf.keras.backend.floatx()` is used, + which default to `float32` unless you configured it otherwise + (via `tf.keras.backend.set_floatx(float_dtype)`) + """ + return super(Identity, self).__call__(shape, dtype=_get_dtype(dtype)) + + +@keras_export('keras.initializers.GlorotUniform', + 'keras.initializers.glorot_uniform', + v1=[]) +class GlorotUniform(VarianceScaling): + """The Glorot uniform initializer, also called Xavier uniform initializer. + + Also available via the shortcut function + `tf.keras.initializers.glorot_uniform`. + + Draws samples from a uniform distribution within [-limit, limit] where `limit` + is `sqrt(6 / (fan_in + fan_out))` where `fan_in` is the number of input units + in the weight tensor and `fan_out` is the number of output units in the weight + tensor. + + Examples: + + >>> # Standalone usage: + >>> initializer = tf.keras.initializers.GlorotUniform() + >>> values = initializer(shape=(2, 2)) + + >>> # Usage in a Keras layer: + >>> initializer = tf.keras.initializers.GlorotUniform() + >>> layer = tf.keras.layers.Dense(3, kernel_initializer=initializer) + + Args: + seed: A Python integer. An initializer created with a given seed will + always produce the same random tensor for a given shape and dtype. + + References: + [Glorot et al., 2010](http://proceedings.mlr.press/v9/glorot10a.html) + ([pdf](http://jmlr.org/proceedings/papers/v9/glorot10a/glorot10a.pdf)) + """ + + def __init__(self, seed=None): + super(GlorotUniform, self).__init__( + scale=1.0, + mode='fan_avg', + distribution='uniform', + seed=seed) + + def get_config(self): + return {'seed': self.seed} + + +@keras_export('keras.initializers.GlorotNormal', + 'keras.initializers.glorot_normal', + v1=[]) +class GlorotNormal(VarianceScaling): + """The Glorot normal initializer, also called Xavier normal initializer. + + Also available via the shortcut function + `tf.keras.initializers.glorot_normal`. + + Draws samples from a truncated normal distribution centered on 0 with `stddev + = sqrt(2 / (fan_in + fan_out))` where `fan_in` is the number of input units in + the weight tensor and `fan_out` is the number of output units in the weight + tensor. + + Examples: + + >>> # Standalone usage: + >>> initializer = tf.keras.initializers.GlorotNormal() + >>> values = initializer(shape=(2, 2)) + + >>> # Usage in a Keras layer: + >>> initializer = tf.keras.initializers.GlorotNormal() + >>> layer = tf.keras.layers.Dense(3, kernel_initializer=initializer) + + Args: + seed: A Python integer. An initializer created with a given seed will + always produce the same random tensor for a given shape and dtype. + + References: + [Glorot et al., 2010](http://proceedings.mlr.press/v9/glorot10a.html) + ([pdf](http://jmlr.org/proceedings/papers/v9/glorot10a/glorot10a.pdf)) + """ + + def __init__(self, seed=None): + super(GlorotNormal, self).__init__( + scale=1.0, + mode='fan_avg', + distribution='truncated_normal', + seed=seed) + + def get_config(self): + return {'seed': self.seed} + + +@keras_export('keras.initializers.LecunNormal', + 'keras.initializers.lecun_normal', + v1=[]) +class LecunNormal(VarianceScaling): + """Lecun normal initializer. + + Also available via the shortcut function + `tf.keras.initializers.lecun_normal`. + + Initializers allow you to pre-specify an initialization strategy, encoded in + the Initializer object, without knowing the shape and dtype of the variable + being initialized. + + Draws samples from a truncated normal distribution centered on 0 with `stddev + = sqrt(1 / fan_in)` where `fan_in` is the number of input units in the weight + tensor. + + Examples: + + >>> # Standalone usage: + >>> initializer = tf.keras.initializers.LecunNormal() + >>> values = initializer(shape=(2, 2)) + + >>> # Usage in a Keras layer: + >>> initializer = tf.keras.initializers.LecunNormal() + >>> layer = tf.keras.layers.Dense(3, kernel_initializer=initializer) + + Arguments: + seed: A Python integer. Used to seed the random generator. + + References: + - Self-Normalizing Neural Networks, + [Klambauer et al., 2017] + (https://papers.nips.cc/paper/6698-self-normalizing-neural-networks) + ([pdf] + (https://papers.nips.cc/paper/6698-self-normalizing-neural-networks.pdf)) + - Efficient Backprop, + [Lecun et al., 1998](http://yann.lecun.com/exdb/publis/pdf/lecun-98b.pdf) + """ + + def __init__(self, seed=None): + super(LecunNormal, self).__init__( + scale=1., mode='fan_in', distribution='truncated_normal', seed=seed) + + def get_config(self): + return {'seed': self.seed} + + +@keras_export('keras.initializers.LecunUniform', + 'keras.initializers.lecun_uniform', + v1=[]) +class LecunUniform(VarianceScaling): + """Lecun uniform initializer. + + Also available via the shortcut function + `tf.keras.initializers.lecun_uniform`. + + Draws samples from a uniform distribution within [-limit, limit] where `limit` + is `sqrt(3 / fan_in)` where `fan_in` is the number of input units in the + weight tensor. + + Examples: + + >>> # Standalone usage: + >>> initializer = tf.keras.initializers.LecunUniform() + >>> values = initializer(shape=(2, 2)) + + >>> # Usage in a Keras layer: + >>> initializer = tf.keras.initializers.LecunUniform() + >>> layer = tf.keras.layers.Dense(3, kernel_initializer=initializer) + + Arguments: + seed: A Python integer. An initializer created with a given seed will + always produce the same random tensor for a given shape and dtype. + + References: + - Self-Normalizing Neural Networks, + [Klambauer et al., 2017](https://papers.nips.cc/paper/6698-self-normalizing-neural-networks) # pylint: disable=line-too-long + ([pdf](https://papers.nips.cc/paper/6698-self-normalizing-neural-networks.pdf)) + - Efficient Backprop, + [Lecun et al., 1998](http://yann.lecun.com/exdb/publis/pdf/lecun-98b.pdf) + """ + + def __init__(self, seed=None): + super(LecunUniform, self).__init__( + scale=1., mode='fan_in', distribution='uniform', seed=seed) + + def get_config(self): + return {'seed': self.seed} + + +@keras_export('keras.initializers.HeNormal', + 'keras.initializers.he_normal', + v1=[]) +class HeNormal(VarianceScaling): + """He normal initializer. + + Also available via the shortcut function + `tf.keras.initializers.he_normal`. + + It draws samples from a truncated normal distribution centered on 0 with + `stddev = sqrt(2 / fan_in)` where `fan_in` is the number of input units in the + weight tensor. + + Examples: + + >>> # Standalone usage: + >>> initializer = tf.keras.initializers.HeNormal() + >>> values = initializer(shape=(2, 2)) + + >>> # Usage in a Keras layer: + >>> initializer = tf.keras.initializers.HeNormal() + >>> layer = tf.keras.layers.Dense(3, kernel_initializer=initializer) + + Arguments: + seed: A Python integer. An initializer created with a given seed will + always produce the same random tensor for a given shape and dtype. + + References: + [He et al., 2015](https://www.cv-foundation.org/openaccess/content_iccv_2015/html/He_Delving_Deep_into_ICCV_2015_paper.html) # pylint: disable=line-too-long + ([pdf](https://www.cv-foundation.org/openaccess/content_iccv_2015/papers/He_Delving_Deep_into_ICCV_2015_paper.pdf)) + """ + + def __init__(self, seed=None): + super(HeNormal, self).__init__( + scale=2., mode='fan_in', distribution='truncated_normal', seed=seed) + + def get_config(self): + return {'seed': self.seed} + + +@keras_export('keras.initializers.HeUniform', + 'keras.initializers.he_uniform', + v1=[]) +class HeUniform(VarianceScaling): + """He uniform variance scaling initializer. + + Also available via the shortcut function + `tf.keras.initializers.he_uniform`. + + Draws samples from a uniform distribution within [-limit, limit] where `limit` + is `sqrt(6 / fan_in)` where `fan_in` is the number of input units in the + weight tensor. + + Examples: + + >>> # Standalone usage: + >>> initializer = tf.keras.initializers.HeUniform() + >>> values = initializer(shape=(2, 2)) + + >>> # Usage in a Keras layer: + >>> initializer = tf.keras.initializers.HeUniform() + >>> layer = tf.keras.layers.Dense(3, kernel_initializer=initializer) + + Arguments: + seed: A Python integer. An initializer created with a given seed will + always produce the same random tensor for a given shape and dtype. + + References: + [He et al., 2015](https://www.cv-foundation.org/openaccess/content_iccv_2015/html/He_Delving_Deep_into_ICCV_2015_paper.html) # pylint: disable=line-too-long + ([pdf](https://www.cv-foundation.org/openaccess/content_iccv_2015/papers/He_Delving_Deep_into_ICCV_2015_paper.pdf)) + """ + + def __init__(self, seed=None): + super(HeUniform, self).__init__( + scale=2., mode='fan_in', distribution='uniform', seed=seed) + + def get_config(self): + return {'seed': self.seed} + + +def _get_dtype(dtype): + if dtype is None: + dtype = backend.floatx() + return dtypes.as_dtype(dtype) diff --git a/tensorflow/python/keras/initializers_test.py b/tensorflow/python/keras/initializers_test.py index fd8f50850a9..1170432d8e1 100644 --- a/tensorflow/python/keras/initializers_test.py +++ b/tensorflow/python/keras/initializers_test.py @@ -20,7 +20,6 @@ from __future__ import print_function import numpy as np -from tensorflow.python import tf2 from tensorflow.python.framework import test_util from tensorflow.python.keras import backend from tensorflow.python.keras import combinations @@ -202,15 +201,6 @@ class KerasInitializersTest(test.TestCase): self.assertEqual(tn.mean, 0.0) self.assertEqual(tn.stddev, 0.05) - def test_initializer_v2_get(self): - tf2_force_enabled = tf2._force_enable # pylint: disable=protected-access - try: - tf2.enable() - rn = initializers.get('random_normal') - self.assertIn('init_ops_v2', rn.__class__.__module__) - finally: - tf2._force_enable = tf2_force_enabled # pylint: disable=protected-access - def test_custom_initializer_saving(self): def my_initializer(shape, dtype=None): diff --git a/tensorflow/python/keras/ops.py b/tensorflow/python/keras/ops.py deleted file mode 100644 index 23bdc8dcd56..00000000000 --- a/tensorflow/python/keras/ops.py +++ /dev/null @@ -1,110 +0,0 @@ -# Copyright 2015 The TensorFlow Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# ============================================================================== -"""Module for exporting TensorFlow ops under tf.keras.*.""" -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -from tensorflow.python.framework import ops -from tensorflow.python.ops import init_ops -from tensorflow.python.ops import init_ops_v2 -from tensorflow.python.util.tf_export import keras_export - - -# pylint: disable=bad-continuation -keras_export(v1=["keras.initializers.Initializer"])( - init_ops.Initializer) -keras_export(v1=["keras.initializers.Zeros", "keras.initializers.zeros"])( - init_ops.Zeros) -keras_export(v1=["keras.initializers.Ones", "keras.initializers.ones"])( - init_ops.Ones) -keras_export(v1=["keras.initializers.Constant", "keras.initializers.constant"])( - init_ops.Constant) -keras_export(v1=["keras.initializers.VarianceScaling"])( - init_ops.VarianceScaling) -keras_export(v1=["keras.initializers.Orthogonal", - "keras.initializers.orthogonal"])( - init_ops.Orthogonal) -keras_export(v1=["keras.initializers.Identity", - "keras.initializers.identity"])( - init_ops.Identity) -keras_export(v1=["keras.initializers.glorot_uniform"])( - init_ops.GlorotUniform) -keras_export(v1=["keras.initializers.glorot_normal"])( - init_ops.GlorotNormal) -keras_export(v1=["keras.initializers.lecun_normal"])( - init_ops.lecun_normal) -keras_export(v1=["keras.initializers.lecun_uniform"])( - init_ops.lecun_uniform) -keras_export(v1=["keras.initializers.he_normal"])( - init_ops.he_normal) -keras_export(v1=["keras.initializers.he_uniform"])( - init_ops.he_uniform) - -keras_export("keras.initializers.Initializer", v1=[])( - init_ops_v2.Initializer) -keras_export( - "keras.initializers.Zeros", "keras.initializers.zeros", v1=[])( - init_ops_v2.Zeros) -keras_export( - "keras.initializers.Ones", "keras.initializers.ones", v1=[])( - init_ops_v2.Ones) -keras_export( - "keras.initializers.Constant", "keras.initializers.constant", v1=[])( - init_ops_v2.Constant) -keras_export("keras.initializers.VarianceScaling", v1=[])( - init_ops_v2.VarianceScaling) -keras_export( - "keras.initializers.Orthogonal", "keras.initializers.orthogonal", v1=[])( - init_ops_v2.Orthogonal) -keras_export( - "keras.initializers.Identity", "keras.initializers.identity", v1=[])( - init_ops_v2.Identity) -keras_export( - "keras.initializers.GlorotUniform", - "keras.initializers.glorot_uniform", - v1=[])( - init_ops_v2.GlorotUniform) -keras_export( - "keras.initializers.GlorotNormal", - "keras.initializers.glorot_normal", - v1=[])( - init_ops_v2.GlorotNormal) -keras_export("keras.initializers.lecun_normal", v1=[])( - init_ops_v2.lecun_normal) -keras_export("keras.initializers.lecun_uniform", v1=[])( - init_ops_v2.lecun_uniform) -keras_export("keras.initializers.he_normal", v1=[])( - init_ops_v2.he_normal) -keras_export("keras.initializers.he_uniform", v1=[])( - init_ops_v2.he_uniform) -keras_export( - "keras.initializers.RandomNormal", - "keras.initializers.random_normal", - v1=[])( - init_ops_v2.RandomNormal) -keras_export( - "keras.initializers.RandomUniform", - "keras.initializers.random_uniform", - v1=[])( - init_ops_v2.RandomUniform) -keras_export( - "keras.initializers.TruncatedNormal", - "keras.initializers.truncated_normal", - v1=[])( - init_ops_v2.TruncatedNormal) -# pylint: enable=bad-continuation - -keras_export(v1=["keras.backend.name_scope"])(ops.name_scope_v1) diff --git a/tensorflow/python/ops/init_ops_v2.py b/tensorflow/python/ops/init_ops_v2.py index 4999c4d8aac..3c110fe9cf9 100644 --- a/tensorflow/python/ops/init_ops_v2.py +++ b/tensorflow/python/ops/init_ops_v2.py @@ -41,6 +41,7 @@ from tensorflow.python.ops import linalg_ops_impl 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.ops.init_ops import _compute_fans from tensorflow.python.util.tf_export import tf_export @@ -126,6 +127,8 @@ class Zeros(Initializer): ValuesError: If the dtype is not numeric or boolean. """ dtype = dtypes.as_dtype(dtype) + if not dtype.is_numpy_compatible or dtype == dtypes.string: + raise ValueError("Expected numeric or boolean dtype, got %s." % dtype) return array_ops.zeros(shape, dtype) @@ -991,33 +994,6 @@ def he_uniform(seed=None): # Utility functions. -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 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 fan_in, fan_out - - def _assert_float_dtype(dtype): """Validate and return floating point type based on `dtype`. diff --git a/tensorflow/tools/api/golden/v1/tensorflow.keras.initializers.-initializer.pbtxt b/tensorflow/tools/api/golden/v1/tensorflow.keras.initializers.-initializer.pbtxt index 8f10d1698e7..74597c8c7cf 100644 --- a/tensorflow/tools/api/golden/v1/tensorflow.keras.initializers.-initializer.pbtxt +++ b/tensorflow/tools/api/golden/v1/tensorflow.keras.initializers.-initializer.pbtxt @@ -1,6 +1,6 @@ path: "tensorflow.keras.initializers.Initializer" tf_class { - is_instance: "" + is_instance: "" is_instance: "" member_method { name: "__init__" diff --git a/tensorflow/tools/api/golden/v1/tensorflow.keras.initializers.-random-normal.pbtxt b/tensorflow/tools/api/golden/v1/tensorflow.keras.initializers.-random-normal.pbtxt index 0dc36c98210..c395b6c3fda 100644 --- a/tensorflow/tools/api/golden/v1/tensorflow.keras.initializers.-random-normal.pbtxt +++ b/tensorflow/tools/api/golden/v1/tensorflow.keras.initializers.-random-normal.pbtxt @@ -1,6 +1,6 @@ path: "tensorflow.keras.initializers.RandomNormal" tf_class { - is_instance: "" + is_instance: "" is_instance: "" is_instance: "" is_instance: "" diff --git a/tensorflow/tools/api/golden/v1/tensorflow.keras.initializers.-random-uniform.pbtxt b/tensorflow/tools/api/golden/v1/tensorflow.keras.initializers.-random-uniform.pbtxt index fd6647cb381..c43acee1881 100644 --- a/tensorflow/tools/api/golden/v1/tensorflow.keras.initializers.-random-uniform.pbtxt +++ b/tensorflow/tools/api/golden/v1/tensorflow.keras.initializers.-random-uniform.pbtxt @@ -1,6 +1,6 @@ path: "tensorflow.keras.initializers.RandomUniform" tf_class { - is_instance: "" + is_instance: "" is_instance: "" is_instance: "" is_instance: "" diff --git a/tensorflow/tools/api/golden/v1/tensorflow.keras.initializers.-truncated-normal.pbtxt b/tensorflow/tools/api/golden/v1/tensorflow.keras.initializers.-truncated-normal.pbtxt index 6fe47498271..0d6464c0b56 100644 --- a/tensorflow/tools/api/golden/v1/tensorflow.keras.initializers.-truncated-normal.pbtxt +++ b/tensorflow/tools/api/golden/v1/tensorflow.keras.initializers.-truncated-normal.pbtxt @@ -1,6 +1,6 @@ path: "tensorflow.keras.initializers.TruncatedNormal" tf_class { - is_instance: "" + is_instance: "" is_instance: "" is_instance: "" is_instance: "" diff --git a/tensorflow/tools/api/golden/v1/tensorflow.keras.initializers.he_normal.pbtxt b/tensorflow/tools/api/golden/v1/tensorflow.keras.initializers.he_normal.pbtxt new file mode 100644 index 00000000000..3d2141b445c --- /dev/null +++ b/tensorflow/tools/api/golden/v1/tensorflow.keras.initializers.he_normal.pbtxt @@ -0,0 +1,19 @@ +path: "tensorflow.keras.initializers.he_normal" +tf_class { + is_instance: "" + is_instance: "" + is_instance: "" + is_instance: "" + member_method { + name: "__init__" + argspec: "args=[\'self\', \'seed\'], varargs=None, keywords=None, defaults=[\'None\'], " + } + member_method { + name: "from_config" + argspec: "args=[\'cls\', \'config\'], varargs=None, keywords=None, defaults=None" + } + member_method { + name: "get_config" + argspec: "args=[\'self\'], varargs=None, keywords=None, defaults=None" + } +} diff --git a/tensorflow/tools/api/golden/v1/tensorflow.keras.initializers.he_uniform.pbtxt b/tensorflow/tools/api/golden/v1/tensorflow.keras.initializers.he_uniform.pbtxt new file mode 100644 index 00000000000..5fa07a71315 --- /dev/null +++ b/tensorflow/tools/api/golden/v1/tensorflow.keras.initializers.he_uniform.pbtxt @@ -0,0 +1,19 @@ +path: "tensorflow.keras.initializers.he_uniform" +tf_class { + is_instance: "" + is_instance: "" + is_instance: "" + is_instance: "" + member_method { + name: "__init__" + argspec: "args=[\'self\', \'seed\'], varargs=None, keywords=None, defaults=[\'None\'], " + } + member_method { + name: "from_config" + argspec: "args=[\'cls\', \'config\'], varargs=None, keywords=None, defaults=None" + } + member_method { + name: "get_config" + argspec: "args=[\'self\'], varargs=None, keywords=None, defaults=None" + } +} diff --git a/tensorflow/tools/api/golden/v1/tensorflow.keras.initializers.lecun_normal.pbtxt b/tensorflow/tools/api/golden/v1/tensorflow.keras.initializers.lecun_normal.pbtxt new file mode 100644 index 00000000000..e2a0ee1e548 --- /dev/null +++ b/tensorflow/tools/api/golden/v1/tensorflow.keras.initializers.lecun_normal.pbtxt @@ -0,0 +1,19 @@ +path: "tensorflow.keras.initializers.lecun_normal" +tf_class { + is_instance: "" + is_instance: "" + is_instance: "" + is_instance: "" + member_method { + name: "__init__" + argspec: "args=[\'self\', \'seed\'], varargs=None, keywords=None, defaults=[\'None\'], " + } + member_method { + name: "from_config" + argspec: "args=[\'cls\', \'config\'], varargs=None, keywords=None, defaults=None" + } + member_method { + name: "get_config" + argspec: "args=[\'self\'], varargs=None, keywords=None, defaults=None" + } +} diff --git a/tensorflow/tools/api/golden/v1/tensorflow.keras.initializers.lecun_uniform.pbtxt b/tensorflow/tools/api/golden/v1/tensorflow.keras.initializers.lecun_uniform.pbtxt new file mode 100644 index 00000000000..070d2ff8be9 --- /dev/null +++ b/tensorflow/tools/api/golden/v1/tensorflow.keras.initializers.lecun_uniform.pbtxt @@ -0,0 +1,19 @@ +path: "tensorflow.keras.initializers.lecun_uniform" +tf_class { + is_instance: "" + is_instance: "" + is_instance: "" + is_instance: "" + member_method { + name: "__init__" + argspec: "args=[\'self\', \'seed\'], varargs=None, keywords=None, defaults=[\'None\'], " + } + member_method { + name: "from_config" + argspec: "args=[\'cls\', \'config\'], varargs=None, keywords=None, defaults=None" + } + member_method { + name: "get_config" + argspec: "args=[\'self\'], varargs=None, keywords=None, defaults=None" + } +} diff --git a/tensorflow/tools/api/golden/v1/tensorflow.keras.initializers.normal.pbtxt b/tensorflow/tools/api/golden/v1/tensorflow.keras.initializers.normal.pbtxt index 145200c0a59..f1f9a7f0fba 100644 --- a/tensorflow/tools/api/golden/v1/tensorflow.keras.initializers.normal.pbtxt +++ b/tensorflow/tools/api/golden/v1/tensorflow.keras.initializers.normal.pbtxt @@ -1,6 +1,6 @@ path: "tensorflow.keras.initializers.normal" tf_class { - is_instance: "" + is_instance: "" is_instance: "" is_instance: "" is_instance: "" diff --git a/tensorflow/tools/api/golden/v1/tensorflow.keras.initializers.pbtxt b/tensorflow/tools/api/golden/v1/tensorflow.keras.initializers.pbtxt index 1540c2915bf..11794d5005a 100644 --- a/tensorflow/tools/api/golden/v1/tensorflow.keras.initializers.pbtxt +++ b/tensorflow/tools/api/golden/v1/tensorflow.keras.initializers.pbtxt @@ -52,10 +52,26 @@ tf_module { name: "glorot_uniform" mtype: "" } + member { + name: "he_normal" + mtype: "" + } + member { + name: "he_uniform" + mtype: "" + } member { name: "identity" mtype: "" } + member { + name: "lecun_normal" + mtype: "" + } + member { + name: "lecun_uniform" + mtype: "" + } member { name: "normal" mtype: "" @@ -96,22 +112,6 @@ tf_module { name: "get" argspec: "args=[\'identifier\'], varargs=None, keywords=None, defaults=None" } - member_method { - name: "he_normal" - argspec: "args=[\'seed\'], varargs=None, keywords=None, defaults=[\'None\'], " - } - member_method { - name: "he_uniform" - argspec: "args=[\'seed\'], varargs=None, keywords=None, defaults=[\'None\'], " - } - member_method { - name: "lecun_normal" - argspec: "args=[\'seed\'], varargs=None, keywords=None, defaults=[\'None\'], " - } - member_method { - name: "lecun_uniform" - argspec: "args=[\'seed\'], varargs=None, keywords=None, defaults=[\'None\'], " - } member_method { name: "serialize" argspec: "args=[\'initializer\'], varargs=None, keywords=None, defaults=None" diff --git a/tensorflow/tools/api/golden/v1/tensorflow.keras.initializers.random_normal.pbtxt b/tensorflow/tools/api/golden/v1/tensorflow.keras.initializers.random_normal.pbtxt index 51ff41cb283..fc24a55cb9b 100644 --- a/tensorflow/tools/api/golden/v1/tensorflow.keras.initializers.random_normal.pbtxt +++ b/tensorflow/tools/api/golden/v1/tensorflow.keras.initializers.random_normal.pbtxt @@ -1,6 +1,6 @@ path: "tensorflow.keras.initializers.random_normal" tf_class { - is_instance: "" + is_instance: "" is_instance: "" is_instance: "" is_instance: "" diff --git a/tensorflow/tools/api/golden/v1/tensorflow.keras.initializers.random_uniform.pbtxt b/tensorflow/tools/api/golden/v1/tensorflow.keras.initializers.random_uniform.pbtxt index bdb6724d063..1d3fd598799 100644 --- a/tensorflow/tools/api/golden/v1/tensorflow.keras.initializers.random_uniform.pbtxt +++ b/tensorflow/tools/api/golden/v1/tensorflow.keras.initializers.random_uniform.pbtxt @@ -1,6 +1,6 @@ path: "tensorflow.keras.initializers.random_uniform" tf_class { - is_instance: "" + is_instance: "" is_instance: "" is_instance: "" is_instance: "" diff --git a/tensorflow/tools/api/golden/v1/tensorflow.keras.initializers.truncated_normal.pbtxt b/tensorflow/tools/api/golden/v1/tensorflow.keras.initializers.truncated_normal.pbtxt index 7647e170786..63232343dcd 100644 --- a/tensorflow/tools/api/golden/v1/tensorflow.keras.initializers.truncated_normal.pbtxt +++ b/tensorflow/tools/api/golden/v1/tensorflow.keras.initializers.truncated_normal.pbtxt @@ -1,6 +1,6 @@ path: "tensorflow.keras.initializers.truncated_normal" tf_class { - is_instance: "" + is_instance: "" is_instance: "" is_instance: "" is_instance: "" diff --git a/tensorflow/tools/api/golden/v1/tensorflow.keras.initializers.uniform.pbtxt b/tensorflow/tools/api/golden/v1/tensorflow.keras.initializers.uniform.pbtxt index 0b85fbea918..ac43b6e992c 100644 --- a/tensorflow/tools/api/golden/v1/tensorflow.keras.initializers.uniform.pbtxt +++ b/tensorflow/tools/api/golden/v1/tensorflow.keras.initializers.uniform.pbtxt @@ -1,6 +1,6 @@ path: "tensorflow.keras.initializers.uniform" tf_class { - is_instance: "" + is_instance: "" is_instance: "" is_instance: "" is_instance: "" diff --git a/tensorflow/tools/api/golden/v2/tensorflow.initializers.-constant.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.initializers.-constant.pbtxt index 502fda18fd8..175a5a9637c 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.initializers.-constant.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.initializers.-constant.pbtxt @@ -1,7 +1,7 @@ path: "tensorflow.initializers.Constant" tf_class { - is_instance: "" - is_instance: "" + is_instance: "" + is_instance: "" is_instance: "" member_method { name: "__init__" 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 06beddc818b..0df534b7567 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.initializers.-glorot-normal.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.initializers.-glorot-normal.pbtxt @@ -1,8 +1,10 @@ path: "tensorflow.initializers.GlorotNormal" tf_class { - is_instance: "" + is_instance: "" + is_instance: "" is_instance: "" is_instance: "" + is_instance: "" is_instance: "" member_method { name: "__init__" 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 f37448f6346..15db2f10eb5 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.initializers.-glorot-uniform.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.initializers.-glorot-uniform.pbtxt @@ -1,8 +1,10 @@ path: "tensorflow.initializers.GlorotUniform" tf_class { - is_instance: "" + is_instance: "" + is_instance: "" is_instance: "" is_instance: "" + is_instance: "" is_instance: "" member_method { name: "__init__" diff --git a/tensorflow/tools/api/golden/v2/tensorflow.initializers.-he-normal.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.initializers.-he-normal.pbtxt new file mode 100644 index 00000000000..c23aa7827c3 --- /dev/null +++ b/tensorflow/tools/api/golden/v2/tensorflow.initializers.-he-normal.pbtxt @@ -0,0 +1,21 @@ +path: "tensorflow.initializers.HeNormal" +tf_class { + is_instance: "" + is_instance: "" + is_instance: "" + is_instance: "" + is_instance: "" + is_instance: "" + member_method { + name: "__init__" + argspec: "args=[\'self\', \'seed\'], varargs=None, keywords=None, defaults=[\'None\'], " + } + member_method { + name: "from_config" + argspec: "args=[\'cls\', \'config\'], varargs=None, keywords=None, defaults=None" + } + member_method { + name: "get_config" + argspec: "args=[\'self\'], varargs=None, keywords=None, defaults=None" + } +} diff --git a/tensorflow/tools/api/golden/v2/tensorflow.initializers.-he-uniform.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.initializers.-he-uniform.pbtxt new file mode 100644 index 00000000000..70412ed4252 --- /dev/null +++ b/tensorflow/tools/api/golden/v2/tensorflow.initializers.-he-uniform.pbtxt @@ -0,0 +1,21 @@ +path: "tensorflow.initializers.HeUniform" +tf_class { + is_instance: "" + is_instance: "" + is_instance: "" + is_instance: "" + is_instance: "" + is_instance: "" + member_method { + name: "__init__" + argspec: "args=[\'self\', \'seed\'], varargs=None, keywords=None, defaults=[\'None\'], " + } + member_method { + name: "from_config" + argspec: "args=[\'cls\', \'config\'], varargs=None, keywords=None, defaults=None" + } + member_method { + name: "get_config" + argspec: "args=[\'self\'], varargs=None, keywords=None, defaults=None" + } +} diff --git a/tensorflow/tools/api/golden/v2/tensorflow.initializers.-identity.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.initializers.-identity.pbtxt index fc6f16b04fa..b6f3b9fe45d 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.initializers.-identity.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.initializers.-identity.pbtxt @@ -1,7 +1,9 @@ path: "tensorflow.initializers.Identity" tf_class { + is_instance: "" is_instance: "" is_instance: "" + is_instance: "" is_instance: "" member_method { name: "__init__" diff --git a/tensorflow/tools/api/golden/v2/tensorflow.initializers.-initializer.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.initializers.-initializer.pbtxt index 03a69732c6c..8b032efce8b 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.initializers.-initializer.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.initializers.-initializer.pbtxt @@ -1,6 +1,6 @@ path: "tensorflow.initializers.Initializer" tf_class { - is_instance: "" + is_instance: "" is_instance: "" member_method { name: "__init__" diff --git a/tensorflow/tools/api/golden/v2/tensorflow.initializers.-lecun-normal.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.initializers.-lecun-normal.pbtxt new file mode 100644 index 00000000000..a392394e113 --- /dev/null +++ b/tensorflow/tools/api/golden/v2/tensorflow.initializers.-lecun-normal.pbtxt @@ -0,0 +1,21 @@ +path: "tensorflow.initializers.LecunNormal" +tf_class { + is_instance: "" + is_instance: "" + is_instance: "" + is_instance: "" + is_instance: "" + is_instance: "" + member_method { + name: "__init__" + argspec: "args=[\'self\', \'seed\'], varargs=None, keywords=None, defaults=[\'None\'], " + } + member_method { + name: "from_config" + argspec: "args=[\'cls\', \'config\'], varargs=None, keywords=None, defaults=None" + } + member_method { + name: "get_config" + argspec: "args=[\'self\'], varargs=None, keywords=None, defaults=None" + } +} diff --git a/tensorflow/tools/api/golden/v2/tensorflow.initializers.-lecun-uniform.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.initializers.-lecun-uniform.pbtxt new file mode 100644 index 00000000000..d863752d047 --- /dev/null +++ b/tensorflow/tools/api/golden/v2/tensorflow.initializers.-lecun-uniform.pbtxt @@ -0,0 +1,21 @@ +path: "tensorflow.initializers.LecunUniform" +tf_class { + is_instance: "" + is_instance: "" + is_instance: "" + is_instance: "" + is_instance: "" + is_instance: "" + member_method { + name: "__init__" + argspec: "args=[\'self\', \'seed\'], varargs=None, keywords=None, defaults=[\'None\'], " + } + member_method { + name: "from_config" + argspec: "args=[\'cls\', \'config\'], varargs=None, keywords=None, defaults=None" + } + member_method { + name: "get_config" + argspec: "args=[\'self\'], varargs=None, keywords=None, defaults=None" + } +} diff --git a/tensorflow/tools/api/golden/v2/tensorflow.initializers.-ones.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.initializers.-ones.pbtxt index c2ff715c649..ad86af8e06b 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.initializers.-ones.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.initializers.-ones.pbtxt @@ -1,7 +1,9 @@ path: "tensorflow.initializers.Ones" tf_class { + is_instance: "" is_instance: "" is_instance: "" + is_instance: "" is_instance: "" member_method { name: "__init__" diff --git a/tensorflow/tools/api/golden/v2/tensorflow.initializers.-orthogonal.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.initializers.-orthogonal.pbtxt index 303752f934f..c918524bf17 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.initializers.-orthogonal.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.initializers.-orthogonal.pbtxt @@ -1,7 +1,9 @@ path: "tensorflow.initializers.Orthogonal" tf_class { + is_instance: "" is_instance: "" is_instance: "" + is_instance: "" is_instance: "" member_method { name: "__init__" diff --git a/tensorflow/tools/api/golden/v2/tensorflow.initializers.-random-normal.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.initializers.-random-normal.pbtxt index c1b1dfb4d23..aab2d0c5916 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.initializers.-random-normal.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.initializers.-random-normal.pbtxt @@ -1,7 +1,9 @@ path: "tensorflow.initializers.RandomNormal" tf_class { + is_instance: "" is_instance: "" is_instance: "" + is_instance: "" is_instance: "" member_method { name: "__init__" diff --git a/tensorflow/tools/api/golden/v2/tensorflow.initializers.-random-uniform.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.initializers.-random-uniform.pbtxt index eac13a13246..3952a353150 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.initializers.-random-uniform.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.initializers.-random-uniform.pbtxt @@ -1,7 +1,9 @@ path: "tensorflow.initializers.RandomUniform" tf_class { + is_instance: "" is_instance: "" is_instance: "" + is_instance: "" is_instance: "" member_method { name: "__init__" 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 b796faef0cf..53b9f2039e5 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.initializers.-truncated-normal.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.initializers.-truncated-normal.pbtxt @@ -1,7 +1,9 @@ path: "tensorflow.initializers.TruncatedNormal" tf_class { + is_instance: "" is_instance: "" is_instance: "" + is_instance: "" is_instance: "" member_method { name: "__init__" 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 ea46406d3a6..bb9a8470467 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.initializers.-variance-scaling.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.initializers.-variance-scaling.pbtxt @@ -1,7 +1,9 @@ path: "tensorflow.initializers.VarianceScaling" tf_class { + is_instance: "" is_instance: "" is_instance: "" + is_instance: "" is_instance: "" member_method { name: "__init__" diff --git a/tensorflow/tools/api/golden/v2/tensorflow.initializers.-zeros.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.initializers.-zeros.pbtxt index 2596186705f..45a1535e052 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.initializers.-zeros.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.initializers.-zeros.pbtxt @@ -1,7 +1,9 @@ path: "tensorflow.initializers.Zeros" tf_class { + is_instance: "" is_instance: "" is_instance: "" + is_instance: "" is_instance: "" member_method { name: "__init__" diff --git a/tensorflow/tools/api/golden/v2/tensorflow.initializers.constant.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.initializers.constant.pbtxt index f26775f4c84..1fa3c47ade8 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.initializers.constant.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.initializers.constant.pbtxt @@ -1,7 +1,7 @@ path: "tensorflow.initializers.constant" tf_class { - is_instance: "" - is_instance: "" + is_instance: "" + is_instance: "" is_instance: "" member_method { name: "__init__" 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 0af16f3ae89..30e92a31858 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.initializers.glorot_normal.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.initializers.glorot_normal.pbtxt @@ -1,8 +1,10 @@ path: "tensorflow.initializers.glorot_normal" tf_class { - is_instance: "" + is_instance: "" + is_instance: "" is_instance: "" is_instance: "" + is_instance: "" is_instance: "" member_method { name: "__init__" 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 d8272f2c64f..fc43bef7141 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.initializers.glorot_uniform.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.initializers.glorot_uniform.pbtxt @@ -1,8 +1,10 @@ path: "tensorflow.initializers.glorot_uniform" tf_class { - is_instance: "" + is_instance: "" + is_instance: "" is_instance: "" is_instance: "" + is_instance: "" is_instance: "" member_method { name: "__init__" diff --git a/tensorflow/tools/api/golden/v2/tensorflow.initializers.he_normal.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.initializers.he_normal.pbtxt new file mode 100644 index 00000000000..0cade59f8de --- /dev/null +++ b/tensorflow/tools/api/golden/v2/tensorflow.initializers.he_normal.pbtxt @@ -0,0 +1,21 @@ +path: "tensorflow.initializers.he_normal" +tf_class { + is_instance: "" + is_instance: "" + is_instance: "" + is_instance: "" + is_instance: "" + is_instance: "" + member_method { + name: "__init__" + argspec: "args=[\'self\', \'seed\'], varargs=None, keywords=None, defaults=[\'None\'], " + } + member_method { + name: "from_config" + argspec: "args=[\'cls\', \'config\'], varargs=None, keywords=None, defaults=None" + } + member_method { + name: "get_config" + argspec: "args=[\'self\'], varargs=None, keywords=None, defaults=None" + } +} diff --git a/tensorflow/tools/api/golden/v2/tensorflow.initializers.he_uniform.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.initializers.he_uniform.pbtxt new file mode 100644 index 00000000000..3b43fd2c763 --- /dev/null +++ b/tensorflow/tools/api/golden/v2/tensorflow.initializers.he_uniform.pbtxt @@ -0,0 +1,21 @@ +path: "tensorflow.initializers.he_uniform" +tf_class { + is_instance: "" + is_instance: "" + is_instance: "" + is_instance: "" + is_instance: "" + is_instance: "" + member_method { + name: "__init__" + argspec: "args=[\'self\', \'seed\'], varargs=None, keywords=None, defaults=[\'None\'], " + } + member_method { + name: "from_config" + argspec: "args=[\'cls\', \'config\'], varargs=None, keywords=None, defaults=None" + } + member_method { + name: "get_config" + argspec: "args=[\'self\'], varargs=None, keywords=None, defaults=None" + } +} diff --git a/tensorflow/tools/api/golden/v2/tensorflow.initializers.identity.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.initializers.identity.pbtxt index c11593fe312..e857e75a84c 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.initializers.identity.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.initializers.identity.pbtxt @@ -1,7 +1,9 @@ path: "tensorflow.initializers.identity" tf_class { + is_instance: "" is_instance: "" is_instance: "" + is_instance: "" is_instance: "" member_method { name: "__init__" diff --git a/tensorflow/tools/api/golden/v2/tensorflow.initializers.lecun_normal.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.initializers.lecun_normal.pbtxt new file mode 100644 index 00000000000..8dfe4da3ea4 --- /dev/null +++ b/tensorflow/tools/api/golden/v2/tensorflow.initializers.lecun_normal.pbtxt @@ -0,0 +1,21 @@ +path: "tensorflow.initializers.lecun_normal" +tf_class { + is_instance: "" + is_instance: "" + is_instance: "" + is_instance: "" + is_instance: "" + is_instance: "" + member_method { + name: "__init__" + argspec: "args=[\'self\', \'seed\'], varargs=None, keywords=None, defaults=[\'None\'], " + } + member_method { + name: "from_config" + argspec: "args=[\'cls\', \'config\'], varargs=None, keywords=None, defaults=None" + } + member_method { + name: "get_config" + argspec: "args=[\'self\'], varargs=None, keywords=None, defaults=None" + } +} diff --git a/tensorflow/tools/api/golden/v2/tensorflow.initializers.lecun_uniform.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.initializers.lecun_uniform.pbtxt new file mode 100644 index 00000000000..df8dfefc69c --- /dev/null +++ b/tensorflow/tools/api/golden/v2/tensorflow.initializers.lecun_uniform.pbtxt @@ -0,0 +1,21 @@ +path: "tensorflow.initializers.lecun_uniform" +tf_class { + is_instance: "" + is_instance: "" + is_instance: "" + is_instance: "" + is_instance: "" + is_instance: "" + member_method { + name: "__init__" + argspec: "args=[\'self\', \'seed\'], varargs=None, keywords=None, defaults=[\'None\'], " + } + member_method { + name: "from_config" + argspec: "args=[\'cls\', \'config\'], varargs=None, keywords=None, defaults=None" + } + member_method { + name: "get_config" + argspec: "args=[\'self\'], varargs=None, keywords=None, defaults=None" + } +} diff --git a/tensorflow/tools/api/golden/v2/tensorflow.initializers.ones.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.initializers.ones.pbtxt index 436465c10a6..9c9024bd203 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.initializers.ones.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.initializers.ones.pbtxt @@ -1,7 +1,9 @@ path: "tensorflow.initializers.ones" tf_class { + is_instance: "" is_instance: "" is_instance: "" + is_instance: "" is_instance: "" member_method { name: "__init__" diff --git a/tensorflow/tools/api/golden/v2/tensorflow.initializers.orthogonal.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.initializers.orthogonal.pbtxt index 6603f66736e..fa90188c798 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.initializers.orthogonal.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.initializers.orthogonal.pbtxt @@ -1,7 +1,9 @@ path: "tensorflow.initializers.orthogonal" tf_class { + is_instance: "" is_instance: "" is_instance: "" + is_instance: "" is_instance: "" member_method { name: "__init__" diff --git a/tensorflow/tools/api/golden/v2/tensorflow.initializers.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.initializers.pbtxt index bd61603c835..baed423d368 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.initializers.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.initializers.pbtxt @@ -12,6 +12,14 @@ tf_module { name: "GlorotUniform" mtype: "" } + member { + name: "HeNormal" + mtype: "" + } + member { + name: "HeUniform" + mtype: "" + } member { name: "Identity" mtype: "" @@ -20,6 +28,14 @@ tf_module { name: "Initializer" mtype: "" } + member { + name: "LecunNormal" + mtype: "" + } + member { + name: "LecunUniform" + mtype: "" + } member { name: "Ones" mtype: "" @@ -60,10 +76,26 @@ tf_module { name: "glorot_uniform" mtype: "" } + member { + name: "he_normal" + mtype: "" + } + member { + name: "he_uniform" + mtype: "" + } member { name: "identity" mtype: "" } + member { + name: "lecun_normal" + mtype: "" + } + member { + name: "lecun_uniform" + mtype: "" + } member { name: "ones" mtype: "" @@ -84,6 +116,10 @@ tf_module { name: "truncated_normal" mtype: "" } + member { + name: "variance_scaling" + mtype: "" + } member { name: "zeros" mtype: "" @@ -96,22 +132,6 @@ tf_module { name: "get" argspec: "args=[\'identifier\'], varargs=None, keywords=None, defaults=None" } - member_method { - name: "he_normal" - argspec: "args=[\'seed\'], varargs=None, keywords=None, defaults=[\'None\'], " - } - member_method { - name: "he_uniform" - argspec: "args=[\'seed\'], varargs=None, keywords=None, defaults=[\'None\'], " - } - member_method { - name: "lecun_normal" - argspec: "args=[\'seed\'], varargs=None, keywords=None, defaults=[\'None\'], " - } - member_method { - name: "lecun_uniform" - argspec: "args=[\'seed\'], varargs=None, keywords=None, defaults=[\'None\'], " - } member_method { name: "serialize" argspec: "args=[\'initializer\'], varargs=None, keywords=None, defaults=None" diff --git a/tensorflow/tools/api/golden/v2/tensorflow.initializers.random_normal.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.initializers.random_normal.pbtxt index a2a197b3541..3cc237e5c91 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.initializers.random_normal.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.initializers.random_normal.pbtxt @@ -1,7 +1,9 @@ path: "tensorflow.initializers.random_normal" tf_class { + is_instance: "" is_instance: "" is_instance: "" + is_instance: "" is_instance: "" member_method { name: "__init__" diff --git a/tensorflow/tools/api/golden/v2/tensorflow.initializers.random_uniform.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.initializers.random_uniform.pbtxt index 60621bfe2f0..ab6f955984e 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.initializers.random_uniform.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.initializers.random_uniform.pbtxt @@ -1,7 +1,9 @@ path: "tensorflow.initializers.random_uniform" tf_class { + is_instance: "" is_instance: "" is_instance: "" + is_instance: "" is_instance: "" member_method { name: "__init__" 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 0504d7e2d48..9750914aeb0 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.initializers.truncated_normal.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.initializers.truncated_normal.pbtxt @@ -1,7 +1,9 @@ path: "tensorflow.initializers.truncated_normal" tf_class { + is_instance: "" is_instance: "" is_instance: "" + is_instance: "" is_instance: "" member_method { name: "__init__" diff --git a/tensorflow/tools/api/golden/v2/tensorflow.initializers.variance_scaling.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.initializers.variance_scaling.pbtxt new file mode 100644 index 00000000000..5cff80eba00 --- /dev/null +++ b/tensorflow/tools/api/golden/v2/tensorflow.initializers.variance_scaling.pbtxt @@ -0,0 +1,20 @@ +path: "tensorflow.initializers.variance_scaling" +tf_class { + is_instance: "" + is_instance: "" + is_instance: "" + is_instance: "" + is_instance: "" + member_method { + name: "__init__" + argspec: "args=[\'self\', \'scale\', \'mode\', \'distribution\', \'seed\'], varargs=None, keywords=None, defaults=[\'1.0\', \'fan_in\', \'truncated_normal\', \'None\'], " + } + member_method { + name: "from_config" + argspec: "args=[\'cls\', \'config\'], varargs=None, keywords=None, defaults=None" + } + member_method { + name: "get_config" + argspec: "args=[\'self\'], varargs=None, keywords=None, defaults=None" + } +} diff --git a/tensorflow/tools/api/golden/v2/tensorflow.initializers.zeros.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.initializers.zeros.pbtxt index 27774af69a2..dc75f07fca9 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.initializers.zeros.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.initializers.zeros.pbtxt @@ -1,7 +1,9 @@ path: "tensorflow.initializers.zeros" tf_class { + is_instance: "" is_instance: "" is_instance: "" + is_instance: "" is_instance: "" member_method { name: "__init__" diff --git a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-constant.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-constant.pbtxt index 71b5acc38fd..68135c36c92 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-constant.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-constant.pbtxt @@ -1,7 +1,7 @@ path: "tensorflow.keras.initializers.Constant" tf_class { - is_instance: "" - is_instance: "" + is_instance: "" + is_instance: "" is_instance: "" member_method { name: "__init__" 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 edff37e3a15..a9f559347bd 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 @@ -1,8 +1,10 @@ path: "tensorflow.keras.initializers.GlorotNormal" tf_class { - is_instance: "" + is_instance: "" + is_instance: "" is_instance: "" is_instance: "" + is_instance: "" is_instance: "" member_method { name: "__init__" 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 bc685ce0d58..255b1c14f13 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 @@ -1,8 +1,10 @@ path: "tensorflow.keras.initializers.GlorotUniform" tf_class { - is_instance: "" + is_instance: "" + is_instance: "" is_instance: "" is_instance: "" + is_instance: "" is_instance: "" member_method { name: "__init__" 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 new file mode 100644 index 00000000000..5b53b41efd6 --- /dev/null +++ b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-he-normal.pbtxt @@ -0,0 +1,21 @@ +path: "tensorflow.keras.initializers.HeNormal" +tf_class { + is_instance: "" + is_instance: "" + is_instance: "" + is_instance: "" + is_instance: "" + is_instance: "" + member_method { + name: "__init__" + argspec: "args=[\'self\', \'seed\'], varargs=None, keywords=None, defaults=[\'None\'], " + } + member_method { + name: "from_config" + argspec: "args=[\'cls\', \'config\'], varargs=None, keywords=None, defaults=None" + } + member_method { + name: "get_config" + argspec: "args=[\'self\'], varargs=None, keywords=None, defaults=None" + } +} 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 new file mode 100644 index 00000000000..41fd8a2e135 --- /dev/null +++ b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-he-uniform.pbtxt @@ -0,0 +1,21 @@ +path: "tensorflow.keras.initializers.HeUniform" +tf_class { + is_instance: "" + is_instance: "" + is_instance: "" + is_instance: "" + is_instance: "" + is_instance: "" + member_method { + name: "__init__" + argspec: "args=[\'self\', \'seed\'], varargs=None, keywords=None, defaults=[\'None\'], " + } + member_method { + name: "from_config" + argspec: "args=[\'cls\', \'config\'], varargs=None, keywords=None, defaults=None" + } + member_method { + name: "get_config" + argspec: "args=[\'self\'], varargs=None, keywords=None, defaults=None" + } +} 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 e0f0f3a93da..1a02232371b 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-identity.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-identity.pbtxt @@ -1,7 +1,9 @@ path: "tensorflow.keras.initializers.Identity" tf_class { + is_instance: "" is_instance: "" is_instance: "" + is_instance: "" is_instance: "" member_method { name: "__init__" diff --git a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-initializer.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-initializer.pbtxt index ae5ea9e48c9..74597c8c7cf 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-initializer.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-initializer.pbtxt @@ -1,6 +1,6 @@ path: "tensorflow.keras.initializers.Initializer" tf_class { - is_instance: "" + is_instance: "" is_instance: "" member_method { name: "__init__" 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 new file mode 100644 index 00000000000..6ef45b229ac --- /dev/null +++ b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-lecun-normal.pbtxt @@ -0,0 +1,21 @@ +path: "tensorflow.keras.initializers.LecunNormal" +tf_class { + is_instance: "" + is_instance: "" + is_instance: "" + is_instance: "" + is_instance: "" + is_instance: "" + member_method { + name: "__init__" + argspec: "args=[\'self\', \'seed\'], varargs=None, keywords=None, defaults=[\'None\'], " + } + member_method { + name: "from_config" + argspec: "args=[\'cls\', \'config\'], varargs=None, keywords=None, defaults=None" + } + member_method { + name: "get_config" + argspec: "args=[\'self\'], varargs=None, keywords=None, defaults=None" + } +} 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 new file mode 100644 index 00000000000..d2e590a8855 --- /dev/null +++ b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-lecun-uniform.pbtxt @@ -0,0 +1,21 @@ +path: "tensorflow.keras.initializers.LecunUniform" +tf_class { + is_instance: "" + is_instance: "" + is_instance: "" + is_instance: "" + is_instance: "" + is_instance: "" + member_method { + name: "__init__" + argspec: "args=[\'self\', \'seed\'], varargs=None, keywords=None, defaults=[\'None\'], " + } + member_method { + name: "from_config" + argspec: "args=[\'cls\', \'config\'], varargs=None, keywords=None, defaults=None" + } + member_method { + name: "get_config" + argspec: "args=[\'self\'], varargs=None, keywords=None, defaults=None" + } +} diff --git a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-ones.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-ones.pbtxt index 57c0b0917d1..43dee054425 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-ones.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-ones.pbtxt @@ -1,7 +1,9 @@ path: "tensorflow.keras.initializers.Ones" tf_class { + is_instance: "" is_instance: "" is_instance: "" + is_instance: "" is_instance: "" member_method { name: "__init__" 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 b24844fa35c..e1d23edfd09 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-orthogonal.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-orthogonal.pbtxt @@ -1,7 +1,9 @@ path: "tensorflow.keras.initializers.Orthogonal" tf_class { + is_instance: "" is_instance: "" is_instance: "" + is_instance: "" is_instance: "" member_method { name: "__init__" diff --git a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-random-normal.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-random-normal.pbtxt index 0753827aa67..8d165faa6c8 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-random-normal.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-random-normal.pbtxt @@ -1,7 +1,9 @@ path: "tensorflow.keras.initializers.RandomNormal" tf_class { + is_instance: "" is_instance: "" is_instance: "" + is_instance: "" is_instance: "" member_method { name: "__init__" diff --git a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-random-uniform.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-random-uniform.pbtxt index 280b0a0243d..a843a1e3cfc 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-random-uniform.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-random-uniform.pbtxt @@ -1,7 +1,9 @@ path: "tensorflow.keras.initializers.RandomUniform" tf_class { + is_instance: "" is_instance: "" is_instance: "" + is_instance: "" is_instance: "" member_method { name: "__init__" 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 4076aa595fe..14fe9547976 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,7 +1,9 @@ path: "tensorflow.keras.initializers.TruncatedNormal" tf_class { + is_instance: "" is_instance: "" is_instance: "" + is_instance: "" is_instance: "" member_method { name: "__init__" 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 a68219def66..c0e3d3585b8 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,7 +1,9 @@ path: "tensorflow.keras.initializers.VarianceScaling" tf_class { + is_instance: "" is_instance: "" is_instance: "" + is_instance: "" is_instance: "" member_method { name: "__init__" diff --git a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-zeros.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-zeros.pbtxt index 129fa18c617..1afb930ec53 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-zeros.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.-zeros.pbtxt @@ -1,7 +1,9 @@ path: "tensorflow.keras.initializers.Zeros" tf_class { + is_instance: "" is_instance: "" is_instance: "" + is_instance: "" is_instance: "" member_method { name: "__init__" diff --git a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.constant.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.constant.pbtxt index b03cbb8eb80..7324655c00a 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.constant.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.constant.pbtxt @@ -1,7 +1,7 @@ path: "tensorflow.keras.initializers.constant" tf_class { - is_instance: "" - is_instance: "" + is_instance: "" + is_instance: "" is_instance: "" member_method { name: "__init__" 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 02f8c252bda..5bca6a37ee1 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 @@ -1,8 +1,10 @@ path: "tensorflow.keras.initializers.glorot_normal" tf_class { - is_instance: "" + is_instance: "" + is_instance: "" is_instance: "" is_instance: "" + is_instance: "" is_instance: "" member_method { name: "__init__" 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 6d18a3b6e7e..3a6cbe15e18 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 @@ -1,8 +1,10 @@ path: "tensorflow.keras.initializers.glorot_uniform" tf_class { - is_instance: "" + is_instance: "" + is_instance: "" is_instance: "" is_instance: "" + is_instance: "" is_instance: "" member_method { name: "__init__" 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 new file mode 100644 index 00000000000..5ece8aee902 --- /dev/null +++ b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.he_normal.pbtxt @@ -0,0 +1,21 @@ +path: "tensorflow.keras.initializers.he_normal" +tf_class { + is_instance: "" + is_instance: "" + is_instance: "" + is_instance: "" + is_instance: "" + is_instance: "" + member_method { + name: "__init__" + argspec: "args=[\'self\', \'seed\'], varargs=None, keywords=None, defaults=[\'None\'], " + } + member_method { + name: "from_config" + argspec: "args=[\'cls\', \'config\'], varargs=None, keywords=None, defaults=None" + } + member_method { + name: "get_config" + argspec: "args=[\'self\'], varargs=None, keywords=None, defaults=None" + } +} 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 new file mode 100644 index 00000000000..0d2dc7ed5b2 --- /dev/null +++ b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.he_uniform.pbtxt @@ -0,0 +1,21 @@ +path: "tensorflow.keras.initializers.he_uniform" +tf_class { + is_instance: "" + is_instance: "" + is_instance: "" + is_instance: "" + is_instance: "" + is_instance: "" + member_method { + name: "__init__" + argspec: "args=[\'self\', \'seed\'], varargs=None, keywords=None, defaults=[\'None\'], " + } + member_method { + name: "from_config" + argspec: "args=[\'cls\', \'config\'], varargs=None, keywords=None, defaults=None" + } + member_method { + name: "get_config" + argspec: "args=[\'self\'], varargs=None, keywords=None, defaults=None" + } +} 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 dcdb6ddf5f0..647864a25fb 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.identity.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.identity.pbtxt @@ -1,7 +1,9 @@ path: "tensorflow.keras.initializers.identity" tf_class { + is_instance: "" is_instance: "" is_instance: "" + is_instance: "" is_instance: "" member_method { name: "__init__" 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 new file mode 100644 index 00000000000..4eb04c91864 --- /dev/null +++ b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.lecun_normal.pbtxt @@ -0,0 +1,21 @@ +path: "tensorflow.keras.initializers.lecun_normal" +tf_class { + is_instance: "" + is_instance: "" + is_instance: "" + is_instance: "" + is_instance: "" + is_instance: "" + member_method { + name: "__init__" + argspec: "args=[\'self\', \'seed\'], varargs=None, keywords=None, defaults=[\'None\'], " + } + member_method { + name: "from_config" + argspec: "args=[\'cls\', \'config\'], varargs=None, keywords=None, defaults=None" + } + member_method { + name: "get_config" + argspec: "args=[\'self\'], varargs=None, keywords=None, defaults=None" + } +} 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 new file mode 100644 index 00000000000..d1f8e8abc4c --- /dev/null +++ b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.lecun_uniform.pbtxt @@ -0,0 +1,21 @@ +path: "tensorflow.keras.initializers.lecun_uniform" +tf_class { + is_instance: "" + is_instance: "" + is_instance: "" + is_instance: "" + is_instance: "" + is_instance: "" + member_method { + name: "__init__" + argspec: "args=[\'self\', \'seed\'], varargs=None, keywords=None, defaults=[\'None\'], " + } + member_method { + name: "from_config" + argspec: "args=[\'cls\', \'config\'], varargs=None, keywords=None, defaults=None" + } + member_method { + name: "get_config" + argspec: "args=[\'self\'], varargs=None, keywords=None, defaults=None" + } +} diff --git a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.ones.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.ones.pbtxt index cc2dd171dfc..ade249eedbe 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.ones.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.ones.pbtxt @@ -1,7 +1,9 @@ path: "tensorflow.keras.initializers.ones" tf_class { + is_instance: "" is_instance: "" is_instance: "" + is_instance: "" is_instance: "" member_method { name: "__init__" 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 855065c1634..227f8957954 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.orthogonal.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.orthogonal.pbtxt @@ -1,7 +1,9 @@ path: "tensorflow.keras.initializers.orthogonal" tf_class { + is_instance: "" is_instance: "" is_instance: "" + is_instance: "" is_instance: "" member_method { name: "__init__" diff --git a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.pbtxt index de4e798305c..f39b701806a 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.pbtxt @@ -12,6 +12,14 @@ tf_module { name: "GlorotUniform" mtype: "" } + member { + name: "HeNormal" + mtype: "" + } + member { + name: "HeUniform" + mtype: "" + } member { name: "Identity" mtype: "" @@ -20,6 +28,14 @@ tf_module { name: "Initializer" mtype: "" } + member { + name: "LecunNormal" + mtype: "" + } + member { + name: "LecunUniform" + mtype: "" + } member { name: "Ones" mtype: "" @@ -60,10 +76,26 @@ tf_module { name: "glorot_uniform" mtype: "" } + member { + name: "he_normal" + mtype: "" + } + member { + name: "he_uniform" + mtype: "" + } member { name: "identity" mtype: "" } + member { + name: "lecun_normal" + mtype: "" + } + member { + name: "lecun_uniform" + mtype: "" + } member { name: "ones" mtype: "" @@ -84,6 +116,10 @@ tf_module { name: "truncated_normal" mtype: "" } + member { + name: "variance_scaling" + mtype: "" + } member { name: "zeros" mtype: "" @@ -96,22 +132,6 @@ tf_module { name: "get" argspec: "args=[\'identifier\'], varargs=None, keywords=None, defaults=None" } - member_method { - name: "he_normal" - argspec: "args=[\'seed\'], varargs=None, keywords=None, defaults=[\'None\'], " - } - member_method { - name: "he_uniform" - argspec: "args=[\'seed\'], varargs=None, keywords=None, defaults=[\'None\'], " - } - member_method { - name: "lecun_normal" - argspec: "args=[\'seed\'], varargs=None, keywords=None, defaults=[\'None\'], " - } - member_method { - name: "lecun_uniform" - argspec: "args=[\'seed\'], varargs=None, keywords=None, defaults=[\'None\'], " - } member_method { name: "serialize" argspec: "args=[\'initializer\'], varargs=None, keywords=None, defaults=None" diff --git a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.random_normal.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.random_normal.pbtxt index 55b70918542..75f754cc00c 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.random_normal.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.random_normal.pbtxt @@ -1,7 +1,9 @@ path: "tensorflow.keras.initializers.random_normal" tf_class { + is_instance: "" is_instance: "" is_instance: "" + is_instance: "" is_instance: "" member_method { name: "__init__" diff --git a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.random_uniform.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.random_uniform.pbtxt index 2cbe270b4ef..7541b5eddc3 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.random_uniform.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.random_uniform.pbtxt @@ -1,7 +1,9 @@ path: "tensorflow.keras.initializers.random_uniform" tf_class { + is_instance: "" is_instance: "" is_instance: "" + is_instance: "" is_instance: "" member_method { name: "__init__" 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 f276d11d9a3..e5ebf905d08 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,7 +1,9 @@ path: "tensorflow.keras.initializers.truncated_normal" tf_class { + is_instance: "" is_instance: "" is_instance: "" + is_instance: "" is_instance: "" member_method { name: "__init__" 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 new file mode 100644 index 00000000000..4ec96caa16f --- /dev/null +++ b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.variance_scaling.pbtxt @@ -0,0 +1,20 @@ +path: "tensorflow.keras.initializers.variance_scaling" +tf_class { + is_instance: "" + is_instance: "" + is_instance: "" + is_instance: "" + is_instance: "" + member_method { + name: "__init__" + argspec: "args=[\'self\', \'scale\', \'mode\', \'distribution\', \'seed\'], varargs=None, keywords=None, defaults=[\'1.0\', \'fan_in\', \'truncated_normal\', \'None\'], " + } + member_method { + name: "from_config" + argspec: "args=[\'cls\', \'config\'], varargs=None, keywords=None, defaults=None" + } + member_method { + name: "get_config" + argspec: "args=[\'self\'], varargs=None, keywords=None, defaults=None" + } +} diff --git a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.zeros.pbtxt b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.zeros.pbtxt index f9b3359d7a9..de923f98977 100644 --- a/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.zeros.pbtxt +++ b/tensorflow/tools/api/golden/v2/tensorflow.keras.initializers.zeros.pbtxt @@ -1,7 +1,9 @@ path: "tensorflow.keras.initializers.zeros" tf_class { + is_instance: "" is_instance: "" is_instance: "" + is_instance: "" is_instance: "" member_method { name: "__init__"