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