Update tf.keras RNNs to the Keras 2.0.9 API. Does not include cuDNN layers.
Additionally, fix a bug with handling of activity_regularizer in tf.layers base Layer (and add test). PiperOrigin-RevId: 175070161
This commit is contained in:
parent
544b47d570
commit
6488286b26
@ -498,6 +498,18 @@ py_test(
|
|||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
py_test(
|
||||||
|
name = "recurrent_test",
|
||||||
|
size = "small",
|
||||||
|
srcs = ["_impl/keras/layers/recurrent_test.py"],
|
||||||
|
srcs_version = "PY2AND3",
|
||||||
|
deps = [
|
||||||
|
":keras",
|
||||||
|
"//tensorflow/python:client_testlib",
|
||||||
|
"//third_party/py/numpy",
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
py_test(
|
py_test(
|
||||||
name = "serialization_test",
|
name = "serialization_test",
|
||||||
size = "small",
|
size = "small",
|
||||||
|
@ -29,6 +29,9 @@ from six.moves import zip # pylint: disable=redefined-builtin
|
|||||||
from tensorflow.python.eager import context
|
from tensorflow.python.eager import context
|
||||||
from tensorflow.python.framework import tensor_shape
|
from tensorflow.python.framework import tensor_shape
|
||||||
from tensorflow.python.keras._impl.keras import backend as K
|
from tensorflow.python.keras._impl.keras import backend as K
|
||||||
|
from tensorflow.python.keras._impl.keras import constraints
|
||||||
|
from tensorflow.python.keras._impl.keras import initializers
|
||||||
|
from tensorflow.python.keras._impl.keras import regularizers
|
||||||
from tensorflow.python.keras._impl.keras.utils import conv_utils
|
from tensorflow.python.keras._impl.keras.utils import conv_utils
|
||||||
from tensorflow.python.keras._impl.keras.utils.io_utils import ask_to_proceed_with_overwrite
|
from tensorflow.python.keras._impl.keras.utils.io_utils import ask_to_proceed_with_overwrite
|
||||||
from tensorflow.python.keras._impl.keras.utils.layer_utils import print_summary as print_layer_summary
|
from tensorflow.python.keras._impl.keras.utils.layer_utils import print_summary as print_layer_summary
|
||||||
@ -209,9 +212,9 @@ class Layer(tf_base_layers.Layer):
|
|||||||
dtype = K.floatx()
|
dtype = K.floatx()
|
||||||
weight = self.add_variable(name, shape,
|
weight = self.add_variable(name, shape,
|
||||||
dtype=dtype,
|
dtype=dtype,
|
||||||
initializer=initializer,
|
initializer=initializers.get(initializer),
|
||||||
regularizer=regularizer,
|
regularizer=regularizers.get(regularizer),
|
||||||
constraint=constraint,
|
constraint=constraints.get(constraint),
|
||||||
trainable=trainable)
|
trainable=trainable)
|
||||||
return weight
|
return weight
|
||||||
|
|
||||||
|
@ -93,7 +93,7 @@ class KerasIntegrationTest(test.TestCase):
|
|||||||
y_test = keras.utils.to_categorical(y_test)
|
y_test = keras.utils.to_categorical(y_test)
|
||||||
|
|
||||||
model = keras.models.Sequential()
|
model = keras.models.Sequential()
|
||||||
model.add(keras.layers.LSTM(3, return_sequences=True,
|
model.add(keras.layers.LSTM(5, return_sequences=True,
|
||||||
input_shape=x_train.shape[1:]))
|
input_shape=x_train.shape[1:]))
|
||||||
model.add(keras.layers.GRU(y_train.shape[-1], activation='softmax'))
|
model.add(keras.layers.GRU(y_train.shape[-1], activation='softmax'))
|
||||||
model.compile(loss='categorical_crossentropy',
|
model.compile(loss='categorical_crossentropy',
|
||||||
|
@ -156,8 +156,10 @@ class GRULayerTest(test.TestCase):
|
|||||||
activity_regularizer='l1')
|
activity_regularizer='l1')
|
||||||
layer.build((None, None, 2))
|
layer.build((None, None, 2))
|
||||||
self.assertEqual(len(layer.losses), 3)
|
self.assertEqual(len(layer.losses), 3)
|
||||||
layer(keras.backend.variable(np.ones((2, 3, 2))))
|
|
||||||
self.assertEqual(len(layer.losses), 4)
|
x = keras.backend.variable(np.ones((2, 3, 2)))
|
||||||
|
layer(x)
|
||||||
|
self.assertEqual(len(layer.get_losses_for(x)), 1)
|
||||||
|
|
||||||
def test_constraints_GRU(self):
|
def test_constraints_GRU(self):
|
||||||
embedding_dim = 4
|
embedding_dim = 4
|
||||||
@ -175,9 +177,9 @@ class GRULayerTest(test.TestCase):
|
|||||||
recurrent_constraint=r_constraint,
|
recurrent_constraint=r_constraint,
|
||||||
bias_constraint=b_constraint)
|
bias_constraint=b_constraint)
|
||||||
layer.build((None, None, embedding_dim))
|
layer.build((None, None, embedding_dim))
|
||||||
self.assertEqual(layer.kernel.constraint, k_constraint)
|
self.assertEqual(layer.cell.kernel.constraint, k_constraint)
|
||||||
self.assertEqual(layer.recurrent_kernel.constraint, r_constraint)
|
self.assertEqual(layer.cell.recurrent_kernel.constraint, r_constraint)
|
||||||
self.assertEqual(layer.bias.constraint, b_constraint)
|
self.assertEqual(layer.cell.bias.constraint, b_constraint)
|
||||||
|
|
||||||
def test_with_masking_layer_GRU(self):
|
def test_with_masking_layer_GRU(self):
|
||||||
layer_class = keras.layers.GRU
|
layer_class = keras.layers.GRU
|
||||||
|
@ -156,8 +156,9 @@ class LSTMLayerTest(test.TestCase):
|
|||||||
activity_regularizer='l1')
|
activity_regularizer='l1')
|
||||||
layer.build((None, None, 2))
|
layer.build((None, None, 2))
|
||||||
self.assertEqual(len(layer.losses), 3)
|
self.assertEqual(len(layer.losses), 3)
|
||||||
layer(keras.backend.variable(np.ones((2, 3, 2))))
|
x = keras.backend.variable(np.ones((2, 3, 2)))
|
||||||
self.assertEqual(len(layer.losses), 4)
|
layer(x)
|
||||||
|
self.assertEqual(len(layer.get_losses_for(x)), 1)
|
||||||
|
|
||||||
def test_constraints_LSTM(self):
|
def test_constraints_LSTM(self):
|
||||||
embedding_dim = 4
|
embedding_dim = 4
|
||||||
@ -175,9 +176,9 @@ class LSTMLayerTest(test.TestCase):
|
|||||||
recurrent_constraint=r_constraint,
|
recurrent_constraint=r_constraint,
|
||||||
bias_constraint=b_constraint)
|
bias_constraint=b_constraint)
|
||||||
layer.build((None, None, embedding_dim))
|
layer.build((None, None, embedding_dim))
|
||||||
self.assertEqual(layer.kernel.constraint, k_constraint)
|
self.assertEqual(layer.cell.kernel.constraint, k_constraint)
|
||||||
self.assertEqual(layer.recurrent_kernel.constraint, r_constraint)
|
self.assertEqual(layer.cell.recurrent_kernel.constraint, r_constraint)
|
||||||
self.assertEqual(layer.bias.constraint, b_constraint)
|
self.assertEqual(layer.cell.bias.constraint, b_constraint)
|
||||||
|
|
||||||
def test_with_masking_layer_LSTM(self):
|
def test_with_masking_layer_LSTM(self):
|
||||||
layer_class = keras.layers.LSTM
|
layer_class = keras.layers.LSTM
|
||||||
|
File diff suppressed because it is too large
Load Diff
378
tensorflow/python/keras/_impl/keras/layers/recurrent_test.py
Normal file
378
tensorflow/python/keras/_impl/keras/layers/recurrent_test.py
Normal file
@ -0,0 +1,378 @@
|
|||||||
|
# Copyright 2017 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.
|
||||||
|
# ==============================================================================
|
||||||
|
"""Tests for recurrent layers functionality other than GRU, LSTM, SimpleRNN.
|
||||||
|
|
||||||
|
See also: lstm_test.py, gru_test.py, simplernn_test.py.
|
||||||
|
"""
|
||||||
|
|
||||||
|
from __future__ import absolute_import
|
||||||
|
from __future__ import division
|
||||||
|
from __future__ import print_function
|
||||||
|
|
||||||
|
import numpy as np
|
||||||
|
|
||||||
|
from tensorflow.python.keras._impl import keras
|
||||||
|
from tensorflow.python.platform import test
|
||||||
|
|
||||||
|
|
||||||
|
class RNNTest(test.TestCase):
|
||||||
|
|
||||||
|
def test_minimal_rnn_cell_non_layer(self):
|
||||||
|
|
||||||
|
class MinimalRNNCell(object):
|
||||||
|
|
||||||
|
def __init__(self, units, input_dim):
|
||||||
|
self.units = units
|
||||||
|
self.state_size = units
|
||||||
|
self.kernel = keras.backend.variable(
|
||||||
|
np.random.random((input_dim, units)))
|
||||||
|
|
||||||
|
def call(self, inputs, states):
|
||||||
|
prev_output = states[0]
|
||||||
|
output = keras.backend.dot(inputs, self.kernel) + prev_output
|
||||||
|
return output, [output]
|
||||||
|
|
||||||
|
with self.test_session():
|
||||||
|
# Basic test case.
|
||||||
|
cell = MinimalRNNCell(32, 5)
|
||||||
|
x = keras.Input((None, 5))
|
||||||
|
layer = keras.layers.RNN(cell)
|
||||||
|
y = layer(x)
|
||||||
|
model = keras.models.Model(x, y)
|
||||||
|
model.compile(optimizer='rmsprop', loss='mse')
|
||||||
|
model.train_on_batch(np.zeros((6, 5, 5)), np.zeros((6, 32)))
|
||||||
|
|
||||||
|
# Test stacking.
|
||||||
|
cells = [MinimalRNNCell(8, 5),
|
||||||
|
MinimalRNNCell(32, 8),
|
||||||
|
MinimalRNNCell(32, 32)]
|
||||||
|
layer = keras.layers.RNN(cells)
|
||||||
|
y = layer(x)
|
||||||
|
model = keras.models.Model(x, y)
|
||||||
|
model.compile(optimizer='rmsprop', loss='mse')
|
||||||
|
model.train_on_batch(np.zeros((6, 5, 5)), np.zeros((6, 32)))
|
||||||
|
|
||||||
|
def test_minimal_rnn_cell_non_layer_multiple_states(self):
|
||||||
|
|
||||||
|
class MinimalRNNCell(object):
|
||||||
|
|
||||||
|
def __init__(self, units, input_dim):
|
||||||
|
self.units = units
|
||||||
|
self.state_size = (units, units)
|
||||||
|
self.kernel = keras.backend.variable(
|
||||||
|
np.random.random((input_dim, units)))
|
||||||
|
|
||||||
|
def call(self, inputs, states):
|
||||||
|
prev_output_1 = states[0]
|
||||||
|
prev_output_2 = states[1]
|
||||||
|
output = keras.backend.dot(inputs, self.kernel)
|
||||||
|
output += prev_output_1
|
||||||
|
output -= prev_output_2
|
||||||
|
return output, [output * 2, output * 3]
|
||||||
|
|
||||||
|
with self.test_session():
|
||||||
|
# Basic test case.
|
||||||
|
cell = MinimalRNNCell(32, 5)
|
||||||
|
x = keras.Input((None, 5))
|
||||||
|
layer = keras.layers.RNN(cell)
|
||||||
|
y = layer(x)
|
||||||
|
model = keras.models.Model(x, y)
|
||||||
|
model.compile(optimizer='rmsprop', loss='mse')
|
||||||
|
model.train_on_batch(np.zeros((6, 5, 5)), np.zeros((6, 32)))
|
||||||
|
|
||||||
|
# Test stacking.
|
||||||
|
cells = [MinimalRNNCell(8, 5),
|
||||||
|
MinimalRNNCell(16, 8),
|
||||||
|
MinimalRNNCell(32, 16)]
|
||||||
|
layer = keras.layers.RNN(cells)
|
||||||
|
assert layer.cell.state_size == (32, 32, 16, 16, 8, 8)
|
||||||
|
y = layer(x)
|
||||||
|
model = keras.models.Model(x, y)
|
||||||
|
model.compile(optimizer='rmsprop', loss='mse')
|
||||||
|
model.train_on_batch(np.zeros((6, 5, 5)), np.zeros((6, 32)))
|
||||||
|
|
||||||
|
def test_minimal_rnn_cell_layer(self):
|
||||||
|
|
||||||
|
class MinimalRNNCell(keras.layers.Layer):
|
||||||
|
|
||||||
|
def __init__(self, units, **kwargs):
|
||||||
|
self.units = units
|
||||||
|
self.state_size = units
|
||||||
|
super(MinimalRNNCell, self).__init__(**kwargs)
|
||||||
|
|
||||||
|
def build(self, input_shape):
|
||||||
|
self.kernel = self.add_weight(shape=(input_shape[-1], self.units),
|
||||||
|
initializer='uniform',
|
||||||
|
name='kernel')
|
||||||
|
self.recurrent_kernel = self.add_weight(
|
||||||
|
shape=(self.units, self.units),
|
||||||
|
initializer='uniform',
|
||||||
|
name='recurrent_kernel')
|
||||||
|
self.built = True
|
||||||
|
|
||||||
|
def call(self, inputs, states):
|
||||||
|
prev_output = states[0]
|
||||||
|
h = keras.backend.dot(inputs, self.kernel)
|
||||||
|
output = h + keras.backend.dot(prev_output, self.recurrent_kernel)
|
||||||
|
return output, [output]
|
||||||
|
|
||||||
|
def get_config(self):
|
||||||
|
config = {'units': self.units}
|
||||||
|
base_config = super(MinimalRNNCell, self).get_config()
|
||||||
|
return dict(list(base_config.items()) + list(config.items()))
|
||||||
|
|
||||||
|
with self.test_session():
|
||||||
|
# Test basic case.
|
||||||
|
x = keras.Input((None, 5))
|
||||||
|
cell = MinimalRNNCell(32)
|
||||||
|
layer = keras.layers.RNN(cell)
|
||||||
|
y = layer(x)
|
||||||
|
model = keras.models.Model(x, y)
|
||||||
|
model.compile(optimizer='rmsprop', loss='mse')
|
||||||
|
model.train_on_batch(np.zeros((6, 5, 5)), np.zeros((6, 32)))
|
||||||
|
|
||||||
|
# Test basic case serialization.
|
||||||
|
x_np = np.random.random((6, 5, 5))
|
||||||
|
y_np = model.predict(x_np)
|
||||||
|
weights = model.get_weights()
|
||||||
|
config = layer.get_config()
|
||||||
|
with keras.utils.CustomObjectScope({'MinimalRNNCell': MinimalRNNCell}):
|
||||||
|
layer = keras.layers.RNN.from_config(config)
|
||||||
|
y = layer(x)
|
||||||
|
model = keras.models.Model(x, y)
|
||||||
|
model.set_weights(weights)
|
||||||
|
y_np_2 = model.predict(x_np)
|
||||||
|
self.assertAllClose(y_np, y_np_2, atol=1e-4)
|
||||||
|
|
||||||
|
# Test stacking.
|
||||||
|
cells = [MinimalRNNCell(8),
|
||||||
|
MinimalRNNCell(12),
|
||||||
|
MinimalRNNCell(32)]
|
||||||
|
layer = keras.layers.RNN(cells)
|
||||||
|
y = layer(x)
|
||||||
|
model = keras.models.Model(x, y)
|
||||||
|
model.compile(optimizer='rmsprop', loss='mse')
|
||||||
|
model.train_on_batch(np.zeros((6, 5, 5)), np.zeros((6, 32)))
|
||||||
|
|
||||||
|
# Test stacked RNN serialization.
|
||||||
|
x_np = np.random.random((6, 5, 5))
|
||||||
|
y_np = model.predict(x_np)
|
||||||
|
weights = model.get_weights()
|
||||||
|
config = layer.get_config()
|
||||||
|
with keras.utils.CustomObjectScope({'MinimalRNNCell': MinimalRNNCell}):
|
||||||
|
layer = keras.layers.RNN.from_config(config)
|
||||||
|
y = layer(x)
|
||||||
|
model = keras.models.Model(x, y)
|
||||||
|
model.set_weights(weights)
|
||||||
|
y_np_2 = model.predict(x_np)
|
||||||
|
self.assertAllClose(y_np, y_np_2, atol=1e-4)
|
||||||
|
|
||||||
|
def test_rnn_cell_with_constants_layer(self):
|
||||||
|
|
||||||
|
class RNNCellWithConstants(keras.layers.Layer):
|
||||||
|
|
||||||
|
def __init__(self, units, **kwargs):
|
||||||
|
self.units = units
|
||||||
|
self.state_size = units
|
||||||
|
super(RNNCellWithConstants, self).__init__(**kwargs)
|
||||||
|
|
||||||
|
def build(self, input_shape):
|
||||||
|
if not isinstance(input_shape, list):
|
||||||
|
raise TypeError('expects constants shape')
|
||||||
|
[input_shape, constant_shape] = input_shape
|
||||||
|
# will (and should) raise if more than one constant passed
|
||||||
|
|
||||||
|
self.input_kernel = self.add_weight(
|
||||||
|
shape=(input_shape[-1], self.units),
|
||||||
|
initializer='uniform',
|
||||||
|
name='kernel')
|
||||||
|
self.recurrent_kernel = self.add_weight(
|
||||||
|
shape=(self.units, self.units),
|
||||||
|
initializer='uniform',
|
||||||
|
name='recurrent_kernel')
|
||||||
|
self.constant_kernel = self.add_weight(
|
||||||
|
shape=(constant_shape[-1], self.units),
|
||||||
|
initializer='uniform',
|
||||||
|
name='constant_kernel')
|
||||||
|
self.built = True
|
||||||
|
|
||||||
|
def call(self, inputs, states, constants):
|
||||||
|
[prev_output] = states
|
||||||
|
[constant] = constants
|
||||||
|
h_input = keras.backend.dot(inputs, self.input_kernel)
|
||||||
|
h_state = keras.backend.dot(prev_output, self.recurrent_kernel)
|
||||||
|
h_const = keras.backend.dot(constant, self.constant_kernel)
|
||||||
|
output = h_input + h_state + h_const
|
||||||
|
return output, [output]
|
||||||
|
|
||||||
|
def get_config(self):
|
||||||
|
config = {'units': self.units}
|
||||||
|
base_config = super(RNNCellWithConstants, self).get_config()
|
||||||
|
return dict(list(base_config.items()) + list(config.items()))
|
||||||
|
|
||||||
|
with self.test_session():
|
||||||
|
# Test basic case.
|
||||||
|
x = keras.Input((None, 5))
|
||||||
|
c = keras.Input((3,))
|
||||||
|
cell = RNNCellWithConstants(32)
|
||||||
|
layer = keras.layers.RNN(cell)
|
||||||
|
y = layer(x, constants=c)
|
||||||
|
model = keras.models.Model([x, c], y)
|
||||||
|
model.compile(optimizer='rmsprop', loss='mse')
|
||||||
|
model.train_on_batch(
|
||||||
|
[np.zeros((6, 5, 5)), np.zeros((6, 3))],
|
||||||
|
np.zeros((6, 32))
|
||||||
|
)
|
||||||
|
|
||||||
|
with self.test_session():
|
||||||
|
# Test basic case serialization.
|
||||||
|
x_np = np.random.random((6, 5, 5))
|
||||||
|
c_np = np.random.random((6, 3))
|
||||||
|
y_np = model.predict([x_np, c_np])
|
||||||
|
weights = model.get_weights()
|
||||||
|
config = layer.get_config()
|
||||||
|
custom_objects = {'RNNCellWithConstants': RNNCellWithConstants}
|
||||||
|
with keras.utils.CustomObjectScope(custom_objects):
|
||||||
|
layer = keras.layers.RNN.from_config(config.copy())
|
||||||
|
y = layer(x, constants=c)
|
||||||
|
model = keras.models.Model([x, c], y)
|
||||||
|
model.set_weights(weights)
|
||||||
|
y_np_2 = model.predict([x_np, c_np])
|
||||||
|
self.assertAllClose(y_np, y_np_2, atol=1e-4)
|
||||||
|
|
||||||
|
with self.test_session():
|
||||||
|
# test flat list inputs
|
||||||
|
with keras.utils.CustomObjectScope(custom_objects):
|
||||||
|
layer = keras.layers.RNN.from_config(config.copy())
|
||||||
|
y = layer([x, c])
|
||||||
|
model = keras.models.Model([x, c], y)
|
||||||
|
model.set_weights(weights)
|
||||||
|
y_np_3 = model.predict([x_np, c_np])
|
||||||
|
self.assertAllClose(y_np, y_np_3, atol=1e-4)
|
||||||
|
|
||||||
|
def test_rnn_cell_with_constants_layer_passing_initial_state(self):
|
||||||
|
|
||||||
|
class RNNCellWithConstants(keras.layers.Layer):
|
||||||
|
|
||||||
|
def __init__(self, units, **kwargs):
|
||||||
|
self.units = units
|
||||||
|
self.state_size = units
|
||||||
|
super(RNNCellWithConstants, self).__init__(**kwargs)
|
||||||
|
|
||||||
|
def build(self, input_shape):
|
||||||
|
if not isinstance(input_shape, list):
|
||||||
|
raise TypeError('expects constants shape')
|
||||||
|
[input_shape, constant_shape] = input_shape
|
||||||
|
# will (and should) raise if more than one constant passed
|
||||||
|
|
||||||
|
self.input_kernel = self.add_weight(
|
||||||
|
shape=(input_shape[-1], self.units),
|
||||||
|
initializer='uniform',
|
||||||
|
name='kernel')
|
||||||
|
self.recurrent_kernel = self.add_weight(
|
||||||
|
shape=(self.units, self.units),
|
||||||
|
initializer='uniform',
|
||||||
|
name='recurrent_kernel')
|
||||||
|
self.constant_kernel = self.add_weight(
|
||||||
|
shape=(constant_shape[-1], self.units),
|
||||||
|
initializer='uniform',
|
||||||
|
name='constant_kernel')
|
||||||
|
self.built = True
|
||||||
|
|
||||||
|
def call(self, inputs, states, constants):
|
||||||
|
[prev_output] = states
|
||||||
|
[constant] = constants
|
||||||
|
h_input = keras.backend.dot(inputs, self.input_kernel)
|
||||||
|
h_state = keras.backend.dot(prev_output, self.recurrent_kernel)
|
||||||
|
h_const = keras.backend.dot(constant, self.constant_kernel)
|
||||||
|
output = h_input + h_state + h_const
|
||||||
|
return output, [output]
|
||||||
|
|
||||||
|
def get_config(self):
|
||||||
|
config = {'units': self.units}
|
||||||
|
base_config = super(RNNCellWithConstants, self).get_config()
|
||||||
|
return dict(list(base_config.items()) + list(config.items()))
|
||||||
|
|
||||||
|
with self.test_session():
|
||||||
|
# Test basic case.
|
||||||
|
x = keras.Input((None, 5))
|
||||||
|
c = keras.Input((3,))
|
||||||
|
s = keras.Input((32,))
|
||||||
|
cell = RNNCellWithConstants(32)
|
||||||
|
layer = keras.layers.RNN(cell)
|
||||||
|
y = layer(x, initial_state=s, constants=c)
|
||||||
|
model = keras.models.Model([x, s, c], y)
|
||||||
|
model.compile(optimizer='rmsprop', loss='mse')
|
||||||
|
model.train_on_batch(
|
||||||
|
[np.zeros((6, 5, 5)), np.zeros((6, 32)), np.zeros((6, 3))],
|
||||||
|
np.zeros((6, 32))
|
||||||
|
)
|
||||||
|
|
||||||
|
with self.test_session():
|
||||||
|
# Test basic case serialization.
|
||||||
|
x_np = np.random.random((6, 5, 5))
|
||||||
|
s_np = np.random.random((6, 32))
|
||||||
|
c_np = np.random.random((6, 3))
|
||||||
|
y_np = model.predict([x_np, s_np, c_np])
|
||||||
|
weights = model.get_weights()
|
||||||
|
config = layer.get_config()
|
||||||
|
custom_objects = {'RNNCellWithConstants': RNNCellWithConstants}
|
||||||
|
with keras.utils.CustomObjectScope(custom_objects):
|
||||||
|
layer = keras.layers.RNN.from_config(config.copy())
|
||||||
|
y = layer(x, initial_state=s, constants=c)
|
||||||
|
model = keras.models.Model([x, s, c], y)
|
||||||
|
model.set_weights(weights)
|
||||||
|
y_np_2 = model.predict([x_np, s_np, c_np])
|
||||||
|
self.assertAllClose(y_np, y_np_2, atol=1e-4)
|
||||||
|
|
||||||
|
# verify that state is used
|
||||||
|
y_np_2_different_s = model.predict([x_np, s_np + 10., c_np])
|
||||||
|
with self.assertRaises(AssertionError):
|
||||||
|
self.assertAllClose(y_np, y_np_2_different_s, atol=1e-4)
|
||||||
|
|
||||||
|
with self.test_session():
|
||||||
|
# test flat list inputs
|
||||||
|
with keras.utils.CustomObjectScope(custom_objects):
|
||||||
|
layer = keras.layers.RNN.from_config(config.copy())
|
||||||
|
y = layer([x, s, c])
|
||||||
|
model = keras.models.Model([x, s, c], y)
|
||||||
|
model.set_weights(weights)
|
||||||
|
y_np_3 = model.predict([x_np, s_np, c_np])
|
||||||
|
self.assertAllClose(y_np, y_np_3, atol=1e-4)
|
||||||
|
|
||||||
|
def test_stacked_rnn_attributes(self):
|
||||||
|
cells = [keras.layers.LSTMCell(3),
|
||||||
|
keras.layers.LSTMCell(3, kernel_regularizer='l2')]
|
||||||
|
layer = keras.layers.RNN(cells)
|
||||||
|
layer.build((None, None, 5))
|
||||||
|
|
||||||
|
# Test regularization losses
|
||||||
|
assert len(layer.losses) == 1
|
||||||
|
|
||||||
|
# Test weights
|
||||||
|
assert len(layer.trainable_weights) == 6
|
||||||
|
cells[0].trainable = False
|
||||||
|
assert len(layer.trainable_weights) == 3
|
||||||
|
assert len(layer.non_trainable_weights) == 3
|
||||||
|
|
||||||
|
# Test `get_losses_for`
|
||||||
|
x = keras.Input((None, 5))
|
||||||
|
y = keras.backend.sum(x)
|
||||||
|
cells[0].add_loss(y, inputs=x)
|
||||||
|
assert layer.get_losses_for(x) == [y]
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
test.main()
|
@ -156,8 +156,10 @@ class SimpleRNNLayerTest(test.TestCase):
|
|||||||
activity_regularizer='l1')
|
activity_regularizer='l1')
|
||||||
layer.build((None, None, 2))
|
layer.build((None, None, 2))
|
||||||
self.assertEqual(len(layer.losses), 3)
|
self.assertEqual(len(layer.losses), 3)
|
||||||
layer(keras.backend.variable(np.ones((2, 3, 2))))
|
|
||||||
self.assertEqual(len(layer.losses), 4)
|
x = keras.backend.variable(np.ones((2, 3, 2)))
|
||||||
|
layer(x)
|
||||||
|
self.assertEqual(len(layer.get_losses_for(x)), 1)
|
||||||
|
|
||||||
def test_constraints_SimpleRNN(self):
|
def test_constraints_SimpleRNN(self):
|
||||||
embedding_dim = 4
|
embedding_dim = 4
|
||||||
@ -175,9 +177,9 @@ class SimpleRNNLayerTest(test.TestCase):
|
|||||||
recurrent_constraint=r_constraint,
|
recurrent_constraint=r_constraint,
|
||||||
bias_constraint=b_constraint)
|
bias_constraint=b_constraint)
|
||||||
layer.build((None, None, embedding_dim))
|
layer.build((None, None, embedding_dim))
|
||||||
self.assertEqual(layer.kernel.constraint, k_constraint)
|
self.assertEqual(layer.cell.kernel.constraint, k_constraint)
|
||||||
self.assertEqual(layer.recurrent_kernel.constraint, r_constraint)
|
self.assertEqual(layer.cell.recurrent_kernel.constraint, r_constraint)
|
||||||
self.assertEqual(layer.bias.constraint, b_constraint)
|
self.assertEqual(layer.cell.bias.constraint, b_constraint)
|
||||||
|
|
||||||
def test_with_masking_layer_SimpleRNN(self):
|
def test_with_masking_layer_SimpleRNN(self):
|
||||||
layer_class = keras.layers.SimpleRNN
|
layer_class = keras.layers.SimpleRNN
|
||||||
|
@ -134,6 +134,11 @@ from tensorflow.python.keras._impl.keras.layers.pooling import GlobalMaxPool2D
|
|||||||
from tensorflow.python.keras._impl.keras.layers.pooling import GlobalMaxPool3D
|
from tensorflow.python.keras._impl.keras.layers.pooling import GlobalMaxPool3D
|
||||||
|
|
||||||
# Recurrent layers.
|
# Recurrent layers.
|
||||||
|
from tensorflow.python.keras._impl.keras.layers.recurrent import RNN
|
||||||
|
from tensorflow.python.keras._impl.keras.layers.recurrent import StackedRNNCells
|
||||||
|
from tensorflow.python.keras._impl.keras.layers.recurrent import SimpleRNNCell
|
||||||
|
from tensorflow.python.keras._impl.keras.layers.recurrent import GRUCell
|
||||||
|
from tensorflow.python.keras._impl.keras.layers.recurrent import LSTMCell
|
||||||
from tensorflow.python.keras._impl.keras.layers.recurrent import SimpleRNN
|
from tensorflow.python.keras._impl.keras.layers.recurrent import SimpleRNN
|
||||||
from tensorflow.python.keras._impl.keras.layers.recurrent import GRU
|
from tensorflow.python.keras._impl.keras.layers.recurrent import GRU
|
||||||
from tensorflow.python.keras._impl.keras.layers.recurrent import LSTM
|
from tensorflow.python.keras._impl.keras.layers.recurrent import LSTM
|
||||||
|
@ -642,7 +642,7 @@ class Layer(object):
|
|||||||
for output in output_list:
|
for output in output_list:
|
||||||
with ops.name_scope('ActivityRegularizer'):
|
with ops.name_scope('ActivityRegularizer'):
|
||||||
activity_regularization = self._activity_regularizer(output)
|
activity_regularization = self._activity_regularizer(output)
|
||||||
self.add_loss(activity_regularization)
|
self.add_loss(activity_regularization, inputs=inputs)
|
||||||
|
|
||||||
if not in_deferred_mode:
|
if not in_deferred_mode:
|
||||||
# TODO(fchollet): consider how masking will work with deferred mode.
|
# TODO(fchollet): consider how masking will work with deferred mode.
|
||||||
|
@ -574,6 +574,13 @@ class BaseLayerTest(test.TestCase):
|
|||||||
self.assertEqual(3, result['label'].numpy())
|
self.assertEqual(3, result['label'].numpy())
|
||||||
self.assertEqual(4.0, result['logits'].numpy())
|
self.assertEqual(4.0, result['logits'].numpy())
|
||||||
|
|
||||||
|
def testActivityRegularizer(self):
|
||||||
|
regularizer = math_ops.reduce_sum
|
||||||
|
layer = base_layers.Layer(activity_regularizer=regularizer)
|
||||||
|
x = array_ops.placeholder('int32')
|
||||||
|
layer.apply(x)
|
||||||
|
self.assertEqual(len(layer.get_losses_for(x)), 1)
|
||||||
|
|
||||||
|
|
||||||
class NetworkTest(test.TestCase):
|
class NetworkTest(test.TestCase):
|
||||||
|
|
||||||
|
@ -0,0 +1,179 @@
|
|||||||
|
path: "tensorflow.keras.layers.GRUCell"
|
||||||
|
tf_class {
|
||||||
|
is_instance: "<class \'tensorflow.python.keras._impl.keras.layers.recurrent.GRUCell\'>"
|
||||||
|
is_instance: "<class \'tensorflow.python.keras._impl.keras.engine.topology.Layer\'>"
|
||||||
|
is_instance: "<class \'tensorflow.python.layers.base.Layer\'>"
|
||||||
|
is_instance: "<type \'object\'>"
|
||||||
|
member {
|
||||||
|
name: "activity_regularizer"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "dtype"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "graph"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "inbound_nodes"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "input"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "input_mask"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "input_shape"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "losses"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "name"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "non_trainable_variables"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "non_trainable_weights"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "outbound_nodes"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "output"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "output_mask"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "output_shape"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "scope_name"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "trainable_variables"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "trainable_weights"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "updates"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "variables"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "weights"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "__init__"
|
||||||
|
argspec: "args=[\'self\', \'units\', \'activation\', \'recurrent_activation\', \'use_bias\', \'kernel_initializer\', \'recurrent_initializer\', \'bias_initializer\', \'kernel_regularizer\', \'recurrent_regularizer\', \'bias_regularizer\', \'kernel_constraint\', \'recurrent_constraint\', \'bias_constraint\', \'dropout\', \'recurrent_dropout\', \'implementation\'], varargs=None, keywords=kwargs, defaults=[\'tanh\', \'hard_sigmoid\', \'True\', \'glorot_uniform\', \'orthogonal\', \'zeros\', \'None\', \'None\', \'None\', \'None\', \'None\', \'None\', \'0.0\', \'0.0\', \'1\'], "
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "add_loss"
|
||||||
|
argspec: "args=[\'self\', \'losses\', \'inputs\'], varargs=None, keywords=None, defaults=[\'None\'], "
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "add_update"
|
||||||
|
argspec: "args=[\'self\', \'updates\', \'inputs\'], varargs=None, keywords=None, defaults=[\'None\'], "
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "add_variable"
|
||||||
|
argspec: "args=[\'self\', \'name\', \'shape\', \'dtype\', \'initializer\', \'regularizer\', \'trainable\', \'constraint\', \'partitioner\'], varargs=None, keywords=None, defaults=[\'None\', \'None\', \'None\', \'True\', \'None\', \'None\'], "
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "add_weight"
|
||||||
|
argspec: "args=[\'self\', \'name\', \'shape\', \'dtype\', \'initializer\', \'regularizer\', \'trainable\', \'constraint\'], varargs=None, keywords=None, defaults=[\'None\', \'None\', \'None\', \'True\', \'None\'], "
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "apply"
|
||||||
|
argspec: "args=[\'self\', \'inputs\'], varargs=args, keywords=kwargs, defaults=None"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "build"
|
||||||
|
argspec: "args=[\'self\', \'input_shape\'], varargs=None, keywords=None, defaults=None"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "call"
|
||||||
|
argspec: "args=[\'self\', \'inputs\', \'states\', \'training\'], varargs=None, keywords=None, defaults=[\'None\'], "
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "compute_mask"
|
||||||
|
argspec: "args=[\'self\', \'inputs\', \'mask\'], varargs=None, keywords=None, defaults=[\'None\'], "
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "count_params"
|
||||||
|
argspec: "args=[\'self\'], 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"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "get_input_at"
|
||||||
|
argspec: "args=[\'self\', \'node_index\'], varargs=None, keywords=None, defaults=None"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "get_input_mask_at"
|
||||||
|
argspec: "args=[\'self\', \'node_index\'], varargs=None, keywords=None, defaults=None"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "get_input_shape_at"
|
||||||
|
argspec: "args=[\'self\', \'node_index\'], varargs=None, keywords=None, defaults=None"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "get_losses_for"
|
||||||
|
argspec: "args=[\'self\', \'inputs\'], varargs=None, keywords=None, defaults=None"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "get_output_at"
|
||||||
|
argspec: "args=[\'self\', \'node_index\'], varargs=None, keywords=None, defaults=None"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "get_output_mask_at"
|
||||||
|
argspec: "args=[\'self\', \'node_index\'], varargs=None, keywords=None, defaults=None"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "get_output_shape_at"
|
||||||
|
argspec: "args=[\'self\', \'node_index\'], varargs=None, keywords=None, defaults=None"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "get_updates_for"
|
||||||
|
argspec: "args=[\'self\', \'inputs\'], varargs=None, keywords=None, defaults=None"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "get_weights"
|
||||||
|
argspec: "args=[\'self\'], varargs=None, keywords=None, defaults=None"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "set_weights"
|
||||||
|
argspec: "args=[\'self\', \'weights\'], varargs=None, keywords=None, defaults=None"
|
||||||
|
}
|
||||||
|
}
|
@ -1,14 +1,34 @@
|
|||||||
path: "tensorflow.keras.layers.GRU"
|
path: "tensorflow.keras.layers.GRU"
|
||||||
tf_class {
|
tf_class {
|
||||||
is_instance: "<class \'tensorflow.python.keras._impl.keras.layers.recurrent.GRU\'>"
|
is_instance: "<class \'tensorflow.python.keras._impl.keras.layers.recurrent.GRU\'>"
|
||||||
is_instance: "<class \'tensorflow.python.keras._impl.keras.layers.recurrent.Recurrent\'>"
|
is_instance: "<class \'tensorflow.python.keras._impl.keras.layers.recurrent.RNN\'>"
|
||||||
is_instance: "<class \'tensorflow.python.keras._impl.keras.engine.topology.Layer\'>"
|
is_instance: "<class \'tensorflow.python.keras._impl.keras.engine.topology.Layer\'>"
|
||||||
is_instance: "<class \'tensorflow.python.layers.base.Layer\'>"
|
is_instance: "<class \'tensorflow.python.layers.base.Layer\'>"
|
||||||
is_instance: "<type \'object\'>"
|
is_instance: "<type \'object\'>"
|
||||||
|
member {
|
||||||
|
name: "activation"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
member {
|
member {
|
||||||
name: "activity_regularizer"
|
name: "activity_regularizer"
|
||||||
mtype: "<type \'property\'>"
|
mtype: "<type \'property\'>"
|
||||||
}
|
}
|
||||||
|
member {
|
||||||
|
name: "bias_constraint"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "bias_initializer"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "bias_regularizer"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "dropout"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
member {
|
member {
|
||||||
name: "dtype"
|
name: "dtype"
|
||||||
mtype: "<type \'property\'>"
|
mtype: "<type \'property\'>"
|
||||||
@ -17,6 +37,10 @@ tf_class {
|
|||||||
name: "graph"
|
name: "graph"
|
||||||
mtype: "<type \'property\'>"
|
mtype: "<type \'property\'>"
|
||||||
}
|
}
|
||||||
|
member {
|
||||||
|
name: "implementation"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
member {
|
member {
|
||||||
name: "inbound_nodes"
|
name: "inbound_nodes"
|
||||||
mtype: "<type \'property\'>"
|
mtype: "<type \'property\'>"
|
||||||
@ -33,6 +57,18 @@ tf_class {
|
|||||||
name: "input_shape"
|
name: "input_shape"
|
||||||
mtype: "<type \'property\'>"
|
mtype: "<type \'property\'>"
|
||||||
}
|
}
|
||||||
|
member {
|
||||||
|
name: "kernel_constraint"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "kernel_initializer"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "kernel_regularizer"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
member {
|
member {
|
||||||
name: "losses"
|
name: "losses"
|
||||||
mtype: "<type \'property\'>"
|
mtype: "<type \'property\'>"
|
||||||
@ -65,10 +101,34 @@ tf_class {
|
|||||||
name: "output_shape"
|
name: "output_shape"
|
||||||
mtype: "<type \'property\'>"
|
mtype: "<type \'property\'>"
|
||||||
}
|
}
|
||||||
|
member {
|
||||||
|
name: "recurrent_activation"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "recurrent_constraint"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "recurrent_dropout"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "recurrent_initializer"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "recurrent_regularizer"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
member {
|
member {
|
||||||
name: "scope_name"
|
name: "scope_name"
|
||||||
mtype: "<type \'property\'>"
|
mtype: "<type \'property\'>"
|
||||||
}
|
}
|
||||||
|
member {
|
||||||
|
name: "states"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
member {
|
member {
|
||||||
name: "trainable_variables"
|
name: "trainable_variables"
|
||||||
mtype: "<type \'property\'>"
|
mtype: "<type \'property\'>"
|
||||||
@ -77,10 +137,18 @@ tf_class {
|
|||||||
name: "trainable_weights"
|
name: "trainable_weights"
|
||||||
mtype: "<type \'property\'>"
|
mtype: "<type \'property\'>"
|
||||||
}
|
}
|
||||||
|
member {
|
||||||
|
name: "units"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
member {
|
member {
|
||||||
name: "updates"
|
name: "updates"
|
||||||
mtype: "<type \'property\'>"
|
mtype: "<type \'property\'>"
|
||||||
}
|
}
|
||||||
|
member {
|
||||||
|
name: "use_bias"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
member {
|
member {
|
||||||
name: "variables"
|
name: "variables"
|
||||||
mtype: "<type \'property\'>"
|
mtype: "<type \'property\'>"
|
||||||
@ -91,7 +159,7 @@ tf_class {
|
|||||||
}
|
}
|
||||||
member_method {
|
member_method {
|
||||||
name: "__init__"
|
name: "__init__"
|
||||||
argspec: "args=[\'self\', \'units\', \'activation\', \'recurrent_activation\', \'use_bias\', \'kernel_initializer\', \'recurrent_initializer\', \'bias_initializer\', \'kernel_regularizer\', \'recurrent_regularizer\', \'bias_regularizer\', \'activity_regularizer\', \'kernel_constraint\', \'recurrent_constraint\', \'bias_constraint\', \'dropout\', \'recurrent_dropout\'], varargs=None, keywords=kwargs, defaults=[\'tanh\', \'hard_sigmoid\', \'True\', \'glorot_uniform\', \'orthogonal\', \'zeros\', \'None\', \'None\', \'None\', \'None\', \'None\', \'None\', \'None\', \'0.0\', \'0.0\'], "
|
argspec: "args=[\'self\', \'units\', \'activation\', \'recurrent_activation\', \'use_bias\', \'kernel_initializer\', \'recurrent_initializer\', \'bias_initializer\', \'kernel_regularizer\', \'recurrent_regularizer\', \'bias_regularizer\', \'activity_regularizer\', \'kernel_constraint\', \'recurrent_constraint\', \'bias_constraint\', \'dropout\', \'recurrent_dropout\', \'implementation\', \'return_sequences\', \'return_state\', \'go_backwards\', \'stateful\', \'unroll\'], varargs=None, keywords=kwargs, defaults=[\'tanh\', \'hard_sigmoid\', \'True\', \'glorot_uniform\', \'orthogonal\', \'zeros\', \'None\', \'None\', \'None\', \'None\', \'None\', \'None\', \'None\', \'0.0\', \'0.0\', \'1\', \'False\', \'False\', \'False\', \'False\', \'False\'], "
|
||||||
}
|
}
|
||||||
member_method {
|
member_method {
|
||||||
name: "add_loss"
|
name: "add_loss"
|
||||||
@ -137,10 +205,6 @@ tf_class {
|
|||||||
name: "get_config"
|
name: "get_config"
|
||||||
argspec: "args=[\'self\'], varargs=None, keywords=None, defaults=None"
|
argspec: "args=[\'self\'], varargs=None, keywords=None, defaults=None"
|
||||||
}
|
}
|
||||||
member_method {
|
|
||||||
name: "get_constants"
|
|
||||||
argspec: "args=[\'self\', \'inputs\', \'training\'], varargs=None, keywords=None, defaults=[\'None\'], "
|
|
||||||
}
|
|
||||||
member_method {
|
member_method {
|
||||||
name: "get_initial_state"
|
name: "get_initial_state"
|
||||||
argspec: "args=[\'self\', \'inputs\'], varargs=None, keywords=None, defaults=None"
|
argspec: "args=[\'self\', \'inputs\'], varargs=None, keywords=None, defaults=None"
|
||||||
@ -159,7 +223,7 @@ tf_class {
|
|||||||
}
|
}
|
||||||
member_method {
|
member_method {
|
||||||
name: "get_losses_for"
|
name: "get_losses_for"
|
||||||
argspec: "args=[\'self\', \'inputs\'], varargs=None, keywords=None, defaults=None"
|
argspec: "args=[\'self\', \'inputs\'], varargs=None, keywords=None, defaults=[\'None\'], "
|
||||||
}
|
}
|
||||||
member_method {
|
member_method {
|
||||||
name: "get_output_at"
|
name: "get_output_at"
|
||||||
@ -181,10 +245,6 @@ tf_class {
|
|||||||
name: "get_weights"
|
name: "get_weights"
|
||||||
argspec: "args=[\'self\'], varargs=None, keywords=None, defaults=None"
|
argspec: "args=[\'self\'], varargs=None, keywords=None, defaults=None"
|
||||||
}
|
}
|
||||||
member_method {
|
|
||||||
name: "preprocess_input"
|
|
||||||
argspec: "args=[\'self\', \'inputs\', \'training\'], varargs=None, keywords=None, defaults=[\'None\'], "
|
|
||||||
}
|
|
||||||
member_method {
|
member_method {
|
||||||
name: "reset_states"
|
name: "reset_states"
|
||||||
argspec: "args=[\'self\', \'states\'], varargs=None, keywords=None, defaults=[\'None\'], "
|
argspec: "args=[\'self\', \'states\'], varargs=None, keywords=None, defaults=[\'None\'], "
|
||||||
@ -193,8 +253,4 @@ tf_class {
|
|||||||
name: "set_weights"
|
name: "set_weights"
|
||||||
argspec: "args=[\'self\', \'weights\'], varargs=None, keywords=None, defaults=None"
|
argspec: "args=[\'self\', \'weights\'], varargs=None, keywords=None, defaults=None"
|
||||||
}
|
}
|
||||||
member_method {
|
|
||||||
name: "step"
|
|
||||||
argspec: "args=[\'self\', \'inputs\', \'states\'], varargs=None, keywords=None, defaults=None"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,179 @@
|
|||||||
|
path: "tensorflow.keras.layers.LSTMCell"
|
||||||
|
tf_class {
|
||||||
|
is_instance: "<class \'tensorflow.python.keras._impl.keras.layers.recurrent.LSTMCell\'>"
|
||||||
|
is_instance: "<class \'tensorflow.python.keras._impl.keras.engine.topology.Layer\'>"
|
||||||
|
is_instance: "<class \'tensorflow.python.layers.base.Layer\'>"
|
||||||
|
is_instance: "<type \'object\'>"
|
||||||
|
member {
|
||||||
|
name: "activity_regularizer"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "dtype"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "graph"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "inbound_nodes"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "input"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "input_mask"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "input_shape"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "losses"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "name"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "non_trainable_variables"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "non_trainable_weights"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "outbound_nodes"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "output"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "output_mask"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "output_shape"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "scope_name"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "trainable_variables"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "trainable_weights"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "updates"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "variables"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "weights"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "__init__"
|
||||||
|
argspec: "args=[\'self\', \'units\', \'activation\', \'recurrent_activation\', \'use_bias\', \'kernel_initializer\', \'recurrent_initializer\', \'bias_initializer\', \'unit_forget_bias\', \'kernel_regularizer\', \'recurrent_regularizer\', \'bias_regularizer\', \'kernel_constraint\', \'recurrent_constraint\', \'bias_constraint\', \'dropout\', \'recurrent_dropout\', \'implementation\'], varargs=None, keywords=kwargs, defaults=[\'tanh\', \'hard_sigmoid\', \'True\', \'glorot_uniform\', \'orthogonal\', \'zeros\', \'True\', \'None\', \'None\', \'None\', \'None\', \'None\', \'None\', \'0.0\', \'0.0\', \'1\'], "
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "add_loss"
|
||||||
|
argspec: "args=[\'self\', \'losses\', \'inputs\'], varargs=None, keywords=None, defaults=[\'None\'], "
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "add_update"
|
||||||
|
argspec: "args=[\'self\', \'updates\', \'inputs\'], varargs=None, keywords=None, defaults=[\'None\'], "
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "add_variable"
|
||||||
|
argspec: "args=[\'self\', \'name\', \'shape\', \'dtype\', \'initializer\', \'regularizer\', \'trainable\', \'constraint\', \'partitioner\'], varargs=None, keywords=None, defaults=[\'None\', \'None\', \'None\', \'True\', \'None\', \'None\'], "
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "add_weight"
|
||||||
|
argspec: "args=[\'self\', \'name\', \'shape\', \'dtype\', \'initializer\', \'regularizer\', \'trainable\', \'constraint\'], varargs=None, keywords=None, defaults=[\'None\', \'None\', \'None\', \'True\', \'None\'], "
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "apply"
|
||||||
|
argspec: "args=[\'self\', \'inputs\'], varargs=args, keywords=kwargs, defaults=None"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "build"
|
||||||
|
argspec: "args=[\'self\', \'input_shape\'], varargs=None, keywords=None, defaults=None"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "call"
|
||||||
|
argspec: "args=[\'self\', \'inputs\', \'states\', \'training\'], varargs=None, keywords=None, defaults=[\'None\'], "
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "compute_mask"
|
||||||
|
argspec: "args=[\'self\', \'inputs\', \'mask\'], varargs=None, keywords=None, defaults=[\'None\'], "
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "count_params"
|
||||||
|
argspec: "args=[\'self\'], 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"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "get_input_at"
|
||||||
|
argspec: "args=[\'self\', \'node_index\'], varargs=None, keywords=None, defaults=None"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "get_input_mask_at"
|
||||||
|
argspec: "args=[\'self\', \'node_index\'], varargs=None, keywords=None, defaults=None"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "get_input_shape_at"
|
||||||
|
argspec: "args=[\'self\', \'node_index\'], varargs=None, keywords=None, defaults=None"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "get_losses_for"
|
||||||
|
argspec: "args=[\'self\', \'inputs\'], varargs=None, keywords=None, defaults=None"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "get_output_at"
|
||||||
|
argspec: "args=[\'self\', \'node_index\'], varargs=None, keywords=None, defaults=None"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "get_output_mask_at"
|
||||||
|
argspec: "args=[\'self\', \'node_index\'], varargs=None, keywords=None, defaults=None"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "get_output_shape_at"
|
||||||
|
argspec: "args=[\'self\', \'node_index\'], varargs=None, keywords=None, defaults=None"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "get_updates_for"
|
||||||
|
argspec: "args=[\'self\', \'inputs\'], varargs=None, keywords=None, defaults=None"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "get_weights"
|
||||||
|
argspec: "args=[\'self\'], varargs=None, keywords=None, defaults=None"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "set_weights"
|
||||||
|
argspec: "args=[\'self\', \'weights\'], varargs=None, keywords=None, defaults=None"
|
||||||
|
}
|
||||||
|
}
|
@ -1,14 +1,34 @@
|
|||||||
path: "tensorflow.keras.layers.LSTM"
|
path: "tensorflow.keras.layers.LSTM"
|
||||||
tf_class {
|
tf_class {
|
||||||
is_instance: "<class \'tensorflow.python.keras._impl.keras.layers.recurrent.LSTM\'>"
|
is_instance: "<class \'tensorflow.python.keras._impl.keras.layers.recurrent.LSTM\'>"
|
||||||
is_instance: "<class \'tensorflow.python.keras._impl.keras.layers.recurrent.Recurrent\'>"
|
is_instance: "<class \'tensorflow.python.keras._impl.keras.layers.recurrent.RNN\'>"
|
||||||
is_instance: "<class \'tensorflow.python.keras._impl.keras.engine.topology.Layer\'>"
|
is_instance: "<class \'tensorflow.python.keras._impl.keras.engine.topology.Layer\'>"
|
||||||
is_instance: "<class \'tensorflow.python.layers.base.Layer\'>"
|
is_instance: "<class \'tensorflow.python.layers.base.Layer\'>"
|
||||||
is_instance: "<type \'object\'>"
|
is_instance: "<type \'object\'>"
|
||||||
|
member {
|
||||||
|
name: "activation"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
member {
|
member {
|
||||||
name: "activity_regularizer"
|
name: "activity_regularizer"
|
||||||
mtype: "<type \'property\'>"
|
mtype: "<type \'property\'>"
|
||||||
}
|
}
|
||||||
|
member {
|
||||||
|
name: "bias_constraint"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "bias_initializer"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "bias_regularizer"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "dropout"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
member {
|
member {
|
||||||
name: "dtype"
|
name: "dtype"
|
||||||
mtype: "<type \'property\'>"
|
mtype: "<type \'property\'>"
|
||||||
@ -17,6 +37,10 @@ tf_class {
|
|||||||
name: "graph"
|
name: "graph"
|
||||||
mtype: "<type \'property\'>"
|
mtype: "<type \'property\'>"
|
||||||
}
|
}
|
||||||
|
member {
|
||||||
|
name: "implementation"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
member {
|
member {
|
||||||
name: "inbound_nodes"
|
name: "inbound_nodes"
|
||||||
mtype: "<type \'property\'>"
|
mtype: "<type \'property\'>"
|
||||||
@ -33,6 +57,18 @@ tf_class {
|
|||||||
name: "input_shape"
|
name: "input_shape"
|
||||||
mtype: "<type \'property\'>"
|
mtype: "<type \'property\'>"
|
||||||
}
|
}
|
||||||
|
member {
|
||||||
|
name: "kernel_constraint"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "kernel_initializer"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "kernel_regularizer"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
member {
|
member {
|
||||||
name: "losses"
|
name: "losses"
|
||||||
mtype: "<type \'property\'>"
|
mtype: "<type \'property\'>"
|
||||||
@ -65,10 +101,34 @@ tf_class {
|
|||||||
name: "output_shape"
|
name: "output_shape"
|
||||||
mtype: "<type \'property\'>"
|
mtype: "<type \'property\'>"
|
||||||
}
|
}
|
||||||
|
member {
|
||||||
|
name: "recurrent_activation"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "recurrent_constraint"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "recurrent_dropout"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "recurrent_initializer"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "recurrent_regularizer"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
member {
|
member {
|
||||||
name: "scope_name"
|
name: "scope_name"
|
||||||
mtype: "<type \'property\'>"
|
mtype: "<type \'property\'>"
|
||||||
}
|
}
|
||||||
|
member {
|
||||||
|
name: "states"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
member {
|
member {
|
||||||
name: "trainable_variables"
|
name: "trainable_variables"
|
||||||
mtype: "<type \'property\'>"
|
mtype: "<type \'property\'>"
|
||||||
@ -77,10 +137,22 @@ tf_class {
|
|||||||
name: "trainable_weights"
|
name: "trainable_weights"
|
||||||
mtype: "<type \'property\'>"
|
mtype: "<type \'property\'>"
|
||||||
}
|
}
|
||||||
|
member {
|
||||||
|
name: "unit_forget_bias"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "units"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
member {
|
member {
|
||||||
name: "updates"
|
name: "updates"
|
||||||
mtype: "<type \'property\'>"
|
mtype: "<type \'property\'>"
|
||||||
}
|
}
|
||||||
|
member {
|
||||||
|
name: "use_bias"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
member {
|
member {
|
||||||
name: "variables"
|
name: "variables"
|
||||||
mtype: "<type \'property\'>"
|
mtype: "<type \'property\'>"
|
||||||
@ -91,7 +163,7 @@ tf_class {
|
|||||||
}
|
}
|
||||||
member_method {
|
member_method {
|
||||||
name: "__init__"
|
name: "__init__"
|
||||||
argspec: "args=[\'self\', \'units\', \'activation\', \'recurrent_activation\', \'use_bias\', \'kernel_initializer\', \'recurrent_initializer\', \'bias_initializer\', \'unit_forget_bias\', \'kernel_regularizer\', \'recurrent_regularizer\', \'bias_regularizer\', \'activity_regularizer\', \'kernel_constraint\', \'recurrent_constraint\', \'bias_constraint\', \'dropout\', \'recurrent_dropout\'], varargs=None, keywords=kwargs, defaults=[\'tanh\', \'hard_sigmoid\', \'True\', \'glorot_uniform\', \'orthogonal\', \'zeros\', \'True\', \'None\', \'None\', \'None\', \'None\', \'None\', \'None\', \'None\', \'0.0\', \'0.0\'], "
|
argspec: "args=[\'self\', \'units\', \'activation\', \'recurrent_activation\', \'use_bias\', \'kernel_initializer\', \'recurrent_initializer\', \'bias_initializer\', \'unit_forget_bias\', \'kernel_regularizer\', \'recurrent_regularizer\', \'bias_regularizer\', \'activity_regularizer\', \'kernel_constraint\', \'recurrent_constraint\', \'bias_constraint\', \'dropout\', \'recurrent_dropout\', \'implementation\', \'return_sequences\', \'return_state\', \'go_backwards\', \'stateful\', \'unroll\'], varargs=None, keywords=kwargs, defaults=[\'tanh\', \'hard_sigmoid\', \'True\', \'glorot_uniform\', \'orthogonal\', \'zeros\', \'True\', \'None\', \'None\', \'None\', \'None\', \'None\', \'None\', \'None\', \'0.0\', \'0.0\', \'1\', \'False\', \'False\', \'False\', \'False\', \'False\'], "
|
||||||
}
|
}
|
||||||
member_method {
|
member_method {
|
||||||
name: "add_loss"
|
name: "add_loss"
|
||||||
@ -137,10 +209,6 @@ tf_class {
|
|||||||
name: "get_config"
|
name: "get_config"
|
||||||
argspec: "args=[\'self\'], varargs=None, keywords=None, defaults=None"
|
argspec: "args=[\'self\'], varargs=None, keywords=None, defaults=None"
|
||||||
}
|
}
|
||||||
member_method {
|
|
||||||
name: "get_constants"
|
|
||||||
argspec: "args=[\'self\', \'inputs\', \'training\'], varargs=None, keywords=None, defaults=[\'None\'], "
|
|
||||||
}
|
|
||||||
member_method {
|
member_method {
|
||||||
name: "get_initial_state"
|
name: "get_initial_state"
|
||||||
argspec: "args=[\'self\', \'inputs\'], varargs=None, keywords=None, defaults=None"
|
argspec: "args=[\'self\', \'inputs\'], varargs=None, keywords=None, defaults=None"
|
||||||
@ -159,7 +227,7 @@ tf_class {
|
|||||||
}
|
}
|
||||||
member_method {
|
member_method {
|
||||||
name: "get_losses_for"
|
name: "get_losses_for"
|
||||||
argspec: "args=[\'self\', \'inputs\'], varargs=None, keywords=None, defaults=None"
|
argspec: "args=[\'self\', \'inputs\'], varargs=None, keywords=None, defaults=[\'None\'], "
|
||||||
}
|
}
|
||||||
member_method {
|
member_method {
|
||||||
name: "get_output_at"
|
name: "get_output_at"
|
||||||
@ -181,10 +249,6 @@ tf_class {
|
|||||||
name: "get_weights"
|
name: "get_weights"
|
||||||
argspec: "args=[\'self\'], varargs=None, keywords=None, defaults=None"
|
argspec: "args=[\'self\'], varargs=None, keywords=None, defaults=None"
|
||||||
}
|
}
|
||||||
member_method {
|
|
||||||
name: "preprocess_input"
|
|
||||||
argspec: "args=[\'self\', \'inputs\', \'training\'], varargs=None, keywords=None, defaults=[\'None\'], "
|
|
||||||
}
|
|
||||||
member_method {
|
member_method {
|
||||||
name: "reset_states"
|
name: "reset_states"
|
||||||
argspec: "args=[\'self\', \'states\'], varargs=None, keywords=None, defaults=[\'None\'], "
|
argspec: "args=[\'self\', \'states\'], varargs=None, keywords=None, defaults=[\'None\'], "
|
||||||
@ -193,8 +257,4 @@ tf_class {
|
|||||||
name: "set_weights"
|
name: "set_weights"
|
||||||
argspec: "args=[\'self\', \'weights\'], varargs=None, keywords=None, defaults=None"
|
argspec: "args=[\'self\', \'weights\'], varargs=None, keywords=None, defaults=None"
|
||||||
}
|
}
|
||||||
member_method {
|
|
||||||
name: "step"
|
|
||||||
argspec: "args=[\'self\', \'inputs\', \'states\'], varargs=None, keywords=None, defaults=None"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
191
tensorflow/tools/api/golden/tensorflow.keras.layers.-r-n-n.pbtxt
Normal file
191
tensorflow/tools/api/golden/tensorflow.keras.layers.-r-n-n.pbtxt
Normal file
@ -0,0 +1,191 @@
|
|||||||
|
path: "tensorflow.keras.layers.RNN"
|
||||||
|
tf_class {
|
||||||
|
is_instance: "<class \'tensorflow.python.keras._impl.keras.layers.recurrent.RNN\'>"
|
||||||
|
is_instance: "<class \'tensorflow.python.keras._impl.keras.engine.topology.Layer\'>"
|
||||||
|
is_instance: "<class \'tensorflow.python.layers.base.Layer\'>"
|
||||||
|
is_instance: "<type \'object\'>"
|
||||||
|
member {
|
||||||
|
name: "activity_regularizer"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "dtype"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "graph"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "inbound_nodes"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "input"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "input_mask"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "input_shape"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "losses"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "name"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "non_trainable_variables"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "non_trainable_weights"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "outbound_nodes"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "output"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "output_mask"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "output_shape"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "scope_name"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "states"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "trainable_variables"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "trainable_weights"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "updates"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "variables"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "weights"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "__init__"
|
||||||
|
argspec: "args=[\'self\', \'cell\', \'return_sequences\', \'return_state\', \'go_backwards\', \'stateful\', \'unroll\', \'activity_regularizer\'], varargs=None, keywords=kwargs, defaults=[\'False\', \'False\', \'False\', \'False\', \'False\', \'None\'], "
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "add_loss"
|
||||||
|
argspec: "args=[\'self\', \'losses\', \'inputs\'], varargs=None, keywords=None, defaults=[\'None\'], "
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "add_update"
|
||||||
|
argspec: "args=[\'self\', \'updates\', \'inputs\'], varargs=None, keywords=None, defaults=[\'None\'], "
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "add_variable"
|
||||||
|
argspec: "args=[\'self\', \'name\', \'shape\', \'dtype\', \'initializer\', \'regularizer\', \'trainable\', \'constraint\', \'partitioner\'], varargs=None, keywords=None, defaults=[\'None\', \'None\', \'None\', \'True\', \'None\', \'None\'], "
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "add_weight"
|
||||||
|
argspec: "args=[\'self\', \'name\', \'shape\', \'dtype\', \'initializer\', \'regularizer\', \'trainable\', \'constraint\'], varargs=None, keywords=None, defaults=[\'None\', \'None\', \'None\', \'True\', \'None\'], "
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "apply"
|
||||||
|
argspec: "args=[\'self\', \'inputs\'], varargs=args, keywords=kwargs, defaults=None"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "build"
|
||||||
|
argspec: "args=[\'self\', \'input_shape\'], varargs=None, keywords=None, defaults=None"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "call"
|
||||||
|
argspec: "args=[\'self\', \'inputs\', \'mask\', \'training\', \'initial_state\', \'constants\'], varargs=None, keywords=None, defaults=[\'None\', \'None\', \'None\', \'None\'], "
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "compute_mask"
|
||||||
|
argspec: "args=[\'self\', \'inputs\', \'mask\'], varargs=None, keywords=None, defaults=None"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "count_params"
|
||||||
|
argspec: "args=[\'self\'], varargs=None, keywords=None, defaults=None"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "from_config"
|
||||||
|
argspec: "args=[\'cls\', \'config\', \'custom_objects\'], varargs=None, keywords=None, defaults=[\'None\'], "
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "get_config"
|
||||||
|
argspec: "args=[\'self\'], varargs=None, keywords=None, defaults=None"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "get_initial_state"
|
||||||
|
argspec: "args=[\'self\', \'inputs\'], varargs=None, keywords=None, defaults=None"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "get_input_at"
|
||||||
|
argspec: "args=[\'self\', \'node_index\'], varargs=None, keywords=None, defaults=None"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "get_input_mask_at"
|
||||||
|
argspec: "args=[\'self\', \'node_index\'], varargs=None, keywords=None, defaults=None"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "get_input_shape_at"
|
||||||
|
argspec: "args=[\'self\', \'node_index\'], varargs=None, keywords=None, defaults=None"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "get_losses_for"
|
||||||
|
argspec: "args=[\'self\', \'inputs\'], varargs=None, keywords=None, defaults=[\'None\'], "
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "get_output_at"
|
||||||
|
argspec: "args=[\'self\', \'node_index\'], varargs=None, keywords=None, defaults=None"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "get_output_mask_at"
|
||||||
|
argspec: "args=[\'self\', \'node_index\'], varargs=None, keywords=None, defaults=None"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "get_output_shape_at"
|
||||||
|
argspec: "args=[\'self\', \'node_index\'], varargs=None, keywords=None, defaults=None"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "get_updates_for"
|
||||||
|
argspec: "args=[\'self\', \'inputs\'], varargs=None, keywords=None, defaults=None"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "get_weights"
|
||||||
|
argspec: "args=[\'self\'], varargs=None, keywords=None, defaults=None"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "reset_states"
|
||||||
|
argspec: "args=[\'self\', \'states\'], varargs=None, keywords=None, defaults=[\'None\'], "
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "set_weights"
|
||||||
|
argspec: "args=[\'self\', \'weights\'], varargs=None, keywords=None, defaults=None"
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,179 @@
|
|||||||
|
path: "tensorflow.keras.layers.SimpleRNNCell"
|
||||||
|
tf_class {
|
||||||
|
is_instance: "<class \'tensorflow.python.keras._impl.keras.layers.recurrent.SimpleRNNCell\'>"
|
||||||
|
is_instance: "<class \'tensorflow.python.keras._impl.keras.engine.topology.Layer\'>"
|
||||||
|
is_instance: "<class \'tensorflow.python.layers.base.Layer\'>"
|
||||||
|
is_instance: "<type \'object\'>"
|
||||||
|
member {
|
||||||
|
name: "activity_regularizer"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "dtype"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "graph"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "inbound_nodes"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "input"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "input_mask"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "input_shape"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "losses"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "name"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "non_trainable_variables"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "non_trainable_weights"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "outbound_nodes"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "output"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "output_mask"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "output_shape"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "scope_name"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "trainable_variables"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "trainable_weights"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "updates"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "variables"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "weights"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "__init__"
|
||||||
|
argspec: "args=[\'self\', \'units\', \'activation\', \'use_bias\', \'kernel_initializer\', \'recurrent_initializer\', \'bias_initializer\', \'kernel_regularizer\', \'recurrent_regularizer\', \'bias_regularizer\', \'kernel_constraint\', \'recurrent_constraint\', \'bias_constraint\', \'dropout\', \'recurrent_dropout\'], varargs=None, keywords=kwargs, defaults=[\'tanh\', \'True\', \'glorot_uniform\', \'orthogonal\', \'zeros\', \'None\', \'None\', \'None\', \'None\', \'None\', \'None\', \'0.0\', \'0.0\'], "
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "add_loss"
|
||||||
|
argspec: "args=[\'self\', \'losses\', \'inputs\'], varargs=None, keywords=None, defaults=[\'None\'], "
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "add_update"
|
||||||
|
argspec: "args=[\'self\', \'updates\', \'inputs\'], varargs=None, keywords=None, defaults=[\'None\'], "
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "add_variable"
|
||||||
|
argspec: "args=[\'self\', \'name\', \'shape\', \'dtype\', \'initializer\', \'regularizer\', \'trainable\', \'constraint\', \'partitioner\'], varargs=None, keywords=None, defaults=[\'None\', \'None\', \'None\', \'True\', \'None\', \'None\'], "
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "add_weight"
|
||||||
|
argspec: "args=[\'self\', \'name\', \'shape\', \'dtype\', \'initializer\', \'regularizer\', \'trainable\', \'constraint\'], varargs=None, keywords=None, defaults=[\'None\', \'None\', \'None\', \'True\', \'None\'], "
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "apply"
|
||||||
|
argspec: "args=[\'self\', \'inputs\'], varargs=args, keywords=kwargs, defaults=None"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "build"
|
||||||
|
argspec: "args=[\'self\', \'input_shape\'], varargs=None, keywords=None, defaults=None"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "call"
|
||||||
|
argspec: "args=[\'self\', \'inputs\', \'states\', \'training\'], varargs=None, keywords=None, defaults=[\'None\'], "
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "compute_mask"
|
||||||
|
argspec: "args=[\'self\', \'inputs\', \'mask\'], varargs=None, keywords=None, defaults=[\'None\'], "
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "count_params"
|
||||||
|
argspec: "args=[\'self\'], 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"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "get_input_at"
|
||||||
|
argspec: "args=[\'self\', \'node_index\'], varargs=None, keywords=None, defaults=None"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "get_input_mask_at"
|
||||||
|
argspec: "args=[\'self\', \'node_index\'], varargs=None, keywords=None, defaults=None"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "get_input_shape_at"
|
||||||
|
argspec: "args=[\'self\', \'node_index\'], varargs=None, keywords=None, defaults=None"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "get_losses_for"
|
||||||
|
argspec: "args=[\'self\', \'inputs\'], varargs=None, keywords=None, defaults=None"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "get_output_at"
|
||||||
|
argspec: "args=[\'self\', \'node_index\'], varargs=None, keywords=None, defaults=None"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "get_output_mask_at"
|
||||||
|
argspec: "args=[\'self\', \'node_index\'], varargs=None, keywords=None, defaults=None"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "get_output_shape_at"
|
||||||
|
argspec: "args=[\'self\', \'node_index\'], varargs=None, keywords=None, defaults=None"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "get_updates_for"
|
||||||
|
argspec: "args=[\'self\', \'inputs\'], varargs=None, keywords=None, defaults=None"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "get_weights"
|
||||||
|
argspec: "args=[\'self\'], varargs=None, keywords=None, defaults=None"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "set_weights"
|
||||||
|
argspec: "args=[\'self\', \'weights\'], varargs=None, keywords=None, defaults=None"
|
||||||
|
}
|
||||||
|
}
|
@ -1,14 +1,34 @@
|
|||||||
path: "tensorflow.keras.layers.SimpleRNN"
|
path: "tensorflow.keras.layers.SimpleRNN"
|
||||||
tf_class {
|
tf_class {
|
||||||
is_instance: "<class \'tensorflow.python.keras._impl.keras.layers.recurrent.SimpleRNN\'>"
|
is_instance: "<class \'tensorflow.python.keras._impl.keras.layers.recurrent.SimpleRNN\'>"
|
||||||
is_instance: "<class \'tensorflow.python.keras._impl.keras.layers.recurrent.Recurrent\'>"
|
is_instance: "<class \'tensorflow.python.keras._impl.keras.layers.recurrent.RNN\'>"
|
||||||
is_instance: "<class \'tensorflow.python.keras._impl.keras.engine.topology.Layer\'>"
|
is_instance: "<class \'tensorflow.python.keras._impl.keras.engine.topology.Layer\'>"
|
||||||
is_instance: "<class \'tensorflow.python.layers.base.Layer\'>"
|
is_instance: "<class \'tensorflow.python.layers.base.Layer\'>"
|
||||||
is_instance: "<type \'object\'>"
|
is_instance: "<type \'object\'>"
|
||||||
|
member {
|
||||||
|
name: "activation"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
member {
|
member {
|
||||||
name: "activity_regularizer"
|
name: "activity_regularizer"
|
||||||
mtype: "<type \'property\'>"
|
mtype: "<type \'property\'>"
|
||||||
}
|
}
|
||||||
|
member {
|
||||||
|
name: "bias_constraint"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "bias_initializer"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "bias_regularizer"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "dropout"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
member {
|
member {
|
||||||
name: "dtype"
|
name: "dtype"
|
||||||
mtype: "<type \'property\'>"
|
mtype: "<type \'property\'>"
|
||||||
@ -33,6 +53,18 @@ tf_class {
|
|||||||
name: "input_shape"
|
name: "input_shape"
|
||||||
mtype: "<type \'property\'>"
|
mtype: "<type \'property\'>"
|
||||||
}
|
}
|
||||||
|
member {
|
||||||
|
name: "kernel_constraint"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "kernel_initializer"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "kernel_regularizer"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
member {
|
member {
|
||||||
name: "losses"
|
name: "losses"
|
||||||
mtype: "<type \'property\'>"
|
mtype: "<type \'property\'>"
|
||||||
@ -65,10 +97,30 @@ tf_class {
|
|||||||
name: "output_shape"
|
name: "output_shape"
|
||||||
mtype: "<type \'property\'>"
|
mtype: "<type \'property\'>"
|
||||||
}
|
}
|
||||||
|
member {
|
||||||
|
name: "recurrent_constraint"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "recurrent_dropout"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "recurrent_initializer"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "recurrent_regularizer"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
member {
|
member {
|
||||||
name: "scope_name"
|
name: "scope_name"
|
||||||
mtype: "<type \'property\'>"
|
mtype: "<type \'property\'>"
|
||||||
}
|
}
|
||||||
|
member {
|
||||||
|
name: "states"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
member {
|
member {
|
||||||
name: "trainable_variables"
|
name: "trainable_variables"
|
||||||
mtype: "<type \'property\'>"
|
mtype: "<type \'property\'>"
|
||||||
@ -77,10 +129,18 @@ tf_class {
|
|||||||
name: "trainable_weights"
|
name: "trainable_weights"
|
||||||
mtype: "<type \'property\'>"
|
mtype: "<type \'property\'>"
|
||||||
}
|
}
|
||||||
|
member {
|
||||||
|
name: "units"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
member {
|
member {
|
||||||
name: "updates"
|
name: "updates"
|
||||||
mtype: "<type \'property\'>"
|
mtype: "<type \'property\'>"
|
||||||
}
|
}
|
||||||
|
member {
|
||||||
|
name: "use_bias"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
member {
|
member {
|
||||||
name: "variables"
|
name: "variables"
|
||||||
mtype: "<type \'property\'>"
|
mtype: "<type \'property\'>"
|
||||||
@ -91,7 +151,7 @@ tf_class {
|
|||||||
}
|
}
|
||||||
member_method {
|
member_method {
|
||||||
name: "__init__"
|
name: "__init__"
|
||||||
argspec: "args=[\'self\', \'units\', \'activation\', \'use_bias\', \'kernel_initializer\', \'recurrent_initializer\', \'bias_initializer\', \'kernel_regularizer\', \'recurrent_regularizer\', \'bias_regularizer\', \'activity_regularizer\', \'kernel_constraint\', \'recurrent_constraint\', \'bias_constraint\', \'dropout\', \'recurrent_dropout\'], varargs=None, keywords=kwargs, defaults=[\'tanh\', \'True\', \'glorot_uniform\', \'orthogonal\', \'zeros\', \'None\', \'None\', \'None\', \'None\', \'None\', \'None\', \'None\', \'0.0\', \'0.0\'], "
|
argspec: "args=[\'self\', \'units\', \'activation\', \'use_bias\', \'kernel_initializer\', \'recurrent_initializer\', \'bias_initializer\', \'kernel_regularizer\', \'recurrent_regularizer\', \'bias_regularizer\', \'activity_regularizer\', \'kernel_constraint\', \'recurrent_constraint\', \'bias_constraint\', \'dropout\', \'recurrent_dropout\', \'return_sequences\', \'return_state\', \'go_backwards\', \'stateful\', \'unroll\'], varargs=None, keywords=kwargs, defaults=[\'tanh\', \'True\', \'glorot_uniform\', \'orthogonal\', \'zeros\', \'None\', \'None\', \'None\', \'None\', \'None\', \'None\', \'None\', \'0.0\', \'0.0\', \'False\', \'False\', \'False\', \'False\', \'False\'], "
|
||||||
}
|
}
|
||||||
member_method {
|
member_method {
|
||||||
name: "add_loss"
|
name: "add_loss"
|
||||||
@ -137,10 +197,6 @@ tf_class {
|
|||||||
name: "get_config"
|
name: "get_config"
|
||||||
argspec: "args=[\'self\'], varargs=None, keywords=None, defaults=None"
|
argspec: "args=[\'self\'], varargs=None, keywords=None, defaults=None"
|
||||||
}
|
}
|
||||||
member_method {
|
|
||||||
name: "get_constants"
|
|
||||||
argspec: "args=[\'self\', \'inputs\', \'training\'], varargs=None, keywords=None, defaults=[\'None\'], "
|
|
||||||
}
|
|
||||||
member_method {
|
member_method {
|
||||||
name: "get_initial_state"
|
name: "get_initial_state"
|
||||||
argspec: "args=[\'self\', \'inputs\'], varargs=None, keywords=None, defaults=None"
|
argspec: "args=[\'self\', \'inputs\'], varargs=None, keywords=None, defaults=None"
|
||||||
@ -159,7 +215,7 @@ tf_class {
|
|||||||
}
|
}
|
||||||
member_method {
|
member_method {
|
||||||
name: "get_losses_for"
|
name: "get_losses_for"
|
||||||
argspec: "args=[\'self\', \'inputs\'], varargs=None, keywords=None, defaults=None"
|
argspec: "args=[\'self\', \'inputs\'], varargs=None, keywords=None, defaults=[\'None\'], "
|
||||||
}
|
}
|
||||||
member_method {
|
member_method {
|
||||||
name: "get_output_at"
|
name: "get_output_at"
|
||||||
@ -181,10 +237,6 @@ tf_class {
|
|||||||
name: "get_weights"
|
name: "get_weights"
|
||||||
argspec: "args=[\'self\'], varargs=None, keywords=None, defaults=None"
|
argspec: "args=[\'self\'], varargs=None, keywords=None, defaults=None"
|
||||||
}
|
}
|
||||||
member_method {
|
|
||||||
name: "preprocess_input"
|
|
||||||
argspec: "args=[\'self\', \'inputs\', \'training\'], varargs=None, keywords=None, defaults=[\'None\'], "
|
|
||||||
}
|
|
||||||
member_method {
|
member_method {
|
||||||
name: "reset_states"
|
name: "reset_states"
|
||||||
argspec: "args=[\'self\', \'states\'], varargs=None, keywords=None, defaults=[\'None\'], "
|
argspec: "args=[\'self\', \'states\'], varargs=None, keywords=None, defaults=[\'None\'], "
|
||||||
@ -193,8 +245,4 @@ tf_class {
|
|||||||
name: "set_weights"
|
name: "set_weights"
|
||||||
argspec: "args=[\'self\', \'weights\'], varargs=None, keywords=None, defaults=None"
|
argspec: "args=[\'self\', \'weights\'], varargs=None, keywords=None, defaults=None"
|
||||||
}
|
}
|
||||||
member_method {
|
|
||||||
name: "step"
|
|
||||||
argspec: "args=[\'self\', \'inputs\', \'states\'], varargs=None, keywords=None, defaults=None"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,183 @@
|
|||||||
|
path: "tensorflow.keras.layers.StackedRNNCells"
|
||||||
|
tf_class {
|
||||||
|
is_instance: "<class \'tensorflow.python.keras._impl.keras.layers.recurrent.StackedRNNCells\'>"
|
||||||
|
is_instance: "<class \'tensorflow.python.keras._impl.keras.engine.topology.Layer\'>"
|
||||||
|
is_instance: "<class \'tensorflow.python.layers.base.Layer\'>"
|
||||||
|
is_instance: "<type \'object\'>"
|
||||||
|
member {
|
||||||
|
name: "activity_regularizer"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "dtype"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "graph"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "inbound_nodes"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "input"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "input_mask"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "input_shape"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "losses"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "name"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "non_trainable_variables"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "non_trainable_weights"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "outbound_nodes"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "output"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "output_mask"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "output_shape"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "scope_name"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "state_size"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "trainable_variables"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "trainable_weights"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "updates"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "variables"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member {
|
||||||
|
name: "weights"
|
||||||
|
mtype: "<type \'property\'>"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "__init__"
|
||||||
|
argspec: "args=[\'self\', \'cells\'], varargs=None, keywords=kwargs, defaults=None"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "add_loss"
|
||||||
|
argspec: "args=[\'self\', \'losses\', \'inputs\'], varargs=None, keywords=None, defaults=[\'None\'], "
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "add_update"
|
||||||
|
argspec: "args=[\'self\', \'updates\', \'inputs\'], varargs=None, keywords=None, defaults=[\'None\'], "
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "add_variable"
|
||||||
|
argspec: "args=[\'self\', \'name\', \'shape\', \'dtype\', \'initializer\', \'regularizer\', \'trainable\', \'constraint\', \'partitioner\'], varargs=None, keywords=None, defaults=[\'None\', \'None\', \'None\', \'True\', \'None\', \'None\'], "
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "add_weight"
|
||||||
|
argspec: "args=[\'self\', \'name\', \'shape\', \'dtype\', \'initializer\', \'regularizer\', \'trainable\', \'constraint\'], varargs=None, keywords=None, defaults=[\'None\', \'None\', \'None\', \'True\', \'None\'], "
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "apply"
|
||||||
|
argspec: "args=[\'self\', \'inputs\'], varargs=args, keywords=kwargs, defaults=None"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "build"
|
||||||
|
argspec: "args=[\'self\', \'input_shape\'], varargs=None, keywords=None, defaults=None"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "call"
|
||||||
|
argspec: "args=[\'self\', \'inputs\', \'states\'], varargs=None, keywords=kwargs, defaults=None"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "compute_mask"
|
||||||
|
argspec: "args=[\'self\', \'inputs\', \'mask\'], varargs=None, keywords=None, defaults=[\'None\'], "
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "count_params"
|
||||||
|
argspec: "args=[\'self\'], varargs=None, keywords=None, defaults=None"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "from_config"
|
||||||
|
argspec: "args=[\'cls\', \'config\', \'custom_objects\'], varargs=None, keywords=None, defaults=[\'None\'], "
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "get_config"
|
||||||
|
argspec: "args=[\'self\'], varargs=None, keywords=None, defaults=None"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "get_input_at"
|
||||||
|
argspec: "args=[\'self\', \'node_index\'], varargs=None, keywords=None, defaults=None"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "get_input_mask_at"
|
||||||
|
argspec: "args=[\'self\', \'node_index\'], varargs=None, keywords=None, defaults=None"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "get_input_shape_at"
|
||||||
|
argspec: "args=[\'self\', \'node_index\'], varargs=None, keywords=None, defaults=None"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "get_losses_for"
|
||||||
|
argspec: "args=[\'self\', \'inputs\'], varargs=None, keywords=None, defaults=[\'None\'], "
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "get_output_at"
|
||||||
|
argspec: "args=[\'self\', \'node_index\'], varargs=None, keywords=None, defaults=None"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "get_output_mask_at"
|
||||||
|
argspec: "args=[\'self\', \'node_index\'], varargs=None, keywords=None, defaults=None"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "get_output_shape_at"
|
||||||
|
argspec: "args=[\'self\', \'node_index\'], varargs=None, keywords=None, defaults=None"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "get_updates_for"
|
||||||
|
argspec: "args=[\'self\', \'inputs\'], varargs=None, keywords=None, defaults=None"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "get_weights"
|
||||||
|
argspec: "args=[\'self\'], varargs=None, keywords=None, defaults=None"
|
||||||
|
}
|
||||||
|
member_method {
|
||||||
|
name: "set_weights"
|
||||||
|
argspec: "args=[\'self\', \'weights\'], varargs=None, keywords=None, defaults=None"
|
||||||
|
}
|
||||||
|
}
|
@ -140,6 +140,10 @@ tf_module {
|
|||||||
name: "GRU"
|
name: "GRU"
|
||||||
mtype: "<type \'type\'>"
|
mtype: "<type \'type\'>"
|
||||||
}
|
}
|
||||||
|
member {
|
||||||
|
name: "GRUCell"
|
||||||
|
mtype: "<type \'type\'>"
|
||||||
|
}
|
||||||
member {
|
member {
|
||||||
name: "GaussianDropout"
|
name: "GaussianDropout"
|
||||||
mtype: "<type \'type\'>"
|
mtype: "<type \'type\'>"
|
||||||
@ -208,6 +212,10 @@ tf_module {
|
|||||||
name: "LSTM"
|
name: "LSTM"
|
||||||
mtype: "<type \'type\'>"
|
mtype: "<type \'type\'>"
|
||||||
}
|
}
|
||||||
|
member {
|
||||||
|
name: "LSTMCell"
|
||||||
|
mtype: "<type \'type\'>"
|
||||||
|
}
|
||||||
member {
|
member {
|
||||||
name: "Lambda"
|
name: "Lambda"
|
||||||
mtype: "<type \'type\'>"
|
mtype: "<type \'type\'>"
|
||||||
@ -272,6 +280,10 @@ tf_module {
|
|||||||
name: "Permute"
|
name: "Permute"
|
||||||
mtype: "<type \'type\'>"
|
mtype: "<type \'type\'>"
|
||||||
}
|
}
|
||||||
|
member {
|
||||||
|
name: "RNN"
|
||||||
|
mtype: "<type \'type\'>"
|
||||||
|
}
|
||||||
member {
|
member {
|
||||||
name: "RepeatVector"
|
name: "RepeatVector"
|
||||||
mtype: "<type \'type\'>"
|
mtype: "<type \'type\'>"
|
||||||
@ -292,6 +304,10 @@ tf_module {
|
|||||||
name: "SimpleRNN"
|
name: "SimpleRNN"
|
||||||
mtype: "<type \'type\'>"
|
mtype: "<type \'type\'>"
|
||||||
}
|
}
|
||||||
|
member {
|
||||||
|
name: "SimpleRNNCell"
|
||||||
|
mtype: "<type \'type\'>"
|
||||||
|
}
|
||||||
member {
|
member {
|
||||||
name: "SpatialDropout1D"
|
name: "SpatialDropout1D"
|
||||||
mtype: "<type \'type\'>"
|
mtype: "<type \'type\'>"
|
||||||
@ -304,6 +320,10 @@ tf_module {
|
|||||||
name: "SpatialDropout3D"
|
name: "SpatialDropout3D"
|
||||||
mtype: "<type \'type\'>"
|
mtype: "<type \'type\'>"
|
||||||
}
|
}
|
||||||
|
member {
|
||||||
|
name: "StackedRNNCells"
|
||||||
|
mtype: "<type \'type\'>"
|
||||||
|
}
|
||||||
member {
|
member {
|
||||||
name: "ThresholdedReLU"
|
name: "ThresholdedReLU"
|
||||||
mtype: "<type \'type\'>"
|
mtype: "<type \'type\'>"
|
||||||
|
@ -98,7 +98,8 @@ do_pylint() {
|
|||||||
"^tensorflow/contrib/eager/python/evaluator\.py.*\[E0202.*method-hidden "\
|
"^tensorflow/contrib/eager/python/evaluator\.py.*\[E0202.*method-hidden "\
|
||||||
"^tensorflow/contrib/eager/python/metrics_impl\.py.*\[E0202.*method-hidden "\
|
"^tensorflow/contrib/eager/python/metrics_impl\.py.*\[E0202.*method-hidden "\
|
||||||
"^tensorflow/python/platform/gfile\.py.*\[E0301.*non-iterator "\
|
"^tensorflow/python/platform/gfile\.py.*\[E0301.*non-iterator "\
|
||||||
"^tensorflow/python/keras/_impl/keras/callbacks\.py.*\[E1133.*not-an-iterable"
|
"^tensorflow/python/keras/_impl/keras/callbacks\.py.*\[E1133.*not-an-iterable "\
|
||||||
|
"^tensorflow/python/keras/_impl/keras/layers/recurrent\.py.*\[E0203.*access-member-before-definition"
|
||||||
|
|
||||||
echo "ERROR_WHITELIST=\"${ERROR_WHITELIST}\""
|
echo "ERROR_WHITELIST=\"${ERROR_WHITELIST}\""
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user