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(
|
||||
name = "serialization_test",
|
||||
size = "small",
|
||||
|
@ -29,6 +29,9 @@ from six.moves import zip # pylint: disable=redefined-builtin
|
||||
from tensorflow.python.eager import context
|
||||
from tensorflow.python.framework import tensor_shape
|
||||
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.io_utils import ask_to_proceed_with_overwrite
|
||||
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()
|
||||
weight = self.add_variable(name, shape,
|
||||
dtype=dtype,
|
||||
initializer=initializer,
|
||||
regularizer=regularizer,
|
||||
constraint=constraint,
|
||||
initializer=initializers.get(initializer),
|
||||
regularizer=regularizers.get(regularizer),
|
||||
constraint=constraints.get(constraint),
|
||||
trainable=trainable)
|
||||
return weight
|
||||
|
||||
|
@ -93,7 +93,7 @@ class KerasIntegrationTest(test.TestCase):
|
||||
y_test = keras.utils.to_categorical(y_test)
|
||||
|
||||
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:]))
|
||||
model.add(keras.layers.GRU(y_train.shape[-1], activation='softmax'))
|
||||
model.compile(loss='categorical_crossentropy',
|
||||
|
@ -156,8 +156,10 @@ class GRULayerTest(test.TestCase):
|
||||
activity_regularizer='l1')
|
||||
layer.build((None, None, 2))
|
||||
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):
|
||||
embedding_dim = 4
|
||||
@ -175,9 +177,9 @@ class GRULayerTest(test.TestCase):
|
||||
recurrent_constraint=r_constraint,
|
||||
bias_constraint=b_constraint)
|
||||
layer.build((None, None, embedding_dim))
|
||||
self.assertEqual(layer.kernel.constraint, k_constraint)
|
||||
self.assertEqual(layer.recurrent_kernel.constraint, r_constraint)
|
||||
self.assertEqual(layer.bias.constraint, b_constraint)
|
||||
self.assertEqual(layer.cell.kernel.constraint, k_constraint)
|
||||
self.assertEqual(layer.cell.recurrent_kernel.constraint, r_constraint)
|
||||
self.assertEqual(layer.cell.bias.constraint, b_constraint)
|
||||
|
||||
def test_with_masking_layer_GRU(self):
|
||||
layer_class = keras.layers.GRU
|
||||
|
@ -156,8 +156,9 @@ class LSTMLayerTest(test.TestCase):
|
||||
activity_regularizer='l1')
|
||||
layer.build((None, None, 2))
|
||||
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_LSTM(self):
|
||||
embedding_dim = 4
|
||||
@ -175,9 +176,9 @@ class LSTMLayerTest(test.TestCase):
|
||||
recurrent_constraint=r_constraint,
|
||||
bias_constraint=b_constraint)
|
||||
layer.build((None, None, embedding_dim))
|
||||
self.assertEqual(layer.kernel.constraint, k_constraint)
|
||||
self.assertEqual(layer.recurrent_kernel.constraint, r_constraint)
|
||||
self.assertEqual(layer.bias.constraint, b_constraint)
|
||||
self.assertEqual(layer.cell.kernel.constraint, k_constraint)
|
||||
self.assertEqual(layer.cell.recurrent_kernel.constraint, r_constraint)
|
||||
self.assertEqual(layer.cell.bias.constraint, b_constraint)
|
||||
|
||||
def test_with_masking_layer_LSTM(self):
|
||||
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')
|
||||
layer.build((None, None, 2))
|
||||
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):
|
||||
embedding_dim = 4
|
||||
@ -175,9 +177,9 @@ class SimpleRNNLayerTest(test.TestCase):
|
||||
recurrent_constraint=r_constraint,
|
||||
bias_constraint=b_constraint)
|
||||
layer.build((None, None, embedding_dim))
|
||||
self.assertEqual(layer.kernel.constraint, k_constraint)
|
||||
self.assertEqual(layer.recurrent_kernel.constraint, r_constraint)
|
||||
self.assertEqual(layer.bias.constraint, b_constraint)
|
||||
self.assertEqual(layer.cell.kernel.constraint, k_constraint)
|
||||
self.assertEqual(layer.cell.recurrent_kernel.constraint, r_constraint)
|
||||
self.assertEqual(layer.cell.bias.constraint, b_constraint)
|
||||
|
||||
def test_with_masking_layer_SimpleRNN(self):
|
||||
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
|
||||
|
||||
# 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 GRU
|
||||
from tensorflow.python.keras._impl.keras.layers.recurrent import LSTM
|
||||
|
@ -642,7 +642,7 @@ class Layer(object):
|
||||
for output in output_list:
|
||||
with ops.name_scope('ActivityRegularizer'):
|
||||
activity_regularization = self._activity_regularizer(output)
|
||||
self.add_loss(activity_regularization)
|
||||
self.add_loss(activity_regularization, inputs=inputs)
|
||||
|
||||
if not in_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(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):
|
||||
|
||||
|
@ -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"
|
||||
tf_class {
|
||||
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.layers.base.Layer\'>"
|
||||
is_instance: "<type \'object\'>"
|
||||
member {
|
||||
name: "activation"
|
||||
mtype: "<type \'property\'>"
|
||||
}
|
||||
member {
|
||||
name: "activity_regularizer"
|
||||
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 {
|
||||
name: "dtype"
|
||||
mtype: "<type \'property\'>"
|
||||
@ -17,6 +37,10 @@ tf_class {
|
||||
name: "graph"
|
||||
mtype: "<type \'property\'>"
|
||||
}
|
||||
member {
|
||||
name: "implementation"
|
||||
mtype: "<type \'property\'>"
|
||||
}
|
||||
member {
|
||||
name: "inbound_nodes"
|
||||
mtype: "<type \'property\'>"
|
||||
@ -33,6 +57,18 @@ tf_class {
|
||||
name: "input_shape"
|
||||
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 {
|
||||
name: "losses"
|
||||
mtype: "<type \'property\'>"
|
||||
@ -65,10 +101,34 @@ tf_class {
|
||||
name: "output_shape"
|
||||
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 {
|
||||
name: "scope_name"
|
||||
mtype: "<type \'property\'>"
|
||||
}
|
||||
member {
|
||||
name: "states"
|
||||
mtype: "<type \'property\'>"
|
||||
}
|
||||
member {
|
||||
name: "trainable_variables"
|
||||
mtype: "<type \'property\'>"
|
||||
@ -77,10 +137,18 @@ tf_class {
|
||||
name: "trainable_weights"
|
||||
mtype: "<type \'property\'>"
|
||||
}
|
||||
member {
|
||||
name: "units"
|
||||
mtype: "<type \'property\'>"
|
||||
}
|
||||
member {
|
||||
name: "updates"
|
||||
mtype: "<type \'property\'>"
|
||||
}
|
||||
member {
|
||||
name: "use_bias"
|
||||
mtype: "<type \'property\'>"
|
||||
}
|
||||
member {
|
||||
name: "variables"
|
||||
mtype: "<type \'property\'>"
|
||||
@ -91,7 +159,7 @@ tf_class {
|
||||
}
|
||||
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\', \'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 {
|
||||
name: "add_loss"
|
||||
@ -137,10 +205,6 @@ tf_class {
|
||||
name: "get_config"
|
||||
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 {
|
||||
name: "get_initial_state"
|
||||
argspec: "args=[\'self\', \'inputs\'], varargs=None, keywords=None, defaults=None"
|
||||
@ -159,7 +223,7 @@ tf_class {
|
||||
}
|
||||
member_method {
|
||||
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 {
|
||||
name: "get_output_at"
|
||||
@ -181,10 +245,6 @@ tf_class {
|
||||
name: "get_weights"
|
||||
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 {
|
||||
name: "reset_states"
|
||||
argspec: "args=[\'self\', \'states\'], varargs=None, keywords=None, defaults=[\'None\'], "
|
||||
@ -193,8 +253,4 @@ tf_class {
|
||||
name: "set_weights"
|
||||
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"
|
||||
tf_class {
|
||||
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.layers.base.Layer\'>"
|
||||
is_instance: "<type \'object\'>"
|
||||
member {
|
||||
name: "activation"
|
||||
mtype: "<type \'property\'>"
|
||||
}
|
||||
member {
|
||||
name: "activity_regularizer"
|
||||
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 {
|
||||
name: "dtype"
|
||||
mtype: "<type \'property\'>"
|
||||
@ -17,6 +37,10 @@ tf_class {
|
||||
name: "graph"
|
||||
mtype: "<type \'property\'>"
|
||||
}
|
||||
member {
|
||||
name: "implementation"
|
||||
mtype: "<type \'property\'>"
|
||||
}
|
||||
member {
|
||||
name: "inbound_nodes"
|
||||
mtype: "<type \'property\'>"
|
||||
@ -33,6 +57,18 @@ tf_class {
|
||||
name: "input_shape"
|
||||
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 {
|
||||
name: "losses"
|
||||
mtype: "<type \'property\'>"
|
||||
@ -65,10 +101,34 @@ tf_class {
|
||||
name: "output_shape"
|
||||
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 {
|
||||
name: "scope_name"
|
||||
mtype: "<type \'property\'>"
|
||||
}
|
||||
member {
|
||||
name: "states"
|
||||
mtype: "<type \'property\'>"
|
||||
}
|
||||
member {
|
||||
name: "trainable_variables"
|
||||
mtype: "<type \'property\'>"
|
||||
@ -77,10 +137,22 @@ tf_class {
|
||||
name: "trainable_weights"
|
||||
mtype: "<type \'property\'>"
|
||||
}
|
||||
member {
|
||||
name: "unit_forget_bias"
|
||||
mtype: "<type \'property\'>"
|
||||
}
|
||||
member {
|
||||
name: "units"
|
||||
mtype: "<type \'property\'>"
|
||||
}
|
||||
member {
|
||||
name: "updates"
|
||||
mtype: "<type \'property\'>"
|
||||
}
|
||||
member {
|
||||
name: "use_bias"
|
||||
mtype: "<type \'property\'>"
|
||||
}
|
||||
member {
|
||||
name: "variables"
|
||||
mtype: "<type \'property\'>"
|
||||
@ -91,7 +163,7 @@ tf_class {
|
||||
}
|
||||
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\', \'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 {
|
||||
name: "add_loss"
|
||||
@ -137,10 +209,6 @@ tf_class {
|
||||
name: "get_config"
|
||||
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 {
|
||||
name: "get_initial_state"
|
||||
argspec: "args=[\'self\', \'inputs\'], varargs=None, keywords=None, defaults=None"
|
||||
@ -159,7 +227,7 @@ tf_class {
|
||||
}
|
||||
member_method {
|
||||
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 {
|
||||
name: "get_output_at"
|
||||
@ -181,10 +249,6 @@ tf_class {
|
||||
name: "get_weights"
|
||||
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 {
|
||||
name: "reset_states"
|
||||
argspec: "args=[\'self\', \'states\'], varargs=None, keywords=None, defaults=[\'None\'], "
|
||||
@ -193,8 +257,4 @@ tf_class {
|
||||
name: "set_weights"
|
||||
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"
|
||||
tf_class {
|
||||
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.layers.base.Layer\'>"
|
||||
is_instance: "<type \'object\'>"
|
||||
member {
|
||||
name: "activation"
|
||||
mtype: "<type \'property\'>"
|
||||
}
|
||||
member {
|
||||
name: "activity_regularizer"
|
||||
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 {
|
||||
name: "dtype"
|
||||
mtype: "<type \'property\'>"
|
||||
@ -33,6 +53,18 @@ tf_class {
|
||||
name: "input_shape"
|
||||
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 {
|
||||
name: "losses"
|
||||
mtype: "<type \'property\'>"
|
||||
@ -65,10 +97,30 @@ tf_class {
|
||||
name: "output_shape"
|
||||
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 {
|
||||
name: "scope_name"
|
||||
mtype: "<type \'property\'>"
|
||||
}
|
||||
member {
|
||||
name: "states"
|
||||
mtype: "<type \'property\'>"
|
||||
}
|
||||
member {
|
||||
name: "trainable_variables"
|
||||
mtype: "<type \'property\'>"
|
||||
@ -77,10 +129,18 @@ tf_class {
|
||||
name: "trainable_weights"
|
||||
mtype: "<type \'property\'>"
|
||||
}
|
||||
member {
|
||||
name: "units"
|
||||
mtype: "<type \'property\'>"
|
||||
}
|
||||
member {
|
||||
name: "updates"
|
||||
mtype: "<type \'property\'>"
|
||||
}
|
||||
member {
|
||||
name: "use_bias"
|
||||
mtype: "<type \'property\'>"
|
||||
}
|
||||
member {
|
||||
name: "variables"
|
||||
mtype: "<type \'property\'>"
|
||||
@ -91,7 +151,7 @@ tf_class {
|
||||
}
|
||||
member_method {
|
||||
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 {
|
||||
name: "add_loss"
|
||||
@ -137,10 +197,6 @@ tf_class {
|
||||
name: "get_config"
|
||||
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 {
|
||||
name: "get_initial_state"
|
||||
argspec: "args=[\'self\', \'inputs\'], varargs=None, keywords=None, defaults=None"
|
||||
@ -159,7 +215,7 @@ tf_class {
|
||||
}
|
||||
member_method {
|
||||
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 {
|
||||
name: "get_output_at"
|
||||
@ -181,10 +237,6 @@ tf_class {
|
||||
name: "get_weights"
|
||||
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 {
|
||||
name: "reset_states"
|
||||
argspec: "args=[\'self\', \'states\'], varargs=None, keywords=None, defaults=[\'None\'], "
|
||||
@ -193,8 +245,4 @@ tf_class {
|
||||
name: "set_weights"
|
||||
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"
|
||||
mtype: "<type \'type\'>"
|
||||
}
|
||||
member {
|
||||
name: "GRUCell"
|
||||
mtype: "<type \'type\'>"
|
||||
}
|
||||
member {
|
||||
name: "GaussianDropout"
|
||||
mtype: "<type \'type\'>"
|
||||
@ -208,6 +212,10 @@ tf_module {
|
||||
name: "LSTM"
|
||||
mtype: "<type \'type\'>"
|
||||
}
|
||||
member {
|
||||
name: "LSTMCell"
|
||||
mtype: "<type \'type\'>"
|
||||
}
|
||||
member {
|
||||
name: "Lambda"
|
||||
mtype: "<type \'type\'>"
|
||||
@ -272,6 +280,10 @@ tf_module {
|
||||
name: "Permute"
|
||||
mtype: "<type \'type\'>"
|
||||
}
|
||||
member {
|
||||
name: "RNN"
|
||||
mtype: "<type \'type\'>"
|
||||
}
|
||||
member {
|
||||
name: "RepeatVector"
|
||||
mtype: "<type \'type\'>"
|
||||
@ -292,6 +304,10 @@ tf_module {
|
||||
name: "SimpleRNN"
|
||||
mtype: "<type \'type\'>"
|
||||
}
|
||||
member {
|
||||
name: "SimpleRNNCell"
|
||||
mtype: "<type \'type\'>"
|
||||
}
|
||||
member {
|
||||
name: "SpatialDropout1D"
|
||||
mtype: "<type \'type\'>"
|
||||
@ -304,6 +320,10 @@ tf_module {
|
||||
name: "SpatialDropout3D"
|
||||
mtype: "<type \'type\'>"
|
||||
}
|
||||
member {
|
||||
name: "StackedRNNCells"
|
||||
mtype: "<type \'type\'>"
|
||||
}
|
||||
member {
|
||||
name: "ThresholdedReLU"
|
||||
mtype: "<type \'type\'>"
|
||||
|
@ -98,7 +98,8 @@ do_pylint() {
|
||||
"^tensorflow/contrib/eager/python/evaluator\.py.*\[E0202.*method-hidden "\
|
||||
"^tensorflow/contrib/eager/python/metrics_impl\.py.*\[E0202.*method-hidden "\
|
||||
"^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}\""
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user