From 9fb4589acd0d126e38de1c9066946c6d3075af36 Mon Sep 17 00:00:00 2001 From: mdymczyk Date: Thu, 15 Jun 2017 14:48:34 +0900 Subject: [PATCH 001/124] Fixes len() of unsized object error in DataFeeder due to incorrect object type --- tensorflow/contrib/learn/python/learn/learn_io/data_feeder.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tensorflow/contrib/learn/python/learn/learn_io/data_feeder.py b/tensorflow/contrib/learn/python/learn/learn_io/data_feeder.py index 48d79ecbbf..5e95046db3 100644 --- a/tensorflow/contrib/learn/python/learn/learn_io/data_feeder.py +++ b/tensorflow/contrib/learn/python/learn/learn_io/data_feeder.py @@ -364,7 +364,7 @@ class DataFeeder(object): num_samples = list(self._x.values())[0].shape[ 0] if x_is_dict else self._x.shape[0] if self._shuffle: - self.indices = self.random_state.permutation(num_samples) + self.indices = self.random_state.permutation(num_samples.value) else: self.indices = np.array(range(num_samples)) self.offset = 0 -- GitLab From e7af3c5b4f3e641a4337cfa7a869c7ab63f941fe Mon Sep 17 00:00:00 2001 From: mdymczyk Date: Thu, 22 Jun 2017 03:22:18 +0900 Subject: [PATCH 002/124] Data feeder should handle int and Dimension shape --- .../contrib/learn/python/learn/learn_io/data_feeder.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/tensorflow/contrib/learn/python/learn/learn_io/data_feeder.py b/tensorflow/contrib/learn/python/learn/learn_io/data_feeder.py index 5e95046db3..7430a094f5 100644 --- a/tensorflow/contrib/learn/python/learn/learn_io/data_feeder.py +++ b/tensorflow/contrib/learn/python/learn/learn_io/data_feeder.py @@ -363,8 +363,13 @@ class DataFeeder(object): num_samples = list(self._x.values())[0].shape[ 0] if x_is_dict else self._x.shape[0] + + # In case a Tensor is passed num_samples will be a Dimension + if hasattr(num_samples, 'value'): + num_samples = num_samples.value + if self._shuffle: - self.indices = self.random_state.permutation(num_samples.value) + self.indices = self.random_state.permutation(num_samples) else: self.indices = np.array(range(num_samples)) self.offset = 0 -- GitLab From f24053a058c265661bb9087f6728014af5f5583f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yan=20Facai=20=28=E9=A2=9C=E5=8F=91=E6=89=8D=29?= Date: Mon, 28 Aug 2017 13:48:52 +0800 Subject: [PATCH 003/124] TST: add unit test --- .../python/estimator/inputs/numpy_io_test.py | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/tensorflow/python/estimator/inputs/numpy_io_test.py b/tensorflow/python/estimator/inputs/numpy_io_test.py index 02df22b632..479b6a9a50 100644 --- a/tensorflow/python/estimator/inputs/numpy_io_test.py +++ b/tensorflow/python/estimator/inputs/numpy_io_test.py @@ -285,6 +285,33 @@ class NumpyIoTest(test.TestCase): num_epochs=1) failing_input_fn() + def testNumpyInputFnWhenLabelIsDictionary(self): + a = np.arange(4) * 1.0 + b = np.arange(32, 36) + x = {'a': a, 'b': b} + y = {'y1': np.arange(-32, -28), 'y2': np.arange(32, 28, -1)} + + with self.test_session() as session: + input_fn = numpy_io.numpy_input_fn( + x, y, batch_size=2, shuffle=False, num_epochs=1) + features, target = input_fn() + + coord = coordinator.Coordinator() + threads = queue_runner_impl.start_queue_runners(session, coord=coord) + + res = session.run([features, target]) + self.assertAllEqual(res[0]['a'], [0, 1]) + self.assertAllEqual(res[0]['b'], [32, 33]) + self.assertAllEqual(res[1]['y1'], [-32, -31]) + self.assertAllEqual(res[1]['y2'], [32, 31]) + + session.run([features, target]) + with self.assertRaises(errors.OutOfRangeError): + session.run([features, target]) + + coord.request_stop() + coord.join(threads) + if __name__ == '__main__': test.main() -- GitLab From c45540390b452aace2909ad9f891f581cf5d1e9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yan=20Facai=20=28=E9=A2=9C=E5=8F=91=E6=89=8D=29?= Date: Mon, 28 Aug 2017 15:09:15 +0800 Subject: [PATCH 004/124] ENH: y accept dict --- .../python/estimator/inputs/numpy_io.py | 49 +++++++++++++------ 1 file changed, 35 insertions(+), 14 deletions(-) diff --git a/tensorflow/python/estimator/inputs/numpy_io.py b/tensorflow/python/estimator/inputs/numpy_io.py index c9f37f06e8..17d853c4aa 100644 --- a/tensorflow/python/estimator/inputs/numpy_io.py +++ b/tensorflow/python/estimator/inputs/numpy_io.py @@ -19,6 +19,7 @@ from __future__ import division from __future__ import print_function import collections +from six import string_types from tensorflow.python.estimator.inputs.queues import feeding_functions # Key name to pack the target into dict of `features`. See @@ -101,15 +102,31 @@ def numpy_input_fn(x, # Make a shadow copy and also ensure the order of iteration is consistent. ordered_dict_x = collections.OrderedDict( sorted(x.items(), key=lambda t: t[0])) - - unique_target_key = _get_unique_target_key(ordered_dict_x) - if y is not None: - ordered_dict_x[unique_target_key] = y + feature_keys = ordered_dict_x.keys() + + if y is None: + target_keys = None + elif isinstance(y, dict): + ordered_dict_y = collections.OrderedDict( + sorted(y.items(), key=lambda t: t[0])) + target_keys = ordered_dict_y.keys() + ordered_dict_x.update(ordered_dict_y) + else: + target_keys = _get_unique_target_key(ordered_dict_x) + ordered_dict_x[target_keys] = y if len(set(v.shape[0] for v in ordered_dict_x.values())) != 1: shape_dict_of_x = {k: ordered_dict_x[k].shape - for k in ordered_dict_x.keys()} - shape_of_y = None if y is None else y.shape + for k in feature_keys} + + if target_keys is None: + shape_of_y = None + elif isinstance(target_keys, string_types): + shape_of_y = y.shape + else: + shape_of_y = {k: ordered_dict_x[k].shape + for k in target_keys} + raise ValueError('Length of tensors in x and y is mismatched. All ' 'elements in x and y must have the same length.\n' 'Shapes in x: {}\n' @@ -123,17 +140,21 @@ def numpy_input_fn(x, enqueue_size=batch_size, num_epochs=num_epochs) - features = (queue.dequeue_many(batch_size) if num_epochs is None + batch = (queue.dequeue_many(batch_size) if num_epochs is None else queue.dequeue_up_to(batch_size)) - # Remove the first `Tensor` in `features`, which is the row number. - if len(features) > 0: - features.pop(0) + # Remove the first `Tensor` in `batch`, which is the row number. + if len(batch) > 0: + batch.pop(0) - features = dict(zip(ordered_dict_x.keys(), features)) - if y is not None: - target = features.pop(unique_target_key) + features = dict(zip(feature_keys, batch[:len(feature_keys)])) + if target_keys is None: + return features + elif isinstance(target_keys, string_types): + target = batch[-1] + return features, target + else: + target = dict(zip(target_keys, batch[-len(target_keys):])) return features, target - return features return input_fn -- GitLab From 5d5975bab087894e78bf2be1e9195a29e6fe7fe7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yan=20Facai=20=28=E9=A2=9C=E5=8F=91=E6=89=8D=29?= Date: Mon, 28 Aug 2017 15:09:55 +0800 Subject: [PATCH 005/124] CLN: rename ordered_dict_x => ordered_dict_data --- tensorflow/python/estimator/inputs/numpy_io.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/tensorflow/python/estimator/inputs/numpy_io.py b/tensorflow/python/estimator/inputs/numpy_io.py index 17d853c4aa..1d5cc24fc0 100644 --- a/tensorflow/python/estimator/inputs/numpy_io.py +++ b/tensorflow/python/estimator/inputs/numpy_io.py @@ -100,9 +100,9 @@ def numpy_input_fn(x, raise TypeError('x must be dict; got {}'.format(type(x).__name__)) # Make a shadow copy and also ensure the order of iteration is consistent. - ordered_dict_x = collections.OrderedDict( + ordered_dict_data = collections.OrderedDict( sorted(x.items(), key=lambda t: t[0])) - feature_keys = ordered_dict_x.keys() + feature_keys = ordered_dict_data.keys() if y is None: target_keys = None @@ -110,13 +110,13 @@ def numpy_input_fn(x, ordered_dict_y = collections.OrderedDict( sorted(y.items(), key=lambda t: t[0])) target_keys = ordered_dict_y.keys() - ordered_dict_x.update(ordered_dict_y) + ordered_dict_data.update(ordered_dict_y) else: - target_keys = _get_unique_target_key(ordered_dict_x) - ordered_dict_x[target_keys] = y + target_keys = _get_unique_target_key(ordered_dict_data) + ordered_dict_data[target_keys] = y - if len(set(v.shape[0] for v in ordered_dict_x.values())) != 1: - shape_dict_of_x = {k: ordered_dict_x[k].shape + if len(set(v.shape[0] for v in ordered_dict_data.values())) != 1: + shape_dict_of_x = {k: ordered_dict_data[k].shape for k in feature_keys} if target_keys is None: @@ -124,7 +124,7 @@ def numpy_input_fn(x, elif isinstance(target_keys, string_types): shape_of_y = y.shape else: - shape_of_y = {k: ordered_dict_x[k].shape + shape_of_y = {k: ordered_dict_data[k].shape for k in target_keys} raise ValueError('Length of tensors in x and y is mismatched. All ' @@ -133,7 +133,7 @@ def numpy_input_fn(x, 'Shape for y: {}\n'.format(shape_dict_of_x, shape_of_y)) queue = feeding_functions._enqueue_data( # pylint: disable=protected-access - ordered_dict_x, + ordered_dict_data, queue_capacity, shuffle=shuffle, num_threads=num_threads, -- GitLab From 1af1918088388560362a09e79ca184cdfba05276 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yan=20Facai=20=28=E9=A2=9C=E5=8F=91=E6=89=8D=29?= Date: Mon, 28 Aug 2017 15:26:57 +0800 Subject: [PATCH 006/124] DOC: y could be a dict --- tensorflow/python/estimator/inputs/numpy_io.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/tensorflow/python/estimator/inputs/numpy_io.py b/tensorflow/python/estimator/inputs/numpy_io.py index 1d5cc24fc0..7482a645de 100644 --- a/tensorflow/python/estimator/inputs/numpy_io.py +++ b/tensorflow/python/estimator/inputs/numpy_io.py @@ -52,8 +52,9 @@ def numpy_input_fn(x, num_threads=1): """Returns input function that would feed dict of numpy arrays into the model. - This returns a function outputting `features` and `target` based on the dict - of numpy arrays. The dict `features` has the same keys as the `x`. + This returns a function outputting `features` and `targets` based on the dict + of numpy arrays. The dict `features` has the same keys as the `x`. The dict + `targets` has the same keys as the `y` if `y` is a dict. Example: @@ -70,7 +71,7 @@ def numpy_input_fn(x, Args: x: dict of numpy array object. - y: numpy array object. `None` if absent. + y: numpy array object or dict of numpy array object. `None` if absent. batch_size: Integer, size of batches to return. num_epochs: Integer, number of epochs to iterate over data. If `None` will run forever. @@ -82,7 +83,7 @@ def numpy_input_fn(x, such as in prediction and evaluation mode, `num_threads` should be 1. Returns: - Function, that has signature of ()->(dict of `features`, `target`) + Function, that has signature of ()->(dict of `features`, `targets`) Raises: ValueError: if the shape of `y` mismatches the shape of values in `x` (i.e., @@ -130,7 +131,7 @@ def numpy_input_fn(x, raise ValueError('Length of tensors in x and y is mismatched. All ' 'elements in x and y must have the same length.\n' 'Shapes in x: {}\n' - 'Shape for y: {}\n'.format(shape_dict_of_x, shape_of_y)) + 'Shape in y: {}\n'.format(shape_dict_of_x, shape_of_y)) queue = feeding_functions._enqueue_data( # pylint: disable=protected-access ordered_dict_data, -- GitLab From 46632ccee8e89957126e0d2e8ba2659401c4a3fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yan=20Facai=20=28=E9=A2=9C=E5=8F=91=E6=89=8D=29?= Date: Mon, 28 Aug 2017 15:45:10 +0800 Subject: [PATCH 007/124] TST: duplicate test case --- .../python/estimator/inputs/numpy_io_test.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/tensorflow/python/estimator/inputs/numpy_io_test.py b/tensorflow/python/estimator/inputs/numpy_io_test.py index 479b6a9a50..a1c5c15964 100644 --- a/tensorflow/python/estimator/inputs/numpy_io_test.py +++ b/tensorflow/python/estimator/inputs/numpy_io_test.py @@ -312,6 +312,22 @@ class NumpyIoTest(test.TestCase): coord.request_stop() coord.join(threads) + def testNumpyInputFnDuplicateKeysInXandY(self): + a = np.arange(4) * 1.0 + b = np.arange(32, 36) + x = {'a': a, 'b': b} + y = {'y1': np.arange(-32, -28), + 'a': a, + 'y2': np.arange(32, 28, -1), + 'b': b} + + with self.test_session(): + with self.assertRaisesRegexp( + ValueError, '2 duplicate keys are found in both x and y'): + failing_input_fn = numpy_io.numpy_input_fn( + x, y, batch_size=2, shuffle=False, num_epochs=1) + failing_input_fn() + if __name__ == '__main__': test.main() -- GitLab From 9d87cd6493a9c4a9de39c18ee65708267beb91a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yan=20Facai=20=28=E9=A2=9C=E5=8F=91=E6=89=8D=29?= Date: Mon, 28 Aug 2017 15:45:59 +0800 Subject: [PATCH 008/124] ENH: check duplicate keys --- tensorflow/python/estimator/inputs/numpy_io.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/tensorflow/python/estimator/inputs/numpy_io.py b/tensorflow/python/estimator/inputs/numpy_io.py index 7482a645de..7358659ff4 100644 --- a/tensorflow/python/estimator/inputs/numpy_io.py +++ b/tensorflow/python/estimator/inputs/numpy_io.py @@ -88,6 +88,7 @@ def numpy_input_fn(x, Raises: ValueError: if the shape of `y` mismatches the shape of values in `x` (i.e., values in `x` have same shape). + ValueError: if duplicate keys are in both `x` and `y` when `y` is a dict. TypeError: `x` is not a dict or `shuffle` is not bool. """ @@ -111,6 +112,12 @@ def numpy_input_fn(x, ordered_dict_y = collections.OrderedDict( sorted(y.items(), key=lambda t: t[0])) target_keys = ordered_dict_y.keys() + + duplicate_keys = set(feature_keys).intersection(set(target_keys)) + if len(duplicate_keys): + raise ValueError('{} duplicate keys are found in both x and y: ' + '{}'.format(len(duplicate_keys), duplicate_keys)) + ordered_dict_data.update(ordered_dict_y) else: target_keys = _get_unique_target_key(ordered_dict_data) -- GitLab From 6e39440e5908a2149512916ff6bc707c290de547 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yan=20Facai=20=28=E9=A2=9C=E5=8F=91=E6=89=8D=29?= Date: Mon, 28 Aug 2017 15:49:53 +0800 Subject: [PATCH 009/124] TST: rename test function --- tensorflow/python/estimator/inputs/numpy_io_test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tensorflow/python/estimator/inputs/numpy_io_test.py b/tensorflow/python/estimator/inputs/numpy_io_test.py index a1c5c15964..1e640cb845 100644 --- a/tensorflow/python/estimator/inputs/numpy_io_test.py +++ b/tensorflow/python/estimator/inputs/numpy_io_test.py @@ -312,7 +312,7 @@ class NumpyIoTest(test.TestCase): coord.request_stop() coord.join(threads) - def testNumpyInputFnDuplicateKeysInXandY(self): + def testNumpyInputFnWithDuplicateKeysInXandY(self): a = np.arange(4) * 1.0 b = np.arange(32, 36) x = {'a': a, 'b': b} -- GitLab From afa9d984ca56b3d8d3b7cea6720f3c24ba1083e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yan=20Facai=20=28=E9=A2=9C=E5=8F=91=E6=89=8D=29?= Date: Mon, 28 Aug 2017 16:00:50 +0800 Subject: [PATCH 010/124] CLN: Shapes in y --- tensorflow/python/estimator/inputs/numpy_io.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tensorflow/python/estimator/inputs/numpy_io.py b/tensorflow/python/estimator/inputs/numpy_io.py index 7358659ff4..6518fe6d05 100644 --- a/tensorflow/python/estimator/inputs/numpy_io.py +++ b/tensorflow/python/estimator/inputs/numpy_io.py @@ -138,7 +138,7 @@ def numpy_input_fn(x, raise ValueError('Length of tensors in x and y is mismatched. All ' 'elements in x and y must have the same length.\n' 'Shapes in x: {}\n' - 'Shape in y: {}\n'.format(shape_dict_of_x, shape_of_y)) + 'Shapes in y: {}\n'.format(shape_dict_of_x, shape_of_y)) queue = feeding_functions._enqueue_data( # pylint: disable=protected-access ordered_dict_data, -- GitLab From e25c7a82285f22e9a99153f094222ea41fae8fe6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yan=20Facai=20=28=E9=A2=9C=E5=8F=91=E6=89=8D=29?= Date: Mon, 28 Aug 2017 16:26:54 +0800 Subject: [PATCH 011/124] TST: check num of fearues and targets --- .../python/estimator/inputs/numpy_io_test.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/tensorflow/python/estimator/inputs/numpy_io_test.py b/tensorflow/python/estimator/inputs/numpy_io_test.py index 1e640cb845..61b2f76587 100644 --- a/tensorflow/python/estimator/inputs/numpy_io_test.py +++ b/tensorflow/python/estimator/inputs/numpy_io_test.py @@ -294,20 +294,22 @@ class NumpyIoTest(test.TestCase): with self.test_session() as session: input_fn = numpy_io.numpy_input_fn( x, y, batch_size=2, shuffle=False, num_epochs=1) - features, target = input_fn() + features_tensor, targets_tensor = input_fn() coord = coordinator.Coordinator() threads = queue_runner_impl.start_queue_runners(session, coord=coord) - res = session.run([features, target]) - self.assertAllEqual(res[0]['a'], [0, 1]) - self.assertAllEqual(res[0]['b'], [32, 33]) - self.assertAllEqual(res[1]['y1'], [-32, -31]) - self.assertAllEqual(res[1]['y2'], [32, 31]) + features, targets = session.run([features_tensor, targets_tensor]) + self.assertEqual(len(features), 2) + self.assertAllEqual(features['a'], [0, 1]) + self.assertAllEqual(features['b'], [32, 33]) + self.assertEqual(len(targets), 2) + self.assertAllEqual(targets['y1'], [-32, -31]) + self.assertAllEqual(targets['y2'], [32, 31]) - session.run([features, target]) + session.run([features_tensor, targets_tensor]) with self.assertRaises(errors.OutOfRangeError): - session.run([features, target]) + session.run([features_tensor, targets_tensor]) coord.request_stop() coord.join(threads) -- GitLab From 127dd2b9c8f2fa5cf47b19f246b79b20441d7aa0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yan=20Facai=20=28=E9=A2=9C=E5=8F=91=E6=89=8D=29?= Date: Mon, 28 Aug 2017 16:36:29 +0800 Subject: [PATCH 012/124] BUG: dict.keys is a view in python3 --- tensorflow/python/estimator/inputs/numpy_io.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tensorflow/python/estimator/inputs/numpy_io.py b/tensorflow/python/estimator/inputs/numpy_io.py index 6518fe6d05..dbc3dcf393 100644 --- a/tensorflow/python/estimator/inputs/numpy_io.py +++ b/tensorflow/python/estimator/inputs/numpy_io.py @@ -104,14 +104,15 @@ def numpy_input_fn(x, # Make a shadow copy and also ensure the order of iteration is consistent. ordered_dict_data = collections.OrderedDict( sorted(x.items(), key=lambda t: t[0])) - feature_keys = ordered_dict_data.keys() + # Deep copy keys which is a view in python 3 + feature_keys = list(ordered_dict_data.keys()) if y is None: target_keys = None elif isinstance(y, dict): ordered_dict_y = collections.OrderedDict( sorted(y.items(), key=lambda t: t[0])) - target_keys = ordered_dict_y.keys() + target_keys = list(ordered_dict_y.keys()) duplicate_keys = set(feature_keys).intersection(set(target_keys)) if len(duplicate_keys): -- GitLab From edc5a498f7e3f388c675cd8da3f7aab9d7ee4c91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yan=20Facai=20=28=E9=A2=9C=E5=8F=91=E6=89=8D=29?= Date: Tue, 19 Sep 2017 13:11:01 +0800 Subject: [PATCH 013/124] TST: add empty dict --- .../python/estimator/inputs/numpy_io_test.py | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/tensorflow/python/estimator/inputs/numpy_io_test.py b/tensorflow/python/estimator/inputs/numpy_io_test.py index 61b2f76587..5f0716ef55 100644 --- a/tensorflow/python/estimator/inputs/numpy_io_test.py +++ b/tensorflow/python/estimator/inputs/numpy_io_test.py @@ -314,6 +314,32 @@ class NumpyIoTest(test.TestCase): coord.request_stop() coord.join(threads) + def testNumpyInputFnWhenLabelIsEmptyDictionary(self): + a = np.arange(4) * 1.0 + b = np.arange(32, 36) + x = {'a': a, 'b': b} + y = {} + + with self.test_session() as session: + input_fn = numpy_io.numpy_input_fn( + x, y, batch_size=2, shuffle=False, num_epochs=1) + features_tensor = input_fn() + + coord = coordinator.Coordinator() + threads = queue_runner_impl.start_queue_runners(session, coord=coord) + + features = session.run([features_tensor]) + self.assertEqual(len(features), 2) + self.assertAllEqual(features['a'], [0, 1]) + self.assertAllEqual(features['b'], [32, 33]) + + session.run([features_tensor]) + with self.assertRaises(errors.OutOfRangeError): + session.run([features_tensor]) + + coord.request_stop() + coord.join(threads) + def testNumpyInputFnWithDuplicateKeysInXandY(self): a = np.arange(4) * 1.0 b = np.arange(32, 36) -- GitLab From dcce6044dc05ed2e6cda601df5b300333859be4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yan=20Facai=20=28=E9=A2=9C=E5=8F=91=E6=89=8D=29?= Date: Tue, 19 Sep 2017 13:15:43 +0800 Subject: [PATCH 014/124] CLN: not check None --- tensorflow/python/estimator/inputs/numpy_io.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tensorflow/python/estimator/inputs/numpy_io.py b/tensorflow/python/estimator/inputs/numpy_io.py index dbc3dcf393..ed58c55e6e 100644 --- a/tensorflow/python/estimator/inputs/numpy_io.py +++ b/tensorflow/python/estimator/inputs/numpy_io.py @@ -107,7 +107,7 @@ def numpy_input_fn(x, # Deep copy keys which is a view in python 3 feature_keys = list(ordered_dict_data.keys()) - if y is None: + if y: target_keys = None elif isinstance(y, dict): ordered_dict_y = collections.OrderedDict( @@ -128,7 +128,7 @@ def numpy_input_fn(x, shape_dict_of_x = {k: ordered_dict_data[k].shape for k in feature_keys} - if target_keys is None: + if target_keys: shape_of_y = None elif isinstance(target_keys, string_types): shape_of_y = y.shape @@ -157,7 +157,7 @@ def numpy_input_fn(x, batch.pop(0) features = dict(zip(feature_keys, batch[:len(feature_keys)])) - if target_keys is None: + if target_keys: return features elif isinstance(target_keys, string_types): target = batch[-1] -- GitLab From 7db8e4fbc0be952daea74a2c3f501183d6006e61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yan=20Facai=20=28=E9=A2=9C=E5=8F=91=E6=89=8D=29?= Date: Sat, 23 Sep 2017 14:51:33 +0800 Subject: [PATCH 015/124] ENH: check x and y is empty dict --- tensorflow/python/estimator/inputs/numpy_io.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/tensorflow/python/estimator/inputs/numpy_io.py b/tensorflow/python/estimator/inputs/numpy_io.py index ed58c55e6e..4b13d4c2fa 100644 --- a/tensorflow/python/estimator/inputs/numpy_io.py +++ b/tensorflow/python/estimator/inputs/numpy_io.py @@ -89,6 +89,7 @@ def numpy_input_fn(x, ValueError: if the shape of `y` mismatches the shape of values in `x` (i.e., values in `x` have same shape). ValueError: if duplicate keys are in both `x` and `y` when `y` is a dict. + ValueError: if x or y is a empty dict. TypeError: `x` is not a dict or `shuffle` is not bool. """ @@ -100,6 +101,8 @@ def numpy_input_fn(x, """Numpy input function.""" if not isinstance(x, dict): raise TypeError('x must be dict; got {}'.format(type(x).__name__)) + if not x: + raise ValueError('x cannot be empty') # Make a shadow copy and also ensure the order of iteration is consistent. ordered_dict_data = collections.OrderedDict( @@ -107,9 +110,12 @@ def numpy_input_fn(x, # Deep copy keys which is a view in python 3 feature_keys = list(ordered_dict_data.keys()) - if y: + if y is None: target_keys = None elif isinstance(y, dict): + if not y: + raise ValueError('y cannot be empty dict, use None instead.') + ordered_dict_y = collections.OrderedDict( sorted(y.items(), key=lambda t: t[0])) target_keys = list(ordered_dict_y.keys()) @@ -128,7 +134,7 @@ def numpy_input_fn(x, shape_dict_of_x = {k: ordered_dict_data[k].shape for k in feature_keys} - if target_keys: + if target_keys is None: shape_of_y = None elif isinstance(target_keys, string_types): shape_of_y = y.shape @@ -157,7 +163,7 @@ def numpy_input_fn(x, batch.pop(0) features = dict(zip(feature_keys, batch[:len(feature_keys)])) - if target_keys: + if target_keys is None: return features elif isinstance(target_keys, string_types): target = batch[-1] -- GitLab From d2291ec2d4983e0aea65b70ed3f191961d88c34d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yan=20Facai=20=28=E9=A2=9C=E5=8F=91=E6=89=8D=29?= Date: Sat, 23 Sep 2017 14:52:13 +0800 Subject: [PATCH 016/124] TST: add more test cases --- .../python/estimator/inputs/numpy_io_test.py | 68 ++++++++++++------- 1 file changed, 42 insertions(+), 26 deletions(-) diff --git a/tensorflow/python/estimator/inputs/numpy_io_test.py b/tensorflow/python/estimator/inputs/numpy_io_test.py index 5f0716ef55..38c6b36a9a 100644 --- a/tensorflow/python/estimator/inputs/numpy_io_test.py +++ b/tensorflow/python/estimator/inputs/numpy_io_test.py @@ -239,6 +239,40 @@ class NumpyIoTest(test.TestCase): x, y, batch_size=2, shuffle=False, num_epochs=1) failing_input_fn() + def testNumpyInputFnWithXIsEmptyDict(self): + x = {} + y = np.arange(4) + with self.test_session(): + with self.assertRaisesRegexp(ValueError, 'x cannot be empty'): + failing_input_fn = numpy_io.numpy_input_fn(x, y, shuffle=False) + failing_input_fn() + + def testNumpyInputFnWithYIsNone(self): + a = np.arange(4) * 1.0 + b = np.arange(32, 36) + x = {'a': a, 'b': b} + y = None + + with self.test_session() as session: + input_fn = numpy_io.numpy_input_fn( + x, y, batch_size=2, shuffle=False, num_epochs=1) + features = input_fn() + + coord = coordinator.Coordinator() + threads = queue_runner_impl.start_queue_runners(session, coord=coord) + + res = session.run(features) + self.assertEqual(len(res), 2) + self.assertAllEqual(res['a'], [0, 1]) + self.assertAllEqual(res['b'], [32, 33]) + + session.run([features]) + with self.assertRaises(errors.OutOfRangeError): + session.run([features]) + + coord.request_stop() + coord.join(threads) + def testNumpyInputFnWithNonBoolShuffle(self): x = np.arange(32, 36) y = np.arange(4) @@ -285,7 +319,7 @@ class NumpyIoTest(test.TestCase): num_epochs=1) failing_input_fn() - def testNumpyInputFnWhenLabelIsDictionary(self): + def testNumpyInputFnWithYAsDict(self): a = np.arange(4) * 1.0 b = np.arange(32, 36) x = {'a': a, 'b': b} @@ -314,33 +348,17 @@ class NumpyIoTest(test.TestCase): coord.request_stop() coord.join(threads) - def testNumpyInputFnWhenLabelIsEmptyDictionary(self): + def testNumpyInputFnWithYIsEmptyDict(self): a = np.arange(4) * 1.0 b = np.arange(32, 36) x = {'a': a, 'b': b} y = {} + with self.test_session(): + with self.assertRaisesRegexp(ValueError, 'y cannot be empty'): + failing_input_fn = numpy_io.numpy_input_fn(x, y, shuffle=False) + failing_input_fn() - with self.test_session() as session: - input_fn = numpy_io.numpy_input_fn( - x, y, batch_size=2, shuffle=False, num_epochs=1) - features_tensor = input_fn() - - coord = coordinator.Coordinator() - threads = queue_runner_impl.start_queue_runners(session, coord=coord) - - features = session.run([features_tensor]) - self.assertEqual(len(features), 2) - self.assertAllEqual(features['a'], [0, 1]) - self.assertAllEqual(features['b'], [32, 33]) - - session.run([features_tensor]) - with self.assertRaises(errors.OutOfRangeError): - session.run([features_tensor]) - - coord.request_stop() - coord.join(threads) - - def testNumpyInputFnWithDuplicateKeysInXandY(self): + def testNumpyInputFnWithDuplicateKeysInXAndY(self): a = np.arange(4) * 1.0 b = np.arange(32, 36) x = {'a': a, 'b': b} @@ -348,12 +366,10 @@ class NumpyIoTest(test.TestCase): 'a': a, 'y2': np.arange(32, 28, -1), 'b': b} - with self.test_session(): with self.assertRaisesRegexp( ValueError, '2 duplicate keys are found in both x and y'): - failing_input_fn = numpy_io.numpy_input_fn( - x, y, batch_size=2, shuffle=False, num_epochs=1) + failing_input_fn = numpy_io.numpy_input_fn(x, y, shuffle=False) failing_input_fn() -- GitLab From 5fc6cbdf6fa1549eb76964170fadac147a76ef27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yan=20Facai=20=28=E9=A2=9C=E5=8F=91=E6=89=8D=29?= Date: Sat, 23 Sep 2017 15:36:14 +0800 Subject: [PATCH 017/124] TST: revise test --- tensorflow/python/estimator/inputs/numpy_io.py | 1 + .../python/estimator/inputs/numpy_io_test.py | 14 +++++++------- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/tensorflow/python/estimator/inputs/numpy_io.py b/tensorflow/python/estimator/inputs/numpy_io.py index 4b13d4c2fa..daee46782f 100644 --- a/tensorflow/python/estimator/inputs/numpy_io.py +++ b/tensorflow/python/estimator/inputs/numpy_io.py @@ -164,6 +164,7 @@ def numpy_input_fn(x, features = dict(zip(feature_keys, batch[:len(feature_keys)])) if target_keys is None: + # TODO(martinwicke), return consistent result return features elif isinstance(target_keys, string_types): target = batch[-1] diff --git a/tensorflow/python/estimator/inputs/numpy_io_test.py b/tensorflow/python/estimator/inputs/numpy_io_test.py index 38c6b36a9a..65eae7a7dc 100644 --- a/tensorflow/python/estimator/inputs/numpy_io_test.py +++ b/tensorflow/python/estimator/inputs/numpy_io_test.py @@ -256,19 +256,19 @@ class NumpyIoTest(test.TestCase): with self.test_session() as session: input_fn = numpy_io.numpy_input_fn( x, y, batch_size=2, shuffle=False, num_epochs=1) - features = input_fn() + features_tensor = input_fn() coord = coordinator.Coordinator() threads = queue_runner_impl.start_queue_runners(session, coord=coord) - res = session.run(features) - self.assertEqual(len(res), 2) - self.assertAllEqual(res['a'], [0, 1]) - self.assertAllEqual(res['b'], [32, 33]) + feature = session.run(features_tensor) + self.assertEqual(len(feature), 2) + self.assertAllEqual(feature['a'], [0, 1]) + self.assertAllEqual(feature['b'], [32, 33]) - session.run([features]) + session.run([features_tensor]) with self.assertRaises(errors.OutOfRangeError): - session.run([features]) + session.run([features_tensor]) coord.request_stop() coord.join(threads) -- GitLab From 6aa603ded604de4fa301ee7bebf69f06c4590e80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yan=20Facai=20=28=E9=A2=9C=E5=8F=91=E6=89=8D=29?= Date: Fri, 6 Oct 2017 19:43:03 +0800 Subject: [PATCH 018/124] CLN: typo --- tensorflow/python/estimator/inputs/numpy_io.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tensorflow/python/estimator/inputs/numpy_io.py b/tensorflow/python/estimator/inputs/numpy_io.py index daee46782f..3512f66284 100644 --- a/tensorflow/python/estimator/inputs/numpy_io.py +++ b/tensorflow/python/estimator/inputs/numpy_io.py @@ -89,7 +89,7 @@ def numpy_input_fn(x, ValueError: if the shape of `y` mismatches the shape of values in `x` (i.e., values in `x` have same shape). ValueError: if duplicate keys are in both `x` and `y` when `y` is a dict. - ValueError: if x or y is a empty dict. + ValueError: if x or y is an empty dict. TypeError: `x` is not a dict or `shuffle` is not bool. """ -- GitLab From 6bc5fa83bffad8b078ae50970df5459b2d57f74a Mon Sep 17 00:00:00 2001 From: Skye Wanderman-Milne Date: Fri, 3 Nov 2017 17:20:37 -0700 Subject: [PATCH 019/124] Add ImportGraphDefTest.testMultipleImport to importer_test.py This tests the name deduping behavior of import_graph_def. This behavior is actually defined by the op creation logic, not import_graph_def, but I added a test here since the C++ ImportGraphDef function must emulate it (and presumably we'd like to maintain the import_graph_def behavior moving forward). PiperOrigin-RevId: 174536014 --- tensorflow/python/framework/importer_test.py | 88 ++++++++++++++++++++ 1 file changed, 88 insertions(+) diff --git a/tensorflow/python/framework/importer_test.py b/tensorflow/python/framework/importer_test.py index e447f9a3e8..24934f264d 100644 --- a/tensorflow/python/framework/importer_test.py +++ b/tensorflow/python/framework/importer_test.py @@ -108,6 +108,94 @@ class ImportGraphDefTest(test.TestCase): # Check that the op_def is still available. self.assertNotEqual(None, a.op_def) + def testMultipleImport(self): + graph_def = self._MakeGraphDef(""" + node { name: 'A' op: 'IntOutput' } + node { name: 'B' op: 'IntInput' input: 'A:0' } + """) + + with ops.Graph().as_default(): + # Initial import + a, b = importer.import_graph_def( + graph_def, + return_elements=["A", "B"], + name="") + self.assertEqual(a.name, "A") + self.assertEqual(b.name, "B") + self.assertEqual(list(b.inputs), [a.outputs[0]]) + + # Repeat the same import + a1, b1 = importer.import_graph_def( + graph_def, + return_elements=["A", "B"], + name="") + self.assertEqual(a1.name, "A_1") + self.assertEqual(b1.name, "B_1") + self.assertEqual(list(b1.inputs), [a1.outputs[0]]) + + # Repeat the same import again + a2, b2 = importer.import_graph_def( + graph_def, + return_elements=["A", "B"], + name="") + self.assertEqual(a2.name, "A_2") + self.assertEqual(b2.name, "B_2") + self.assertEqual(list(b2.inputs), [a2.outputs[0]]) + + # Import with an already-used name + a3, b3 = importer.import_graph_def( + graph_def, + return_elements=["A", "B"], + name="A") + self.assertEqual(a3.name, "A_3/A") + self.assertEqual(b3.name, "A_3/B") + self.assertEqual(list(b3.inputs), [a3.outputs[0]]) + + # Import with existing de-duped node names + a4, b4 = importer.import_graph_def( + self._MakeGraphDef(""" + node { name: 'A_1' op: 'IntOutput' } + node { name: 'B_1' op: 'IntInput' input: 'A_1:0' } + """), + return_elements=["A_1", "B_1"], + name="") + self.assertEqual(a4.name, "A_1_1") + self.assertEqual(b4.name, "B_1_1") + self.assertEqual(list(b4.inputs), [a4.outputs[0]]) + + # Create a name scope and then import node with same name + with ops.name_scope("foo"): + constant_op.constant(1) + foo, = importer.import_graph_def( + self._MakeGraphDef("node { name: 'foo' op: 'IntOutput' }"), + return_elements=["foo"], + name="") + self.assertEqual(foo.name, "foo_1") + + # Imported node name can't conflict with intermediate name scope (but can + # conflict with outer scope and full name scope) + with ops.name_scope("outer"): + with ops.name_scope("inner"): + c = constant_op.constant(1, name="c") + self.assertEqual(c.op.name, "outer/inner/c") + + outer, inner, new_c, outer_inner, outer_inner_c = ( + importer.import_graph_def( + self._MakeGraphDef( + "node { name: 'outer' op: 'IntOutput' }" + "node { name: 'inner' op: 'IntOutput' }" + "node { name: 'c' op: 'IntOutput' }" + "node { name: 'outer/inner' op: 'IntOutput' }" + "node { name: 'outer/inner/c' op: 'IntOutput' }"), + return_elements=["outer", "inner", "c", "outer/inner", + "outer/inner/c"], + name="")) + self.assertEqual(outer.name, "outer_1") + self.assertEqual(inner.name, "inner") + self.assertEqual(new_c.name, "c") + self.assertEqual(outer_inner.name, "outer/inner_1") + self.assertEqual(outer_inner_c.name, "outer/inner/c_1") + def testInputMap(self): with ops.Graph().as_default(): feed_a_0 = constant_op.constant(0, dtype=dtypes.int32) -- GitLab From 8fdcecc8018682eef1386beb3ae1bdcf137c5c1c Mon Sep 17 00:00:00 2001 From: Allen Lavoie Date: Fri, 3 Nov 2017 17:52:19 -0700 Subject: [PATCH 020/124] Apply lib_internal defines to both lib_internal and lib_internal_impl Should fix checkpoint reading with snappy compression. Will follow up with testing for this sort of checkpoint issue. PiperOrigin-RevId: 174538693 --- tensorflow/core/BUILD | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/tensorflow/core/BUILD b/tensorflow/core/BUILD index 99aa9bb9c0..18d69fceb3 100644 --- a/tensorflow/core/BUILD +++ b/tensorflow/core/BUILD @@ -1414,16 +1414,19 @@ LIB_INTERNAL_PUBLIC_HEADERS = tf_additional_lib_hdrs() + [ "platform/tracing.h", ] +# Replicated for lib_internal and lib_internal_impl. +LIB_INTERNAL_DEFINES = (tf_additional_lib_defines() + [ + "TF_USE_SNAPPY", + ] + tf_additional_verbs_lib_defines() + + tf_additional_mpi_lib_defines() + + tf_additional_gdr_lib_defines()) + cc_library( name = "lib_internal", srcs = LIB_INTERNAL_PRIVATE_HEADERS, hdrs = LIB_INTERNAL_PUBLIC_HEADERS, copts = tf_copts(), - defines = tf_additional_lib_defines() + [ - "TF_USE_SNAPPY", - ] + tf_additional_verbs_lib_defines() + - tf_additional_mpi_lib_defines() + - tf_additional_gdr_lib_defines(), + defines = LIB_INTERNAL_DEFINES, linkopts = select({ "//tensorflow:freebsd": [], "//tensorflow:windows": [], @@ -1477,6 +1480,7 @@ cc_library( ), hdrs = LIB_INTERNAL_PUBLIC_HEADERS, copts = tf_copts(), + defines = LIB_INTERNAL_DEFINES, deps = tf_additional_lib_deps() + [ ":lib_hash_crc32c_accelerate_internal", ":lib_proto_parsing", -- GitLab From c8b213f260828433ce4bfd7f8ba0a978a62f9775 Mon Sep 17 00:00:00 2001 From: "A. Unique TensorFlower" Date: Fri, 3 Nov 2017 18:03:26 -0700 Subject: [PATCH 021/124] n/a (internal change only) PiperOrigin-RevId: 174539513 --- tensorflow/tensorflow.bzl | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/tensorflow/tensorflow.bzl b/tensorflow/tensorflow.bzl index 9e6bb8d710..43ecb7f937 100644 --- a/tensorflow/tensorflow.bzl +++ b/tensorflow/tensorflow.bzl @@ -672,6 +672,11 @@ def tf_cuda_only_cc_test(name, }), tags=tags + tf_cuda_tests_tags()) +register_extension_info( + extension_name="tf_cuda_only_cc_test", + label_regex_for_dep="{extension_name}_gpu") + + # Create a cc_test for each of the tensorflow tests listed in "tests" def tf_cc_tests(srcs, deps, @@ -746,6 +751,11 @@ def tf_java_test(name, *args, **kwargs) +register_extension_info( + extension_name="tf_java_test", + label_regex_for_dep="{extension_name}") + + def _cuda_copts(): """Gets the appropriate set of copts for (maybe) CUDA compilation. @@ -790,6 +800,10 @@ def tf_gpu_kernel_library(srcs, alwayslink=1, **kwargs) +register_extension_info( + extension_name="tf_gpu_kernel_library", + label_regex_for_dep="{extension_name}") + def tf_cuda_library(deps=None, cuda_deps=None, copts=None, **kwargs): """Generate a cc_library with a conditional set of CUDA dependencies. @@ -937,6 +951,10 @@ def tf_mkl_kernel_library(name, nocopts=nocopts )) +register_extension_info( + extension_name="tf_mkl_kernel_library", + label_regex_for_dep="{extension_name}") + # Bazel rules for building swig files. def _py_wrap_cc_impl(ctx): @@ -1505,3 +1523,7 @@ def cc_library_with_android_deps(deps, **kwargs): deps = if_not_android(deps) + if_android(android_deps) + common_deps native.cc_library(deps=deps, **kwargs) + +register_extension_info( + extension_name="cc_library_with_android_deps", + label_regex_for_dep="{extension_name}") -- GitLab From 7b2b720704ee802fd468334f640304e9036cf76c Mon Sep 17 00:00:00 2001 From: Anna R Date: Fri, 3 Nov 2017 18:16:42 -0700 Subject: [PATCH 022/124] A few changes to ApiDef generation: - Create a separate api_def_*.pbtxt file for each op. - Add attribute and argument descriptions to ApiDef. - Apply overrides based on op_gen_overrides.pbtxt file. PiperOrigin-RevId: 174540421 --- tensorflow/core/api_def/api_test.cc | 288 +- .../core/api_def/base_api/api_def_A.pbtxt | 670 ----- .../core/api_def/base_api/api_def_Abort.pbtxt | 16 + .../core/api_def/base_api/api_def_Abs.pbtxt | 9 + .../base_api/api_def_AccumulateNV2.pbtxt | 26 + .../api_def_AccumulatorApplyGradient.pbtxt | 32 + .../api_def_AccumulatorNumAccumulated.pbtxt | 16 + .../api_def_AccumulatorSetGlobalStep.pbtxt | 20 + .../api_def_AccumulatorTakeGradient.pbtxt | 36 + .../core/api_def/base_api/api_def_Acos.pbtxt | 4 + .../core/api_def/base_api/api_def_Acosh.pbtxt | 4 + .../core/api_def/base_api/api_def_Add.pbtxt | 8 + .../api_def_AddManySparseToTensorsMap.pbtxt | 68 + .../core/api_def/base_api/api_def_AddN.pbtxt | 10 + .../api_def_AddSparseToTensorsMap.pbtxt | 58 + .../core/api_def/base_api/api_def_AddV2.pbtxt | 8 + .../base_api/api_def_AdjustContrast.pbtxt | 4 + .../base_api/api_def_AdjustContrastv2.pbtxt | 36 + .../api_def/base_api/api_def_AdjustHue.pbtxt | 30 + .../base_api/api_def_AdjustSaturation.pbtxt | 30 + .../core/api_def/base_api/api_def_All.pbtxt | 42 + .../api_def_AllCandidateSampler.pbtxt | 80 + .../core/api_def/base_api/api_def_Angle.pbtxt | 23 + .../core/api_def/base_api/api_def_Any.pbtxt | 42 + .../base_api/api_def_ApplyAdadelta.pbtxt | 65 + .../base_api/api_def_ApplyAdagrad.pbtxt | 46 + .../base_api/api_def_ApplyAdagradDA.pbtxt | 65 + .../api_def/base_api/api_def_ApplyAdam.pbtxt | 90 + .../api_def_ApplyCenteredRMSProp.pbtxt | 86 + .../api_def/base_api/api_def_ApplyFtrl.pbtxt | 73 + .../base_api/api_def_ApplyFtrlV2.pbtxt | 75 + .../api_def_ApplyGradientDescent.pbtxt | 35 + .../base_api/api_def_ApplyMomentum.pbtxt | 62 + .../api_def_ApplyProximalAdagrad.pbtxt | 58 + ...api_def_ApplyProximalGradientDescent.pbtxt | 51 + .../base_api/api_def_ApplyRMSProp.pbtxt | 72 + .../base_api/api_def_ApproximateEqual.pbtxt | 4 + .../api_def/base_api/api_def_ArgMax.pbtxt | 15 + .../api_def/base_api/api_def_ArgMin.pbtxt | 15 + .../api_def/base_api/api_def_AsString.pbtxt | 42 + .../core/api_def/base_api/api_def_Asin.pbtxt | 4 + .../core/api_def/base_api/api_def_Asinh.pbtxt | 4 + .../api_def/base_api/api_def_Assert.pbtxt | 26 + .../api_def/base_api/api_def_Assign.pbtxt | 42 + .../api_def/base_api/api_def_AssignAdd.pbtxt | 34 + .../api_def_AssignAddVariableOp.pbtxt | 29 + .../api_def/base_api/api_def_AssignSub.pbtxt | 34 + .../api_def_AssignSubVariableOp.pbtxt | 29 + .../base_api/api_def_AssignVariableOp.pbtxt | 26 + .../core/api_def/base_api/api_def_Atan.pbtxt | 4 + .../core/api_def/base_api/api_def_Atan2.pbtxt | 11 + .../core/api_def/base_api/api_def_Atanh.pbtxt | 4 + .../base_api/api_def_AudioSpectrogram.pbtxt | 63 + .../base_api/api_def_AudioSummary.pbtxt | 47 + .../base_api/api_def_AudioSummaryV2.pbtxt | 50 + .../api_def/base_api/api_def_AvgPool.pbtxt | 48 + .../api_def/base_api/api_def_AvgPool3D.pbtxt | 46 + .../base_api/api_def_AvgPool3DGrad.pbtxt | 52 + .../base_api/api_def_AvgPoolGrad.pbtxt | 52 + .../core/api_def/base_api/api_def_B.pbtxt | 448 --- .../api_def/base_api/api_def_Barrier.pbtxt | 55 + .../base_api/api_def_BarrierClose.pbtxt | 26 + .../api_def_BarrierIncompleteSize.pbtxt | 17 + .../base_api/api_def_BarrierInsertMany.pbtxt | 35 + .../base_api/api_def_BarrierReadySize.pbtxt | 17 + .../base_api/api_def_BarrierTakeMany.pbtxt | 68 + .../base_api/api_def_BatchCholesky.pbtxt | 3 + .../base_api/api_def_BatchCholeskyGrad.pbtxt | 3 + .../base_api/api_def_BatchDataset.pbtxt | 11 + .../api_def/base_api/api_def_BatchFFT.pbtxt | 3 + .../api_def/base_api/api_def_BatchFFT2D.pbtxt | 3 + .../api_def/base_api/api_def_BatchFFT3D.pbtxt | 3 + .../api_def/base_api/api_def_BatchIFFT.pbtxt | 3 + .../base_api/api_def_BatchIFFT2D.pbtxt | 3 + .../base_api/api_def_BatchIFFT3D.pbtxt | 3 + .../base_api/api_def_BatchMatMul.pbtxt | 54 + .../api_def_BatchMatrixBandPart.pbtxt | 3 + .../api_def_BatchMatrixDeterminant.pbtxt | 3 + .../base_api/api_def_BatchMatrixDiag.pbtxt | 3 + .../api_def_BatchMatrixDiagPart.pbtxt | 3 + .../base_api/api_def_BatchMatrixInverse.pbtxt | 3 + .../base_api/api_def_BatchMatrixSetDiag.pbtxt | 3 + .../base_api/api_def_BatchMatrixSolve.pbtxt | 3 + .../base_api/api_def_BatchMatrixSolveLs.pbtxt | 3 + .../api_def_BatchMatrixTriangularSolve.pbtxt | 3 + ...def_BatchNormWithGlobalNormalization.pbtxt | 57 + ...BatchNormWithGlobalNormalizationGrad.pbtxt | 86 + .../api_def_BatchSelfAdjointEig.pbtxt | 3 + .../api_def_BatchSelfAdjointEigV2.pbtxt | 3 + .../api_def/base_api/api_def_BatchSvd.pbtxt | 3 + .../base_api/api_def_BatchToSpace.pbtxt | 104 + .../base_api/api_def_BatchToSpaceND.pbtxt | 139 + .../api_def/base_api/api_def_Betainc.pbtxt | 19 + .../api_def/base_api/api_def_BiasAdd.pbtxt | 38 + .../base_api/api_def_BiasAddGrad.pbtxt | 33 + .../api_def/base_api/api_def_BiasAddV1.pbtxt | 29 + .../api_def/base_api/api_def_Bincount.pbtxt | 40 + .../api_def/base_api/api_def_Bitcast.pbtxt | 18 + .../api_def/base_api/api_def_BitwiseAnd.pbtxt | 8 + .../api_def/base_api/api_def_BitwiseOr.pbtxt | 8 + .../api_def/base_api/api_def_BitwiseXor.pbtxt | 8 + .../base_api/api_def_BroadcastArgs.pbtxt | 11 + .../api_def_BroadcastGradientArgs.pbtxt | 8 + .../api_def/base_api/api_def_Bucketize.pbtxt | 38 + .../core/api_def/base_api/api_def_C.pbtxt | 513 ---- .../api_def_CTCBeamSearchDecoder.pbtxt | 72 + .../base_api/api_def_CTCGreedyDecoder.pbtxt | 61 + .../api_def/base_api/api_def_CTCLoss.pbtxt | 70 + .../base_api/api_def_CacheDataset.pbtxt | 17 + .../core/api_def/base_api/api_def_Cast.pbtxt | 4 + .../core/api_def/base_api/api_def_Ceil.pbtxt | 4 + .../base_api/api_def_CheckNumerics.pbtxt | 14 + .../api_def/base_api/api_def_Cholesky.pbtxt | 31 + .../base_api/api_def_CholeskyGrad.pbtxt | 30 + .../base_api/api_def_CompareAndBitpack.pbtxt | 53 + .../api_def/base_api/api_def_Complex.pbtxt | 20 + .../api_def/base_api/api_def_ComplexAbs.pbtxt | 10 + .../api_def_ComputeAccidentalHits.pbtxt | 62 + .../api_def/base_api/api_def_Concat.pbtxt | 27 + .../base_api/api_def_ConcatOffset.pbtxt | 36 + .../api_def/base_api/api_def_ConcatV2.pbtxt | 29 + .../base_api/api_def_ConcatenateDataset.pbtxt | 4 + .../api_def_ConditionalAccumulator.pbtxt | 44 + .../core/api_def/base_api/api_def_Conj.pbtxt | 19 + .../base_api/api_def_ConjugateTranspose.pbtxt | 9 + .../core/api_def/base_api/api_def_Const.pbtxt | 10 + .../base_api/api_def_ControlTrigger.pbtxt | 7 + .../api_def/base_api/api_def_Conv2D.pbtxt | 72 + .../api_def_Conv2DBackpropFilter.pbtxt | 57 + .../api_def_Conv2DBackpropInput.pbtxt | 56 + .../api_def/base_api/api_def_Conv3D.pbtxt | 47 + .../api_def_Conv3DBackpropFilter.pbtxt | 37 + .../api_def_Conv3DBackpropFilterV2.pbtxt | 49 + .../api_def_Conv3DBackpropInput.pbtxt | 37 + .../api_def_Conv3DBackpropInputV2.pbtxt | 49 + .../core/api_def/base_api/api_def_Cos.pbtxt | 4 + .../core/api_def/base_api/api_def_Cosh.pbtxt | 4 + .../api_def/base_api/api_def_CountUpTo.pbtxt | 24 + .../base_api/api_def_CropAndResize.pbtxt | 74 + .../api_def_CropAndResizeGradBoxes.pbtxt | 52 + .../api_def_CropAndResizeGradImage.pbtxt | 53 + .../core/api_def/base_api/api_def_Cross.pbtxt | 27 + .../api_def/base_api/api_def_Cumprod.pbtxt | 61 + .../api_def/base_api/api_def_Cumsum.pbtxt | 61 + .../core/api_def/base_api/api_def_D.pbtxt | 790 ----- .../api_def_DatasetToSingleElement.pbtxt | 16 + .../api_def_DebugGradientIdentity.pbtxt | 8 + .../base_api/api_def_DecodeAndCropJpeg.pbtxt | 86 + .../base_api/api_def_DecodeBase64.pbtxt | 20 + .../api_def/base_api/api_def_DecodeBmp.pbtxt | 26 + .../api_def/base_api/api_def_DecodeCSV.pbtxt | 49 + .../api_def/base_api/api_def_DecodeGif.pbtxt | 25 + .../base_api/api_def_DecodeJSONExample.pbtxt | 26 + .../api_def/base_api/api_def_DecodeJpeg.pbtxt | 80 + .../api_def/base_api/api_def_DecodePng.pbtxt | 39 + .../api_def/base_api/api_def_DecodeRaw.pbtxt | 26 + .../api_def/base_api/api_def_DecodeWav.pbtxt | 50 + .../api_def_DeleteSessionTensor.pbtxt | 10 + .../api_def_DenseToDenseSetOperation.pbtxt | 47 + .../api_def_DenseToSparseBatchDataset.pbtxt | 25 + .../api_def_DenseToSparseSetOperation.pbtxt | 70 + .../base_api/api_def_DepthToSpace.pbtxt | 101 + .../api_def_DepthwiseConv2dNative.pbtxt | 47 + ..._DepthwiseConv2dNativeBackpropFilter.pbtxt | 60 + ...f_DepthwiseConv2dNativeBackpropInput.pbtxt | 60 + .../api_def/base_api/api_def_Dequantize.pbtxt | 91 + .../api_def_DeserializeIterator.pbtxt | 17 + .../api_def_DeserializeManySparse.pbtxt | 60 + .../base_api/api_def_DestroyResourceOp.pbtxt | 21 + .../api_def_DestroyTemporaryVariable.pbtxt | 26 + .../core/api_def/base_api/api_def_Diag.pbtxt | 29 + .../api_def/base_api/api_def_DiagPart.pbtxt | 36 + .../api_def/base_api/api_def_Digamma.pbtxt | 7 + .../api_def/base_api/api_def_Dilation2D.pbtxt | 67 + .../api_def_Dilation2DBackpropFilter.pbtxt | 48 + .../api_def_Dilation2DBackpropInput.pbtxt | 48 + .../core/api_def/base_api/api_def_Div.pbtxt | 8 + .../base_api/api_def_DrawBoundingBoxes.pbtxt | 37 + .../base_api/api_def_DynamicPartition.pbtxt | 55 + .../base_api/api_def_DynamicStitch.pbtxt | 68 + .../core/api_def/base_api/api_def_E.pbtxt | 261 -- .../base_api/api_def_EditDistance.pbtxt | 96 + .../core/api_def/base_api/api_def_Elu.pbtxt | 8 + .../api_def/base_api/api_def_EluGrad.pbtxt | 24 + .../base_api/api_def_EncodeBase64.pbtxt | 30 + .../api_def/base_api/api_def_EncodeJpeg.pbtxt | 89 + .../api_def/base_api/api_def_EncodePng.pbtxt | 35 + .../api_def/base_api/api_def_EncodeWav.pbtxt | 31 + .../core/api_def/base_api/api_def_Enter.pbtxt | 42 + .../core/api_def/base_api/api_def_Equal.pbtxt | 8 + .../core/api_def/base_api/api_def_Erf.pbtxt | 4 + .../core/api_def/base_api/api_def_Erfc.pbtxt | 4 + .../core/api_def/base_api/api_def_Exit.pbtxt | 20 + .../core/api_def/base_api/api_def_Exp.pbtxt | 4 + .../api_def/base_api/api_def_ExpandDims.pbtxt | 52 + .../core/api_def/base_api/api_def_Expm1.pbtxt | 7 + .../base_api/api_def_ExtractGlimpse.pbtxt | 77 + .../api_def_ExtractImagePatches.pbtxt | 57 + .../base_api/api_def_ExtractJpegShape.pbtxt | 26 + .../core/api_def/base_api/api_def_F.pbtxt | 411 --- .../core/api_def/base_api/api_def_FFT.pbtxt | 25 + .../core/api_def/base_api/api_def_FFT2D.pbtxt | 25 + .../core/api_def/base_api/api_def_FFT3D.pbtxt | 25 + .../api_def/base_api/api_def_FIFOQueue.pbtxt | 47 + .../base_api/api_def_FIFOQueueV2.pbtxt | 49 + .../core/api_def/base_api/api_def_Fact.pbtxt | 4 + .../api_def_FakeQuantWithMinMaxArgs.pbtxt | 13 + ..._def_FakeQuantWithMinMaxArgsGradient.pbtxt | 23 + .../api_def_FakeQuantWithMinMaxVars.pbtxt | 16 + ..._def_FakeQuantWithMinMaxVarsGradient.pbtxt | 50 + ...ef_FakeQuantWithMinMaxVarsPerChannel.pbtxt | 17 + ...uantWithMinMaxVarsPerChannelGradient.pbtxt | 53 + .../api_def/base_api/api_def_FakeQueue.pbtxt | 5 + .../core/api_def/base_api/api_def_Fill.pbtxt | 31 + .../base_api/api_def_FilterDataset.pbtxt | 24 + .../api_def_FixedLengthRecordDataset.pbtxt | 37 + .../api_def_FixedLengthRecordReader.pbtxt | 50 + .../api_def_FixedLengthRecordReaderV2.pbtxt | 59 + ...api_def_FixedUnigramCandidateSampler.pbtxt | 144 + .../base_api/api_def_FlatMapDataset.pbtxt | 17 + .../core/api_def/base_api/api_def_Floor.pbtxt | 4 + .../api_def/base_api/api_def_FloorDiv.pbtxt | 8 + .../api_def/base_api/api_def_FloorMod.pbtxt | 11 + .../base_api/api_def_FractionalAvgPool.pbtxt | 90 + .../api_def_FractionalAvgPoolGrad.pbtxt | 59 + .../base_api/api_def_FractionalMaxPool.pbtxt | 114 + .../api_def_FractionalMaxPoolGrad.pbtxt | 58 + .../base_api/api_def_FusedBatchNorm.pbtxt | 99 + .../base_api/api_def_FusedBatchNormGrad.pbtxt | 102 + .../api_def_FusedBatchNormGradV2.pbtxt | 108 + .../base_api/api_def_FusedBatchNormV2.pbtxt | 105 + .../base_api/api_def_FusedPadConv2D.pbtxt | 50 + .../api_def_FusedResizeAndPadConv2D.pbtxt | 64 + .../core/api_def/base_api/api_def_G.pbtxt | 257 -- .../api_def/base_api/api_def_Gather.pbtxt | 31 + .../api_def/base_api/api_def_GatherNd.pbtxt | 123 + .../api_def/base_api/api_def_GatherV2.pbtxt | 54 + .../api_def_GenerateVocabRemapping.pbtxt | 68 + .../base_api/api_def_GetSessionHandle.pbtxt | 17 + .../base_api/api_def_GetSessionHandleV2.pbtxt | 17 + .../base_api/api_def_GetSessionTensor.pbtxt | 22 + .../api_def/base_api/api_def_Greater.pbtxt | 8 + .../base_api/api_def_GreaterEqual.pbtxt | 8 + .../api_def_GroupByWindowDataset.pbtxt | 14 + .../core/api_def/base_api/api_def_H.pbtxt | 52 - .../api_def/base_api/api_def_HSVToRGB.pbtxt | 23 + .../api_def/base_api/api_def_HashTable.pbtxt | 49 + .../base_api/api_def_HashTableV2.pbtxt | 51 + .../api_def_HistogramFixedWidth.pbtxt | 47 + .../base_api/api_def_HistogramSummary.pbtxt | 29 + .../core/api_def/base_api/api_def_I.pbtxt | 518 ---- .../core/api_def/base_api/api_def_IFFT.pbtxt | 25 + .../api_def/base_api/api_def_IFFT2D.pbtxt | 25 + .../api_def/base_api/api_def_IFFT3D.pbtxt | 25 + .../core/api_def/base_api/api_def_IRFFT.pbtxt | 43 + .../api_def/base_api/api_def_IRFFT2D.pbtxt | 44 + .../api_def/base_api/api_def_IRFFT3D.pbtxt | 44 + .../api_def/base_api/api_def_Identity.pbtxt | 4 + .../api_def/base_api/api_def_IdentityN.pbtxt | 21 + .../base_api/api_def_IdentityReader.pbtxt | 29 + .../base_api/api_def_IdentityReaderV2.pbtxt | 31 + .../api_def/base_api/api_def_Igamma.pbtxt | 19 + .../api_def/base_api/api_def_Igammac.pbtxt | 18 + .../api_def_IgnoreErrorsDataset.pbtxt | 4 + .../core/api_def/base_api/api_def_Imag.pbtxt | 17 + .../base_api/api_def_ImageSummary.pbtxt | 70 + .../base_api/api_def_ImmutableConst.pbtxt | 26 + .../api_def/base_api/api_def_InTopK.pbtxt | 44 + .../api_def/base_api/api_def_InTopKV2.pbtxt | 44 + .../base_api/api_def_InitializeTable.pbtxt | 23 + .../api_def_InitializeTableFromTextFile.pbtxt | 54 + ...pi_def_InitializeTableFromTextFileV2.pbtxt | 56 + .../base_api/api_def_InitializeTableV2.pbtxt | 25 + .../base_api/api_def_InterleaveDataset.pbtxt | 19 + .../core/api_def/base_api/api_def_Inv.pbtxt | 7 + .../api_def/base_api/api_def_InvGrad.pbtxt | 9 + .../api_def/base_api/api_def_Invert.pbtxt | 8 + .../base_api/api_def_InvertPermutation.pbtxt | 33 + .../api_def/base_api/api_def_IsFinite.pbtxt | 9 + .../core/api_def/base_api/api_def_IsInf.pbtxt | 9 + .../core/api_def/base_api/api_def_IsNan.pbtxt | 9 + .../api_def_IsVariableInitialized.pbtxt | 19 + .../api_def/base_api/api_def_Iterator.pbtxt | 11 + .../api_def_IteratorFromStringHandle.pbtxt | 30 + .../base_api/api_def_IteratorGetNext.pbtxt | 4 + .../api_def_IteratorToStringHandle.pbtxt | 16 + .../core/api_def/base_api/api_def_L.pbtxt | 392 --- .../api_def/base_api/api_def_L2Loss.pbtxt | 21 + .../api_def/base_api/api_def_LMDBReader.pbtxt | 24 + .../core/api_def/base_api/api_def_LRN.pbtxt | 47 + .../api_def/base_api/api_def_LRNGrad.pbtxt | 53 + ...i_def_LearnedUnigramCandidateSampler.pbtxt | 86 + .../api_def/base_api/api_def_LeftShift.pbtxt | 8 + .../core/api_def/base_api/api_def_Less.pbtxt | 8 + .../api_def/base_api/api_def_LessEqual.pbtxt | 8 + .../api_def/base_api/api_def_Lgamma.pbtxt | 4 + .../api_def/base_api/api_def_LinSpace.pbtxt | 39 + .../api_def/base_api/api_def_ListDiff.pbtxt | 54 + .../base_api/api_def_LoadAndRemapMatrix.pbtxt | 105 + .../core/api_def/base_api/api_def_Log.pbtxt | 7 + .../core/api_def/base_api/api_def_Log1p.pbtxt | 7 + .../api_def_LogMatrixDeterminant.pbtxt | 34 + .../api_def/base_api/api_def_LogSoftmax.pbtxt | 21 + .../api_def_LogUniformCandidateSampler.pbtxt | 86 + .../api_def/base_api/api_def_LogicalAnd.pbtxt | 8 + .../api_def/base_api/api_def_LogicalNot.pbtxt | 4 + .../api_def/base_api/api_def_LogicalOr.pbtxt | 8 + .../base_api/api_def_LookupTableExport.pbtxt | 23 + .../api_def_LookupTableExportV2.pbtxt | 25 + .../base_api/api_def_LookupTableFind.pbtxt | 31 + .../base_api/api_def_LookupTableFindV2.pbtxt | 33 + .../base_api/api_def_LookupTableImport.pbtxt | 27 + .../api_def_LookupTableImportV2.pbtxt | 29 + .../base_api/api_def_LookupTableInsert.pbtxt | 27 + .../api_def_LookupTableInsertV2.pbtxt | 29 + .../base_api/api_def_LookupTableSize.pbtxt | 17 + .../base_api/api_def_LookupTableSizeV2.pbtxt | 19 + .../api_def/base_api/api_def_LoopCond.pbtxt | 20 + .../core/api_def/base_api/api_def_M.pbtxt | 749 ----- .../base_api/api_def_MakeIterator.pbtxt | 8 + .../base_api/api_def_MapAndBatchDataset.pbtxt | 26 + .../api_def/base_api/api_def_MapClear.pbtxt | 4 + .../api_def/base_api/api_def_MapDataset.pbtxt | 4 + .../base_api/api_def_MapIncompleteSize.pbtxt | 4 + .../api_def/base_api/api_def_MapPeek.pbtxt | 8 + .../api_def/base_api/api_def_MapSize.pbtxt | 4 + .../api_def/base_api/api_def_MapStage.pbtxt | 37 + .../api_def/base_api/api_def_MapUnstage.pbtxt | 8 + .../base_api/api_def_MapUnstageNoKey.pbtxt | 8 + .../api_def/base_api/api_def_MatMul.pbtxt | 25 + .../base_api/api_def_MatchingFiles.pbtxt | 20 + .../base_api/api_def_MatrixBandPart.pbtxt | 71 + .../base_api/api_def_MatrixDeterminant.pbtxt | 21 + .../api_def/base_api/api_def_MatrixDiag.pbtxt | 44 + .../base_api/api_def_MatrixDiagPart.pbtxt | 47 + .../base_api/api_def_MatrixInverse.pbtxt | 33 + .../base_api/api_def_MatrixSetDiag.pbtxt | 36 + .../base_api/api_def_MatrixSolve.pbtxt | 37 + .../base_api/api_def_MatrixSolveLs.pbtxt | 68 + .../api_def_MatrixTriangularSolve.pbtxt | 57 + .../core/api_def/base_api/api_def_Max.pbtxt | 42 + .../api_def/base_api/api_def_MaxPool.pbtxt | 45 + .../api_def/base_api/api_def_MaxPool3D.pbtxt | 46 + .../base_api/api_def_MaxPool3DGrad.pbtxt | 52 + .../base_api/api_def_MaxPool3DGradGrad.pbtxt | 58 + .../base_api/api_def_MaxPoolGrad.pbtxt | 58 + .../base_api/api_def_MaxPoolGradGrad.pbtxt | 57 + .../base_api/api_def_MaxPoolGradGradV2.pbtxt | 57 + .../api_def_MaxPoolGradGradWithArgmax.pbtxt | 48 + .../base_api/api_def_MaxPoolGradV2.pbtxt | 57 + .../api_def_MaxPoolGradWithArgmax.pbtxt | 49 + .../api_def/base_api/api_def_MaxPoolV2.pbtxt | 45 + .../base_api/api_def_MaxPoolWithArgmax.pbtxt | 51 + .../api_def/base_api/api_def_Maximum.pbtxt | 8 + .../core/api_def/base_api/api_def_Mean.pbtxt | 42 + .../core/api_def/base_api/api_def_Merge.pbtxt | 29 + .../base_api/api_def_MergeSummary.pbtxt | 26 + .../base_api/api_def_MergeV2Checkpoints.pbtxt | 33 + .../core/api_def/base_api/api_def_Mfcc.pbtxt | 51 + .../core/api_def/base_api/api_def_Min.pbtxt | 42 + .../api_def/base_api/api_def_Minimum.pbtxt | 8 + .../api_def/base_api/api_def_MirrorPad.pbtxt | 60 + .../base_api/api_def_MirrorPadGrad.pbtxt | 50 + .../core/api_def/base_api/api_def_Mod.pbtxt | 11 + .../core/api_def/base_api/api_def_Mul.pbtxt | 14 + .../base_api/api_def_Multinomial.pbtxt | 37 + .../api_def_MutableDenseHashTable.pbtxt | 72 + .../api_def_MutableDenseHashTableV2.pbtxt | 74 + .../base_api/api_def_MutableHashTable.pbtxt | 49 + .../api_def_MutableHashTableOfTensors.pbtxt | 42 + .../api_def_MutableHashTableOfTensorsV2.pbtxt | 44 + .../base_api/api_def_MutableHashTableV2.pbtxt | 51 + .../core/api_def/base_api/api_def_N.pbtxt | 94 - .../core/api_def/base_api/api_def_Neg.pbtxt | 13 + .../api_def/base_api/api_def_NegTrain.pbtxt | 40 + .../base_api/api_def_NextIteration.pbtxt | 16 + .../core/api_def/base_api/api_def_NoOp.pbtxt | 4 + .../base_api/api_def_NonMaxSuppression.pbtxt | 56 + .../api_def_NonMaxSuppressionV2.pbtxt | 58 + .../api_def/base_api/api_def_NotEqual.pbtxt | 8 + .../api_def/base_api/api_def_NthElement.pbtxt | 39 + .../core/api_def/base_api/api_def_O.pbtxt | 195 -- .../api_def/base_api/api_def_OneHot.pbtxt | 130 + .../base_api/api_def_OneShotIterator.pbtxt | 37 + .../api_def/base_api/api_def_OnesLike.pbtxt | 16 + .../base_api/api_def_OrderedMapClear.pbtxt | 4 + .../api_def_OrderedMapIncompleteSize.pbtxt | 4 + .../base_api/api_def_OrderedMapPeek.pbtxt | 9 + .../base_api/api_def_OrderedMapSize.pbtxt | 4 + .../base_api/api_def_OrderedMapStage.pbtxt | 40 + .../base_api/api_def_OrderedMapUnstage.pbtxt | 8 + .../api_def_OrderedMapUnstageNoKey.pbtxt | 8 + .../core/api_def/base_api/api_def_P.pbtxt | 431 --- .../core/api_def/base_api/api_def_Pack.pbtxt | 47 + .../core/api_def/base_api/api_def_Pad.pbtxt | 28 + .../core/api_def/base_api/api_def_PadV2.pbtxt | 30 + .../base_api/api_def_PaddedBatchDataset.pbtxt | 27 + .../base_api/api_def_PaddingFIFOQueue.pbtxt | 56 + .../base_api/api_def_PaddingFIFOQueueV2.pbtxt | 58 + .../base_api/api_def_ParallelConcat.pbtxt | 42 + .../api_def_ParallelDynamicStitch.pbtxt | 67 + .../api_def_ParallelInterleaveDataset.pbtxt | 21 + .../base_api/api_def_ParallelMapDataset.pbtxt | 15 + ...api_def_ParameterizedTruncatedNormal.pbtxt | 66 + .../base_api/api_def_ParseExample.pbtxt | 78 + .../api_def_ParseSingleSequenceExample.pbtxt | 112 + .../base_api/api_def_ParseTensor.pbtxt | 23 + .../base_api/api_def_Placeholder.pbtxt | 28 + .../base_api/api_def_PlaceholderV2.pbtxt | 28 + .../api_def_PlaceholderWithDefault.pbtxt | 28 + .../api_def/base_api/api_def_Polygamma.pbtxt | 12 + .../base_api/api_def_PopulationCount.pbtxt | 12 + .../core/api_def/base_api/api_def_Pow.pbtxt | 14 + .../base_api/api_def_PrefetchDataset.pbtxt | 11 + .../base_api/api_def_PreventGradient.pbtxt | 32 + .../core/api_def/base_api/api_def_Print.pbtxt | 43 + .../base_api/api_def_PriorityQueue.pbtxt | 54 + .../base_api/api_def_PriorityQueueV2.pbtxt | 56 + .../core/api_def/base_api/api_def_Prod.pbtxt | 42 + .../api_def/base_api/api_def_PyFunc.pbtxt | 40 + .../base_api/api_def_PyFuncStateless.pbtxt | 5 + .../core/api_def/base_api/api_def_Q.pbtxt | 609 ---- .../core/api_def/base_api/api_def_Qr.pbtxt | 45 + .../api_def_QuantizeAndDequantize.pbtxt | 4 + .../api_def_QuantizeAndDequantizeV2.pbtxt | 93 + .../api_def_QuantizeAndDequantizeV3.pbtxt | 8 + .../api_def_QuantizeDownAndShrinkRange.pbtxt | 64 + .../api_def/base_api/api_def_QuantizeV2.pbtxt | 128 + .../base_api/api_def_QuantizedAdd.pbtxt | 43 + .../base_api/api_def_QuantizedAvgPool.pbtxt | 54 + ...izedBatchNormWithGlobalNormalization.pbtxt | 118 + .../base_api/api_def_QuantizedBiasAdd.pbtxt | 49 + .../base_api/api_def_QuantizedConcat.pbtxt | 50 + .../base_api/api_def_QuantizedConv2D.pbtxt | 65 + .../api_def_QuantizedInstanceNorm.pbtxt | 72 + .../base_api/api_def_QuantizedMatMul.pbtxt | 77 + .../base_api/api_def_QuantizedMaxPool.pbtxt | 54 + .../base_api/api_def_QuantizedMul.pbtxt | 43 + .../base_api/api_def_QuantizedRelu.pbtxt | 34 + .../base_api/api_def_QuantizedRelu6.pbtxt | 34 + .../base_api/api_def_QuantizedReluX.pbtxt | 34 + .../base_api/api_def_QuantizedReshape.pbtxt | 37 + .../api_def_QuantizedResizeBilinear.pbtxt | 35 + .../api_def/base_api/api_def_QueueClose.pbtxt | 25 + .../base_api/api_def_QueueCloseV2.pbtxt | 27 + .../base_api/api_def_QueueDequeue.pbtxt | 39 + .../base_api/api_def_QueueDequeueMany.pbtxt | 52 + .../base_api/api_def_QueueDequeueManyV2.pbtxt | 54 + .../base_api/api_def_QueueDequeueUpTo.pbtxt | 56 + .../base_api/api_def_QueueDequeueUpToV2.pbtxt | 58 + .../base_api/api_def_QueueDequeueV2.pbtxt | 41 + .../base_api/api_def_QueueEnqueue.pbtxt | 32 + .../base_api/api_def_QueueEnqueueMany.pbtxt | 37 + .../base_api/api_def_QueueEnqueueManyV2.pbtxt | 39 + .../base_api/api_def_QueueEnqueueV2.pbtxt | 34 + .../base_api/api_def_QueueIsClosed.pbtxt | 14 + .../base_api/api_def_QueueIsClosedV2.pbtxt | 14 + .../api_def/base_api/api_def_QueueSize.pbtxt | 17 + .../base_api/api_def_QueueSizeV2.pbtxt | 19 + .../core/api_def/base_api/api_def_R.pbtxt | 1392 --------- .../core/api_def/base_api/api_def_RFFT.pbtxt | 40 + .../api_def/base_api/api_def_RFFT2D.pbtxt | 42 + .../api_def/base_api/api_def_RFFT3D.pbtxt | 42 + .../api_def/base_api/api_def_RGBToHSV.pbtxt | 25 + .../api_def/base_api/api_def_RandomCrop.pbtxt | 44 + .../base_api/api_def_RandomGamma.pbtxt | 45 + .../base_api/api_def_RandomPoisson.pbtxt | 4 + .../base_api/api_def_RandomPoissonV2.pbtxt | 51 + .../base_api/api_def_RandomShuffle.pbtxt | 42 + .../base_api/api_def_RandomShuffleQueue.pbtxt | 68 + .../api_def_RandomShuffleQueueV2.pbtxt | 70 + .../api_def_RandomStandardNormal.pbtxt | 42 + .../base_api/api_def_RandomUniform.pbtxt | 40 + .../base_api/api_def_RandomUniformInt.pbtxt | 51 + .../core/api_def/base_api/api_def_Range.pbtxt | 41 + .../base_api/api_def_RangeDataset.pbtxt | 22 + .../core/api_def/base_api/api_def_Rank.pbtxt | 19 + .../api_def/base_api/api_def_ReadFile.pbtxt | 4 + .../base_api/api_def_ReadVariableOp.pbtxt | 24 + .../api_def_ReaderNumRecordsProduced.pbtxt | 15 + .../api_def_ReaderNumRecordsProducedV2.pbtxt | 17 + .../api_def_ReaderNumWorkUnitsCompleted.pbtxt | 11 + ...pi_def_ReaderNumWorkUnitsCompletedV2.pbtxt | 13 + .../api_def/base_api/api_def_ReaderRead.pbtxt | 34 + .../base_api/api_def_ReaderReadUpTo.pbtxt | 41 + .../base_api/api_def_ReaderReadUpToV2.pbtxt | 43 + .../base_api/api_def_ReaderReadV2.pbtxt | 36 + .../base_api/api_def_ReaderReset.pbtxt | 11 + .../base_api/api_def_ReaderResetV2.pbtxt | 13 + .../base_api/api_def_ReaderRestoreState.pbtxt | 22 + .../api_def_ReaderRestoreStateV2.pbtxt | 24 + .../api_def_ReaderSerializeState.pbtxt | 15 + .../api_def_ReaderSerializeStateV2.pbtxt | 17 + .../core/api_def/base_api/api_def_Real.pbtxt | 17 + .../api_def/base_api/api_def_RealDiv.pbtxt | 10 + .../api_def/base_api/api_def_Reciprocal.pbtxt | 7 + .../base_api/api_def_ReciprocalGrad.pbtxt | 9 + .../base_api/api_def_RecordInput.pbtxt | 47 + .../api_def/base_api/api_def_ReduceJoin.pbtxt | 59 + .../api_def/base_api/api_def_RefEnter.pbtxt | 41 + .../api_def/base_api/api_def_RefExit.pbtxt | 20 + .../base_api/api_def_RefIdentity.pbtxt | 5 + .../api_def/base_api/api_def_RefMerge.pbtxt | 30 + .../base_api/api_def_RefNextIteration.pbtxt | 16 + .../api_def/base_api/api_def_RefSelect.pbtxt | 22 + .../api_def/base_api/api_def_RefSwitch.pbtxt | 34 + .../core/api_def/base_api/api_def_Relu.pbtxt | 4 + .../core/api_def/base_api/api_def_Relu6.pbtxt | 4 + .../api_def/base_api/api_def_Relu6Grad.pbtxt | 25 + .../api_def/base_api/api_def_ReluGrad.pbtxt | 24 + .../api_def/base_api/api_def_RemoteCall.pbtxt | 40 + .../api_def_RemoteFusedGraphExecute.pbtxt | 32 + .../base_api/api_def_RepeatDataset.pbtxt | 11 + .../api_def_RequantizationRange.pbtxt | 39 + .../api_def/base_api/api_def_Requantize.pbtxt | 60 + .../api_def/base_api/api_def_Reshape.pbtxt | 68 + .../api_def/base_api/api_def_ResizeArea.pbtxt | 40 + .../base_api/api_def_ResizeBicubic.pbtxt | 35 + .../base_api/api_def_ResizeBicubicGrad.pbtxt | 34 + .../base_api/api_def_ResizeBilinear.pbtxt | 35 + .../base_api/api_def_ResizeBilinearGrad.pbtxt | 34 + .../api_def_ResizeNearestNeighbor.pbtxt | 32 + .../api_def_ResizeNearestNeighborGrad.pbtxt | 33 + .../api_def_ResourceApplyAdadelta.pbtxt | 59 + .../api_def_ResourceApplyAdagrad.pbtxt | 40 + .../api_def_ResourceApplyAdagradDA.pbtxt | 59 + .../base_api/api_def_ResourceApplyAdam.pbtxt | 84 + ...api_def_ResourceApplyCenteredRMSProp.pbtxt | 80 + .../base_api/api_def_ResourceApplyFtrl.pbtxt | 67 + .../api_def_ResourceApplyFtrlV2.pbtxt | 69 + ...api_def_ResourceApplyGradientDescent.pbtxt | 29 + .../api_def_ResourceApplyMomentum.pbtxt | 56 + ...api_def_ResourceApplyProximalAdagrad.pbtxt | 52 + ...ResourceApplyProximalGradientDescent.pbtxt | 45 + .../api_def_ResourceApplyRMSProp.pbtxt | 66 + .../base_api/api_def_ResourceCountUpTo.pbtxt | 24 + .../base_api/api_def_ResourceGather.pbtxt | 19 + .../base_api/api_def_ResourceScatterAdd.pbtxt | 43 + .../api_def_ResourceScatterUpdate.pbtxt | 34 + .../api_def_ResourceSparseApplyAdadelta.pbtxt | 53 + .../api_def_ResourceSparseApplyAdagrad.pbtxt | 47 + ...api_def_ResourceSparseApplyAdagradDA.pbtxt | 65 + ...f_ResourceSparseApplyCenteredRMSProp.pbtxt | 84 + .../api_def_ResourceSparseApplyFtrl.pbtxt | 74 + .../api_def_ResourceSparseApplyFtrlV2.pbtxt | 76 + .../api_def_ResourceSparseApplyMomentum.pbtxt | 64 + ...f_ResourceSparseApplyProximalAdagrad.pbtxt | 60 + ...ceSparseApplyProximalGradientDescent.pbtxt | 52 + .../api_def_ResourceSparseApplyRMSProp.pbtxt | 72 + .../api_def_ResourceStridedSliceAssign.pbtxt | 12 + .../api_def/base_api/api_def_Restore.pbtxt | 55 + .../base_api/api_def_RestoreSlice.pbtxt | 52 + .../api_def/base_api/api_def_RestoreV2.pbtxt | 52 + .../api_def/base_api/api_def_Reverse.pbtxt | 69 + .../base_api/api_def_ReverseSequence.pbtxt | 91 + .../api_def/base_api/api_def_ReverseV2.pbtxt | 74 + .../api_def/base_api/api_def_RightShift.pbtxt | 11 + .../core/api_def/base_api/api_def_Rint.pbtxt | 15 + .../core/api_def/base_api/api_def_Round.pbtxt | 8 + .../core/api_def/base_api/api_def_Rsqrt.pbtxt | 7 + .../api_def/base_api/api_def_RsqrtGrad.pbtxt | 9 + .../core/api_def/base_api/api_def_S.pbtxt | 2678 ----------------- .../api_def_SampleDistortedBoundingBox.pbtxt | 131 + ...api_def_SampleDistortedBoundingBoxV2.pbtxt | 131 + .../core/api_def/base_api/api_def_Save.pbtxt | 29 + .../api_def/base_api/api_def_SaveSlices.pbtxt | 53 + .../api_def/base_api/api_def_SaveV2.pbtxt | 35 + .../base_api/api_def_ScalarSummary.pbtxt | 26 + .../base_api/api_def_ScanDataset.pbtxt | 4 + .../api_def/base_api/api_def_ScatterAdd.pbtxt | 60 + .../api_def/base_api/api_def_ScatterDiv.pbtxt | 58 + .../api_def/base_api/api_def_ScatterMul.pbtxt | 58 + .../api_def/base_api/api_def_ScatterNd.pbtxt | 102 + .../base_api/api_def_ScatterNdAdd.pbtxt | 74 + .../api_def_ScatterNdNonAliasingAdd.pbtxt | 68 + .../base_api/api_def_ScatterNdSub.pbtxt | 74 + .../base_api/api_def_ScatterNdUpdate.pbtxt | 76 + .../api_def/base_api/api_def_ScatterSub.pbtxt | 60 + .../base_api/api_def_ScatterUpdate.pbtxt | 63 + .../api_def/base_api/api_def_SdcaFprint.pbtxt | 17 + .../base_api/api_def_SdcaOptimizer.pbtxt | 167 + .../base_api/api_def_SdcaShrinkL1.pbtxt | 29 + .../api_def/base_api/api_def_SegmentMax.pbtxt | 32 + .../base_api/api_def_SegmentMean.pbtxt | 33 + .../api_def/base_api/api_def_SegmentMin.pbtxt | 32 + .../base_api/api_def_SegmentProd.pbtxt | 32 + .../api_def/base_api/api_def_SegmentSum.pbtxt | 32 + .../api_def/base_api/api_def_Select.pbtxt | 69 + .../base_api/api_def_SelfAdjointEig.pbtxt | 24 + .../base_api/api_def_SelfAdjointEigV2.pbtxt | 44 + .../core/api_def/base_api/api_def_Selu.pbtxt | 9 + .../api_def/base_api/api_def_SeluGrad.pbtxt | 24 + .../base_api/api_def_SerializeIterator.pbtxt | 17 + .../api_def_SerializeManySparse.pbtxt | 31 + .../base_api/api_def_SerializeSparse.pbtxt | 22 + .../base_api/api_def_SerializeTensor.pbtxt | 22 + .../api_def/base_api/api_def_SetSize.pbtxt | 38 + .../core/api_def/base_api/api_def_Shape.pbtxt | 14 + .../api_def/base_api/api_def_ShapeN.pbtxt | 7 + .../base_api/api_def_ShardedFilename.pbtxt | 7 + .../base_api/api_def_ShardedFilespec.pbtxt | 4 + .../base_api/api_def_ShuffleDataset.pbtxt | 36 + .../api_def/base_api/api_def_Sigmoid.pbtxt | 7 + .../base_api/api_def_SigmoidGrad.pbtxt | 9 + .../core/api_def/base_api/api_def_Sign.pbtxt | 9 + .../core/api_def/base_api/api_def_Sin.pbtxt | 4 + .../core/api_def/base_api/api_def_Sinh.pbtxt | 4 + .../core/api_def/base_api/api_def_Size.pbtxt | 15 + .../base_api/api_def_SkipDataset.pbtxt | 11 + .../api_def/base_api/api_def_Skipgram.pbtxt | 78 + .../core/api_def/base_api/api_def_Slice.pbtxt | 28 + .../api_def/base_api/api_def_Softmax.pbtxt | 21 + ...pi_def_SoftmaxCrossEntropyWithLogits.pbtxt | 33 + .../api_def/base_api/api_def_Softplus.pbtxt | 4 + .../base_api/api_def_SoftplusGrad.pbtxt | 23 + .../api_def/base_api/api_def_Softsign.pbtxt | 4 + .../base_api/api_def_SoftsignGrad.pbtxt | 23 + .../base_api/api_def_SpaceToBatch.pbtxt | 109 + .../base_api/api_def_SpaceToBatchND.pbtxt | 140 + .../base_api/api_def_SpaceToDepth.pbtxt | 95 + ...i_def_SparseAccumulatorApplyGradient.pbtxt | 55 + ...pi_def_SparseAccumulatorTakeGradient.pbtxt | 49 + .../api_def/base_api/api_def_SparseAdd.pbtxt | 62 + .../base_api/api_def_SparseAddGrad.pbtxt | 50 + .../api_def_SparseApplyAdadelta.pbtxt | 59 + .../base_api/api_def_SparseApplyAdagrad.pbtxt | 53 + .../api_def_SparseApplyAdagradDA.pbtxt | 71 + .../api_def_SparseApplyCenteredRMSProp.pbtxt | 90 + .../base_api/api_def_SparseApplyFtrl.pbtxt | 80 + .../base_api/api_def_SparseApplyFtrlV2.pbtxt | 82 + .../api_def_SparseApplyMomentum.pbtxt | 70 + .../api_def_SparseApplyProximalAdagrad.pbtxt | 66 + ...f_SparseApplyProximalGradientDescent.pbtxt | 58 + .../base_api/api_def_SparseApplyRMSProp.pbtxt | 78 + .../base_api/api_def_SparseConcat.pbtxt | 90 + ...api_def_SparseConditionalAccumulator.pbtxt | 44 + .../base_api/api_def_SparseCross.pbtxt | 106 + .../api_def_SparseDenseCwiseAdd.pbtxt | 45 + .../api_def_SparseDenseCwiseDiv.pbtxt | 39 + .../api_def_SparseDenseCwiseMul.pbtxt | 43 + .../api_def_SparseFillEmptyRows.pbtxt | 87 + .../api_def_SparseFillEmptyRowsGrad.pbtxt | 38 + .../base_api/api_def_SparseMatMul.pbtxt | 13 + .../base_api/api_def_SparseReduceMax.pbtxt | 55 + .../api_def_SparseReduceMaxSparse.pbtxt | 49 + .../base_api/api_def_SparseReduceSum.pbtxt | 55 + .../api_def_SparseReduceSumSparse.pbtxt | 49 + .../base_api/api_def_SparseReorder.pbtxt | 46 + .../base_api/api_def_SparseReshape.pbtxt | 55 + .../base_api/api_def_SparseSegmentMean.pbtxt | 30 + .../api_def_SparseSegmentMeanGrad.pbtxt | 32 + .../base_api/api_def_SparseSegmentSqrtN.pbtxt | 29 + .../api_def_SparseSegmentSqrtNGrad.pbtxt | 32 + .../base_api/api_def_SparseSegmentSum.pbtxt | 53 + .../base_api/api_def_SparseSlice.pbtxt | 67 + .../base_api/api_def_SparseSoftmax.pbtxt | 46 + ..._SparseSoftmaxCrossEntropyWithLogits.pbtxt | 37 + .../api_def_SparseSparseMaximum.pbtxt | 56 + .../api_def_SparseSparseMinimum.pbtxt | 56 + .../base_api/api_def_SparseSplit.pbtxt | 70 + .../api_def_SparseTensorDenseAdd.pbtxt | 31 + .../api_def_SparseTensorDenseMatMul.pbtxt | 53 + .../api_def_SparseTensorSliceDataset.pbtxt | 4 + .../base_api/api_def_SparseToDense.pbtxt | 65 + .../api_def_SparseToSparseSetOperation.pbtxt | 93 + .../core/api_def/base_api/api_def_Split.pbtxt | 33 + .../api_def/base_api/api_def_SplitV.pbtxt | 34 + .../api_def/base_api/api_def_SqlDataset.pbtxt | 22 + .../core/api_def/base_api/api_def_Sqrt.pbtxt | 7 + .../api_def/base_api/api_def_SqrtGrad.pbtxt | 9 + .../api_def/base_api/api_def_Square.pbtxt | 7 + .../base_api/api_def_SquaredDifference.pbtxt | 8 + .../api_def/base_api/api_def_Squeeze.pbtxt | 46 + .../core/api_def/base_api/api_def_Stack.pbtxt | 5 + .../api_def/base_api/api_def_StackClose.pbtxt | 5 + .../base_api/api_def_StackCloseV2.pbtxt | 11 + .../api_def/base_api/api_def_StackPop.pbtxt | 5 + .../api_def/base_api/api_def_StackPopV2.pbtxt | 23 + .../api_def/base_api/api_def_StackPush.pbtxt | 5 + .../base_api/api_def_StackPushV2.pbtxt | 29 + .../api_def/base_api/api_def_StackV2.pbtxt | 31 + .../core/api_def/base_api/api_def_Stage.pbtxt | 42 + .../api_def/base_api/api_def_StageClear.pbtxt | 4 + .../api_def/base_api/api_def_StagePeek.pbtxt | 9 + .../api_def/base_api/api_def_StageSize.pbtxt | 4 + .../api_def_StatelessRandomNormal.pbtxt | 33 + .../api_def_StatelessRandomUniform.pbtxt | 34 + .../api_def_StatelessTruncatedNormal.pbtxt | 35 + .../base_api/api_def_StopGradient.pbtxt | 25 + .../base_api/api_def_StridedSlice.pbtxt | 167 + .../base_api/api_def_StridedSliceAssign.pbtxt | 12 + .../base_api/api_def_StridedSliceGrad.pbtxt | 14 + .../api_def/base_api/api_def_StringJoin.pbtxt | 21 + .../base_api/api_def_StringSplit.pbtxt | 64 + .../base_api/api_def_StringToHashBucket.pbtxt | 24 + .../api_def_StringToHashBucketFast.pbtxt | 30 + .../api_def_StringToHashBucketStrong.pbtxt | 41 + .../base_api/api_def_StringToNumber.pbtxt | 20 + .../core/api_def/base_api/api_def_Sub.pbtxt | 14 + .../api_def/base_api/api_def_Substr.pbtxt | 103 + .../core/api_def/base_api/api_def_Sum.pbtxt | 42 + .../core/api_def/base_api/api_def_Svd.pbtxt | 62 + .../api_def/base_api/api_def_Switch.pbtxt | 34 + .../base_api/api_def_SymbolicGradient.pbtxt | 51 + .../core/api_def/base_api/api_def_T.pbtxt | 619 ---- .../base_api/api_def_TFRecordDataset.pbtxt | 25 + .../base_api/api_def_TFRecordReader.pbtxt | 25 + .../base_api/api_def_TFRecordReaderV2.pbtxt | 27 + .../base_api/api_def_TakeDataset.pbtxt | 12 + ...api_def_TakeManySparseFromTensorsMap.pbtxt | 100 + .../core/api_def/base_api/api_def_Tan.pbtxt | 4 + .../core/api_def/base_api/api_def_Tanh.pbtxt | 4 + .../api_def/base_api/api_def_TanhGrad.pbtxt | 9 + .../base_api/api_def_TemporaryVariable.pbtxt | 45 + .../base_api/api_def_TensorArray.pbtxt | 3 + .../base_api/api_def_TensorArrayClose.pbtxt | 3 + .../base_api/api_def_TensorArrayCloseV2.pbtxt | 5 + .../base_api/api_def_TensorArrayCloseV3.pbtxt | 17 + .../base_api/api_def_TensorArrayConcat.pbtxt | 3 + .../api_def_TensorArrayConcatV2.pbtxt | 5 + .../api_def_TensorArrayConcatV3.pbtxt | 62 + .../base_api/api_def_TensorArrayGather.pbtxt | 3 + .../api_def_TensorArrayGatherV2.pbtxt | 5 + .../api_def_TensorArrayGatherV3.pbtxt | 49 + .../base_api/api_def_TensorArrayGrad.pbtxt | 3 + .../base_api/api_def_TensorArrayGradV2.pbtxt | 5 + .../base_api/api_def_TensorArrayGradV3.pbtxt | 64 + .../base_api/api_def_TensorArrayPack.pbtxt | 3 + .../base_api/api_def_TensorArrayRead.pbtxt | 3 + .../base_api/api_def_TensorArrayReadV2.pbtxt | 5 + .../base_api/api_def_TensorArrayReadV3.pbtxt | 31 + .../base_api/api_def_TensorArrayScatter.pbtxt | 3 + .../api_def_TensorArrayScatterV2.pbtxt | 5 + .../api_def_TensorArrayScatterV3.pbtxt | 40 + .../base_api/api_def_TensorArraySize.pbtxt | 3 + .../base_api/api_def_TensorArraySizeV2.pbtxt | 5 + .../base_api/api_def_TensorArraySizeV3.pbtxt | 25 + .../base_api/api_def_TensorArraySplit.pbtxt | 3 + .../base_api/api_def_TensorArraySplitV2.pbtxt | 5 + .../base_api/api_def_TensorArraySplitV3.pbtxt | 57 + .../base_api/api_def_TensorArrayUnpack.pbtxt | 3 + .../base_api/api_def_TensorArrayV2.pbtxt | 5 + .../base_api/api_def_TensorArrayV3.pbtxt | 65 + .../base_api/api_def_TensorArrayWrite.pbtxt | 3 + .../base_api/api_def_TensorArrayWriteV2.pbtxt | 5 + .../base_api/api_def_TensorArrayWriteV3.pbtxt | 37 + .../base_api/api_def_TensorDataset.pbtxt | 4 + .../base_api/api_def_TensorSliceDataset.pbtxt | 4 + .../base_api/api_def_TensorSummary.pbtxt | 33 + .../base_api/api_def_TensorSummaryV2.pbtxt | 23 + .../base_api/api_def_TextLineDataset.pbtxt | 24 + .../base_api/api_def_TextLineReader.pbtxt | 31 + .../base_api/api_def_TextLineReaderV2.pbtxt | 33 + ..._ThreadUnsafeUnigramCandidateSampler.pbtxt | 87 + .../core/api_def/base_api/api_def_Tile.pbtxt | 23 + .../api_def/base_api/api_def_TileGrad.pbtxt | 9 + .../core/api_def/base_api/api_def_TopK.pbtxt | 50 + .../api_def/base_api/api_def_TopKV2.pbtxt | 51 + .../api_def/base_api/api_def_Transpose.pbtxt | 8 + .../base_api/api_def_TruncateDiv.pbtxt | 13 + .../base_api/api_def_TruncateMod.pbtxt | 11 + .../base_api/api_def_TruncatedNormal.pbtxt | 42 + .../core/api_def/base_api/api_def_U.pbtxt | 150 - .../api_def_UniformCandidateSampler.pbtxt | 86 + .../api_def/base_api/api_def_Unique.pbtxt | 39 + .../base_api/api_def_UniqueWithCounts.pbtxt | 47 + .../api_def/base_api/api_def_Unpack.pbtxt | 40 + .../base_api/api_def_UnsortedSegmentMax.pbtxt | 36 + .../base_api/api_def_UnsortedSegmentSum.pbtxt | 36 + .../api_def/base_api/api_def_Unstage.pbtxt | 8 + .../core/api_def/base_api/api_def_V.pbtxt | 19 - .../base_api/api_def_VarHandleOp.pbtxt | 29 + .../base_api/api_def_VarIsInitializedOp.pbtxt | 17 + .../api_def/base_api/api_def_Variable.pbtxt | 5 + .../base_api/api_def_VariableShape.pbtxt | 14 + .../api_def/base_api/api_def_VariableV2.pbtxt | 44 + .../{api_def_W.pbtxt => api_def_Where.pbtxt} | 67 +- .../base_api/api_def_WholeFileReader.pbtxt | 29 + .../base_api/api_def_WholeFileReaderV2.pbtxt | 31 + .../api_def/base_api/api_def_WriteFile.pbtxt | 19 + .../core/api_def/base_api/api_def_Z.pbtxt | 27 - .../api_def/base_api/api_def_ZerosLike.pbtxt | 16 + .../core/api_def/base_api/api_def_Zeta.pbtxt | 10 + .../api_def/base_api/api_def_ZipDataset.pbtxt | 4 + .../core/api_def/python_api/api_def_A.pbtxt | 56 - .../core/api_def/python_api/api_def_Abs.pbtxt | 4 + .../python_api/api_def_AccumulateNV2.pbtxt | 4 + .../api_def_AddManySparseToTensorsMap.pbtxt | 4 + .../api_def/python_api/api_def_AddN.pbtxt | 4 + .../api_def_AddSparseToTensorsMap.pbtxt | 4 + .../api_def/python_api/api_def_AddV2.pbtxt | 4 + .../python_api/api_def_AdjustContrastv2.pbtxt | 4 + .../core/api_def/python_api/api_def_All.pbtxt | 4 + .../api_def_AllCandidateSampler.pbtxt | 4 + .../core/api_def/python_api/api_def_Any.pbtxt | 4 + .../api_def/python_api/api_def_Assert.pbtxt | 4 + .../python_api/api_def_AudioSummary.pbtxt | 4 + .../python_api/api_def_AudioSummaryV2.pbtxt | 4 + .../api_def/python_api/api_def_AvgPool.pbtxt | 4 + .../python_api/api_def_AvgPool3DGrad.pbtxt | 4 + .../core/api_def/python_api/api_def_B.pbtxt | 142 - .../api_def/python_api/api_def_Barrier.pbtxt | 4 + .../python_api/api_def_BarrierClose.pbtxt | 4 + .../api_def_BarrierIncompleteSize.pbtxt | 4 + .../api_def_BarrierInsertMany.pbtxt | 4 + .../python_api/api_def_BarrierReadySize.pbtxt | 4 + .../python_api/api_def_BarrierTakeMany.pbtxt | 4 + .../python_api/api_def_BatchCholesky.pbtxt | 4 + .../api_def_BatchCholeskyGrad.pbtxt | 4 + .../api_def/python_api/api_def_BatchFFT.pbtxt | 4 + .../python_api/api_def_BatchFFT2D.pbtxt | 4 + .../python_api/api_def_BatchFFT3D.pbtxt | 4 + .../python_api/api_def_BatchIFFT.pbtxt | 4 + .../python_api/api_def_BatchIFFT2D.pbtxt | 4 + .../python_api/api_def_BatchIFFT3D.pbtxt | 4 + .../python_api/api_def_BatchMatMul.pbtxt | 4 + .../api_def_BatchMatrixDeterminant.pbtxt | 4 + .../api_def_BatchMatrixInverse.pbtxt | 4 + .../python_api/api_def_BatchMatrixSolve.pbtxt | 4 + .../api_def_BatchMatrixSolveLs.pbtxt | 4 + .../api_def_BatchMatrixTriangularSolve.pbtxt | 4 + ...def_BatchNormWithGlobalNormalization.pbtxt | 4 + ...BatchNormWithGlobalNormalizationGrad.pbtxt | 4 + .../api_def_BatchSelfAdjointEig.pbtxt | 4 + .../api_def_BatchSelfAdjointEigV2.pbtxt | 4 + .../api_def/python_api/api_def_BatchSvd.pbtxt | 4 + .../python_api/api_def_BatchToSpace.pbtxt | 4 + .../api_def/python_api/api_def_BiasAdd.pbtxt | 4 + .../python_api/api_def_BiasAddV1.pbtxt | 4 + .../python_api/api_def_BitwiseAnd.pbtxt | 6 + .../python_api/api_def_BitwiseOr.pbtxt | 6 + .../python_api/api_def_BitwiseXor.pbtxt | 6 + .../python_api/api_def_BroadcastArgs.pbtxt | 4 + .../python_api/api_def_Bucketize.pbtxt | 4 + .../core/api_def/python_api/api_def_C.pbtxt | 59 - .../api_def_CTCBeamSearchDecoder.pbtxt | 4 + .../python_api/api_def_CTCGreedyDecoder.pbtxt | 4 + .../api_def/python_api/api_def_CTCLoss.pbtxt | 4 + .../api_def/python_api/api_def_Cholesky.pbtxt | 9 + .../api_def/python_api/api_def_Complex.pbtxt | 4 + .../python_api/api_def_ComplexAbs.pbtxt | 4 + .../api_def_ComputeAccidentalHits.pbtxt | 4 + .../api_def/python_api/api_def_Concat.pbtxt | 4 + .../python_api/api_def_ConcatOffset.pbtxt | 4 + .../api_def/python_api/api_def_ConcatV2.pbtxt | 4 + .../api_def/python_api/api_def_Conj.pbtxt | 4 + .../api_def_ConjugateTranspose.pbtxt | 4 + .../api_def/python_api/api_def_Const.pbtxt | 4 + .../python_api/api_def_CropAndResize.pbtxt | 6 + .../core/api_def/python_api/api_def_D.pbtxt | 74 - .../api_def_DebugGradientIdentity.pbtxt | 4 + .../api_def_DecodeAndCropJpeg.pbtxt | 6 + .../python_api/api_def_DecodeBmp.pbtxt | 6 + .../python_api/api_def_DecodeCSV.pbtxt | 4 + .../python_api/api_def_DecodeGif.pbtxt | 6 + .../python_api/api_def_DecodeJpeg.pbtxt | 6 + .../python_api/api_def_DecodePng.pbtxt | 6 + .../api_def_DeleteSessionTensor.pbtxt | 4 + .../api_def_DepthwiseConv2dNative.pbtxt | 6 + ..._DepthwiseConv2dNativeBackpropFilter.pbtxt | 6 + ...f_DepthwiseConv2dNativeBackpropInput.pbtxt | 6 + .../api_def_DeserializeManySparse.pbtxt | 4 + .../api_def_DestroyTemporaryVariable.pbtxt | 4 + .../api_def_DrawBoundingBoxes.pbtxt | 6 + .../core/api_def/python_api/api_def_E.pbtxt | 46 - .../python_api/api_def_EditDistance.pbtxt | 4 + .../core/api_def/python_api/api_def_Elu.pbtxt | 6 + .../python_api/api_def_EncodeJpeg.pbtxt | 6 + .../python_api/api_def_EncodePng.pbtxt | 6 + .../python_api/api_def_ExpandDims.pbtxt | 4 + .../python_api/api_def_ExtractGlimpse.pbtxt | 6 + .../python_api/api_def_ExtractJpegShape.pbtxt | 6 + .../core/api_def/python_api/api_def_F.pbtxt | 73 - .../core/api_def/python_api/api_def_FFT.pbtxt | 9 + .../python_api/api_def_FIFOQueue.pbtxt | 4 + .../python_api/api_def_FIFOQueueV2.pbtxt | 4 + .../api_def/python_api/api_def_Fact.pbtxt | 4 + .../python_api/api_def_FakeQueue.pbtxt | 4 + .../api_def_FixedLengthRecordReader.pbtxt | 4 + .../api_def_FixedLengthRecordReaderV2.pbtxt | 4 + ...api_def_FixedUnigramCandidateSampler.pbtxt | 4 + .../api_def/python_api/api_def_FloorDiv.pbtxt | 4 + .../api_def/python_api/api_def_FloorMod.pbtxt | 4 + .../api_def_FractionalAvgPool.pbtxt | 6 + .../api_def_FractionalMaxPool.pbtxt | 6 + .../python_api/api_def_FusedBatchNorm.pbtxt | 4 + .../python_api/api_def_FusedBatchNormV2.pbtxt | 4 + .../core/api_def/python_api/api_def_G.pbtxt | 16 - .../api_def_GenerateVocabRemapping.pbtxt | 4 + .../python_api/api_def_GetSessionHandle.pbtxt | 4 + .../api_def_GetSessionHandleV2.pbtxt | 4 + .../python_api/api_def_GetSessionTensor.pbtxt | 4 + .../core/api_def/python_api/api_def_H.pbtxt | 18 - .../api_def/python_api/api_def_HSVToRGB.pbtxt | 6 + .../python_api/api_def_HashTable.pbtxt | 4 + .../python_api/api_def_HashTableV2.pbtxt | 4 + .../api_def_HistogramFixedWidth.pbtxt | 4 + .../python_api/api_def_HistogramSummary.pbtxt | 4 + .../core/api_def/python_api/api_def_I.pbtxt | 55 - .../api_def/python_api/api_def_IFFT.pbtxt | 9 + .../python_api/api_def_IdentityReader.pbtxt | 4 + .../python_api/api_def_IdentityReaderV2.pbtxt | 4 + .../python_api/api_def_ImageSummary.pbtxt | 4 + .../api_def/python_api/api_def_InTopK.pbtxt | 4 + .../api_def/python_api/api_def_InTopKV2.pbtxt | 4 + .../python_api/api_def_InitializeTable.pbtxt | 4 + .../api_def_InitializeTableFromTextFile.pbtxt | 4 + ...pi_def_InitializeTableFromTextFileV2.pbtxt | 4 + .../api_def_InitializeTableV2.pbtxt | 4 + .../api_def/python_api/api_def_Invert.pbtxt | 6 + .../core/api_def/python_api/api_def_L.pbtxt | 96 - .../api_def/python_api/api_def_L2Loss.pbtxt | 6 + .../python_api/api_def_LMDBReader.pbtxt | 4 + .../core/api_def/python_api/api_def_LRN.pbtxt | 9 + ...i_def_LearnedUnigramCandidateSampler.pbtxt | 4 + .../python_api/api_def_LeftShift.pbtxt | 6 + .../api_def/python_api/api_def_LinSpace.pbtxt | 9 + .../api_def/python_api/api_def_ListDiff.pbtxt | 4 + .../api_def_LoadAndRemapMatrix.pbtxt | 4 + .../api_def_LogMatrixDeterminant.pbtxt | 4 + .../python_api/api_def_LogSoftmax.pbtxt | 4 + .../api_def_LogUniformCandidateSampler.pbtxt | 4 + .../api_def_LookupTableExport.pbtxt | 4 + .../api_def_LookupTableExportV2.pbtxt | 4 + .../python_api/api_def_LookupTableFind.pbtxt | 4 + .../api_def_LookupTableFindV2.pbtxt | 4 + .../api_def_LookupTableImport.pbtxt | 4 + .../api_def_LookupTableImportV2.pbtxt | 4 + .../api_def_LookupTableInsert.pbtxt | 4 + .../api_def_LookupTableInsertV2.pbtxt | 4 + .../python_api/api_def_LookupTableSize.pbtxt | 4 + .../api_def_LookupTableSizeV2.pbtxt | 4 + .../core/api_def/python_api/api_def_M.pbtxt | 174 -- .../api_def/python_api/api_def_MatMul.pbtxt | 4 + .../python_api/api_def_MatrixBandPart.pbtxt | 9 + .../api_def_MatrixDeterminant.pbtxt | 9 + .../python_api/api_def_MatrixDiag.pbtxt | 9 + .../python_api/api_def_MatrixDiagPart.pbtxt | 9 + .../python_api/api_def_MatrixInverse.pbtxt | 9 + .../python_api/api_def_MatrixSetDiag.pbtxt | 9 + .../python_api/api_def_MatrixSolve.pbtxt | 9 + .../python_api/api_def_MatrixSolveLs.pbtxt | 4 + .../api_def_MatrixTriangularSolve.pbtxt | 9 + .../core/api_def/python_api/api_def_Max.pbtxt | 4 + .../api_def/python_api/api_def_MaxPool.pbtxt | 4 + .../python_api/api_def_MaxPool3DGrad.pbtxt | 4 + .../api_def_MaxPool3DGradGrad.pbtxt | 4 + .../python_api/api_def_MaxPoolGradGrad.pbtxt | 4 + .../api_def_MaxPoolGradGradWithArgmax.pbtxt | 4 + .../python_api/api_def_MaxPoolV2.pbtxt | 4 + .../api_def_MaxPoolWithArgmax.pbtxt | 6 + .../api_def/python_api/api_def_Mean.pbtxt | 4 + .../api_def/python_api/api_def_Merge.pbtxt | 4 + .../python_api/api_def_MergeSummary.pbtxt | 4 + .../core/api_def/python_api/api_def_Min.pbtxt | 4 + .../python_api/api_def_MirrorPad.pbtxt | 4 + .../core/api_def/python_api/api_def_Mul.pbtxt | 4 + .../api_def_MutableDenseHashTable.pbtxt | 4 + .../api_def_MutableDenseHashTableV2.pbtxt | 4 + .../python_api/api_def_MutableHashTable.pbtxt | 4 + .../api_def_MutableHashTableOfTensors.pbtxt | 4 + .../api_def_MutableHashTableOfTensorsV2.pbtxt | 4 + .../api_def_MutableHashTableV2.pbtxt | 4 + .../core/api_def/python_api/api_def_N.pbtxt | 16 - .../core/api_def/python_api/api_def_Neg.pbtxt | 4 + .../api_def/python_api/api_def_NegTrain.pbtxt | 4 + .../api_def_NonMaxSuppression.pbtxt | 4 + .../api_def_NonMaxSuppressionV2.pbtxt | 4 + .../{api_def_O.pbtxt => api_def_OneHot.pbtxt} | 0 .../core/api_def/python_api/api_def_P.pbtxt | 68 - .../api_def/python_api/api_def_Pack.pbtxt | 4 + .../core/api_def/python_api/api_def_Pad.pbtxt | 4 + .../api_def/python_api/api_def_PadV2.pbtxt | 4 + .../python_api/api_def_PaddingFIFOQueue.pbtxt | 4 + .../api_def_PaddingFIFOQueueV2.pbtxt | 4 + .../python_api/api_def_ParallelConcat.pbtxt | 4 + ...api_def_ParameterizedTruncatedNormal.pbtxt | 4 + .../python_api/api_def_ParseExample.pbtxt | 4 + .../api_def_ParseSingleSequenceExample.pbtxt | 4 + .../python_api/api_def_Placeholder.pbtxt | 4 + .../core/api_def/python_api/api_def_Pow.pbtxt | 4 + .../api_def/python_api/api_def_Print.pbtxt | 4 + .../python_api/api_def_PriorityQueue.pbtxt | 4 + .../python_api/api_def_PriorityQueueV2.pbtxt | 4 + .../api_def/python_api/api_def_Prod.pbtxt | 4 + .../api_def/python_api/api_def_PyFunc.pbtxt | 4 + .../python_api/api_def_PyFuncStateless.pbtxt | 4 + .../core/api_def/python_api/api_def_Q.pbtxt | 83 - .../core/api_def/python_api/api_def_Qr.pbtxt | 9 + .../python_api/api_def_QuantizedAvgPool.pbtxt | 6 + .../python_api/api_def_QuantizedMaxPool.pbtxt | 6 + .../python_api/api_def_QuantizedReluX.pbtxt | 6 + .../python_api/api_def_QueueClose.pbtxt | 4 + .../python_api/api_def_QueueCloseV2.pbtxt | 4 + .../python_api/api_def_QueueDequeue.pbtxt | 4 + .../python_api/api_def_QueueDequeueMany.pbtxt | 4 + .../api_def_QueueDequeueManyV2.pbtxt | 4 + .../python_api/api_def_QueueDequeueUpTo.pbtxt | 4 + .../api_def_QueueDequeueUpToV2.pbtxt | 4 + .../python_api/api_def_QueueDequeueV2.pbtxt | 4 + .../python_api/api_def_QueueEnqueue.pbtxt | 4 + .../python_api/api_def_QueueEnqueueMany.pbtxt | 4 + .../api_def_QueueEnqueueManyV2.pbtxt | 4 + .../python_api/api_def_QueueEnqueueV2.pbtxt | 4 + .../python_api/api_def_QueueSize.pbtxt | 4 + .../python_api/api_def_QueueSizeV2.pbtxt | 4 + .../core/api_def/python_api/api_def_R.pbtxt | 192 -- .../api_def/python_api/api_def_RGBToHSV.pbtxt | 6 + .../python_api/api_def_RandomCrop.pbtxt | 4 + .../python_api/api_def_RandomGamma.pbtxt | 4 + .../python_api/api_def_RandomPoisson.pbtxt | 4 + .../python_api/api_def_RandomShuffle.pbtxt | 4 + .../api_def_RandomShuffleQueue.pbtxt | 4 + .../api_def_RandomShuffleQueueV2.pbtxt | 4 + .../api_def_RandomStandardNormal.pbtxt | 4 + .../python_api/api_def_RandomUniform.pbtxt | 4 + .../python_api/api_def_RandomUniformInt.pbtxt | 4 + .../api_def/python_api/api_def_Range.pbtxt | 4 + .../api_def_ReaderNumRecordsProduced.pbtxt | 4 + .../api_def_ReaderNumRecordsProducedV2.pbtxt | 4 + .../api_def_ReaderNumWorkUnitsCompleted.pbtxt | 4 + ...pi_def_ReaderNumWorkUnitsCompletedV2.pbtxt | 4 + .../python_api/api_def_ReaderRead.pbtxt | 4 + .../python_api/api_def_ReaderReadUpTo.pbtxt | 4 + .../python_api/api_def_ReaderReadUpToV2.pbtxt | 4 + .../python_api/api_def_ReaderReadV2.pbtxt | 4 + .../python_api/api_def_ReaderReset.pbtxt | 4 + .../python_api/api_def_ReaderResetV2.pbtxt | 4 + .../api_def_ReaderRestoreState.pbtxt | 4 + .../api_def_ReaderRestoreStateV2.pbtxt | 4 + .../api_def_ReaderSerializeState.pbtxt | 4 + .../api_def_ReaderSerializeStateV2.pbtxt | 4 + .../api_def/python_api/api_def_RealDiv.pbtxt | 4 + .../api_def/python_api/api_def_Relu.pbtxt | 6 + .../api_def/python_api/api_def_Relu6.pbtxt | 4 + .../python_api/api_def_ResizeArea.pbtxt | 6 + .../python_api/api_def_ResizeBicubic.pbtxt | 6 + .../python_api/api_def_ResizeBilinear.pbtxt | 6 + .../api_def_ResizeNearestNeighbor.pbtxt | 6 + .../api_def/python_api/api_def_Restore.pbtxt | 4 + .../python_api/api_def_RestoreSlice.pbtxt | 4 + .../api_def/python_api/api_def_Reverse.pbtxt | 4 + .../python_api/api_def_ReverseV2.pbtxt | 6 + .../python_api/api_def_RightShift.pbtxt | 6 + .../core/api_def/python_api/api_def_S.pbtxt | 252 -- .../api_def_SampleDistortedBoundingBox.pbtxt | 4 + ...api_def_SampleDistortedBoundingBoxV2.pbtxt | 4 + .../api_def/python_api/api_def_Save.pbtxt | 4 + .../python_api/api_def_SaveSlices.pbtxt | 4 + .../python_api/api_def_ScalarSummary.pbtxt | 4 + .../python_api/api_def_SdcaFprint.pbtxt | 6 + .../python_api/api_def_SdcaOptimizer.pbtxt | 6 + .../python_api/api_def_SdcaShrinkL1.pbtxt | 6 + .../api_def/python_api/api_def_Select.pbtxt | 4 + .../python_api/api_def_SelfAdjointEig.pbtxt | 4 + .../python_api/api_def_SelfAdjointEigV2.pbtxt | 4 + .../api_def/python_api/api_def_Selu.pbtxt | 6 + .../api_def_SerializeManySparse.pbtxt | 4 + .../python_api/api_def_SerializeSparse.pbtxt | 4 + .../python_api/api_def_ShardedFilename.pbtxt | 4 + .../python_api/api_def_ShardedFilespec.pbtxt | 4 + .../api_def/python_api/api_def_Sigmoid.pbtxt | 4 + .../api_def/python_api/api_def_Skipgram.pbtxt | 4 + .../api_def/python_api/api_def_Slice.pbtxt | 4 + .../api_def/python_api/api_def_Softmax.pbtxt | 4 + ...pi_def_SoftmaxCrossEntropyWithLogits.pbtxt | 4 + .../api_def/python_api/api_def_Softplus.pbtxt | 6 + .../api_def/python_api/api_def_Softsign.pbtxt | 6 + .../python_api/api_def_SpaceToBatch.pbtxt | 4 + .../python_api/api_def_SparseAdd.pbtxt | 4 + .../python_api/api_def_SparseAddGrad.pbtxt | 4 + .../python_api/api_def_SparseConcat.pbtxt | 4 + .../python_api/api_def_SparseCross.pbtxt | 4 + .../api_def_SparseFillEmptyRows.pbtxt | 4 + .../api_def_SparseFillEmptyRowsGrad.pbtxt | 4 + .../python_api/api_def_SparseMatMul.pbtxt | 4 + .../python_api/api_def_SparseReorder.pbtxt | 4 + .../python_api/api_def_SparseReshape.pbtxt | 4 + ..._SparseSoftmaxCrossEntropyWithLogits.pbtxt | 4 + .../python_api/api_def_SparseSplit.pbtxt | 4 + .../api_def_SparseTensorDenseAdd.pbtxt | 4 + .../api_def_SparseTensorDenseMatMul.pbtxt | 4 + .../python_api/api_def_SparseToDense.pbtxt | 4 + .../api_def/python_api/api_def_Split.pbtxt | 4 + .../api_def/python_api/api_def_SplitV.pbtxt | 4 + .../api_def/python_api/api_def_Squeeze.pbtxt | 4 + .../api_def/python_api/api_def_Stack.pbtxt | 4 + .../python_api/api_def_StackClose.pbtxt | 4 + .../python_api/api_def_StackCloseV2.pbtxt | 4 + .../api_def/python_api/api_def_StackPop.pbtxt | 4 + .../python_api/api_def_StackPopV2.pbtxt | 4 + .../python_api/api_def_StackPush.pbtxt | 4 + .../python_api/api_def_StackPushV2.pbtxt | 4 + .../api_def/python_api/api_def_StackV2.pbtxt | 4 + .../python_api/api_def_StringSplit.pbtxt | 4 + .../core/api_def/python_api/api_def_Sub.pbtxt | 4 + .../core/api_def/python_api/api_def_Sum.pbtxt | 4 + .../core/api_def/python_api/api_def_Svd.pbtxt | 4 + .../api_def/python_api/api_def_Switch.pbtxt | 4 + .../python_api/api_def_SymbolicGradient.pbtxt | 4 + .../core/api_def/python_api/api_def_T.pbtxt | 196 -- .../python_api/api_def_TFRecordReader.pbtxt | 4 + .../python_api/api_def_TFRecordReaderV2.pbtxt | 4 + ...api_def_TakeManySparseFromTensorsMap.pbtxt | 4 + .../api_def/python_api/api_def_Tanh.pbtxt | 4 + .../api_def_TemporaryVariable.pbtxt | 4 + .../python_api/api_def_TensorArray.pbtxt | 4 + .../python_api/api_def_TensorArrayClose.pbtxt | 4 + .../api_def_TensorArrayCloseV2.pbtxt | 4 + .../api_def_TensorArrayCloseV3.pbtxt | 4 + .../api_def_TensorArrayConcat.pbtxt | 4 + .../api_def_TensorArrayConcatV2.pbtxt | 4 + .../api_def_TensorArrayConcatV3.pbtxt | 4 + .../api_def_TensorArrayGather.pbtxt | 4 + .../api_def_TensorArrayGatherV2.pbtxt | 4 + .../api_def_TensorArrayGatherV3.pbtxt | 4 + .../python_api/api_def_TensorArrayGrad.pbtxt | 4 + .../api_def_TensorArrayGradV2.pbtxt | 4 + .../api_def_TensorArrayGradV3.pbtxt | 4 + .../python_api/api_def_TensorArrayPack.pbtxt | 4 + .../python_api/api_def_TensorArrayRead.pbtxt | 4 + .../api_def_TensorArrayReadV2.pbtxt | 4 + .../api_def_TensorArrayReadV3.pbtxt | 4 + .../api_def_TensorArrayScatter.pbtxt | 4 + .../api_def_TensorArrayScatterV2.pbtxt | 4 + .../api_def_TensorArrayScatterV3.pbtxt | 4 + .../python_api/api_def_TensorArraySize.pbtxt | 4 + .../api_def_TensorArraySizeV2.pbtxt | 4 + .../api_def_TensorArraySizeV3.pbtxt | 4 + .../python_api/api_def_TensorArraySplit.pbtxt | 4 + .../api_def_TensorArraySplitV2.pbtxt | 4 + .../api_def_TensorArraySplitV3.pbtxt | 4 + .../api_def_TensorArrayUnpack.pbtxt | 4 + .../python_api/api_def_TensorArrayV2.pbtxt | 4 + .../python_api/api_def_TensorArrayV3.pbtxt | 4 + .../python_api/api_def_TensorArrayWrite.pbtxt | 4 + .../api_def_TensorArrayWriteV2.pbtxt | 4 + .../api_def_TensorArrayWriteV3.pbtxt | 4 + .../python_api/api_def_TensorSummary.pbtxt | 4 + .../python_api/api_def_TensorSummaryV2.pbtxt | 4 + .../python_api/api_def_TextLineReader.pbtxt | 4 + .../python_api/api_def_TextLineReaderV2.pbtxt | 4 + ..._ThreadUnsafeUnigramCandidateSampler.pbtxt | 4 + .../api_def/python_api/api_def_TileGrad.pbtxt | 4 + .../api_def/python_api/api_def_TopK.pbtxt | 4 + .../api_def/python_api/api_def_TopKV2.pbtxt | 4 + .../python_api/api_def_TruncateDiv.pbtxt | 4 + .../python_api/api_def_TruncateMod.pbtxt | 4 + .../python_api/api_def_TruncatedNormal.pbtxt | 4 + ... => api_def_UniformCandidateSampler.pbtxt} | 4 - .../api_def/python_api/api_def_Unpack.pbtxt | 4 + .../api_def/python_api/api_def_Variable.pbtxt | 4 + ...i_def_V.pbtxt => api_def_VariableV2.pbtxt} | 4 - .../python_api/api_def_WholeFileReader.pbtxt | 4 + ....pbtxt => api_def_WholeFileReaderV2.pbtxt} | 4 - ...pi_def_Z.pbtxt => api_def_ZerosLike.pbtxt} | 0 .../tools/api/tests/api_compatibility_test.py | 76 +- 1157 files changed, 29252 insertions(+), 13043 deletions(-) delete mode 100644 tensorflow/core/api_def/base_api/api_def_A.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Abort.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Abs.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_AccumulateNV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_AccumulatorApplyGradient.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_AccumulatorNumAccumulated.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_AccumulatorSetGlobalStep.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_AccumulatorTakeGradient.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Acos.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Acosh.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Add.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_AddManySparseToTensorsMap.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_AddN.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_AddSparseToTensorsMap.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_AddV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_AdjustContrast.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_AdjustContrastv2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_AdjustHue.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_AdjustSaturation.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_All.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_AllCandidateSampler.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Angle.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Any.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ApplyAdadelta.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ApplyAdagrad.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ApplyAdagradDA.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ApplyAdam.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ApplyCenteredRMSProp.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ApplyFtrl.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ApplyFtrlV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ApplyGradientDescent.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ApplyMomentum.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ApplyProximalAdagrad.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ApplyProximalGradientDescent.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ApplyRMSProp.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ApproximateEqual.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ArgMax.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ArgMin.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_AsString.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Asin.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Asinh.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Assert.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Assign.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_AssignAdd.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_AssignAddVariableOp.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_AssignSub.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_AssignSubVariableOp.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_AssignVariableOp.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Atan.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Atan2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Atanh.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_AudioSpectrogram.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_AudioSummary.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_AudioSummaryV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_AvgPool.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_AvgPool3D.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_AvgPool3DGrad.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_AvgPoolGrad.pbtxt delete mode 100644 tensorflow/core/api_def/base_api/api_def_B.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Barrier.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_BarrierClose.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_BarrierIncompleteSize.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_BarrierInsertMany.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_BarrierReadySize.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_BarrierTakeMany.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_BatchCholesky.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_BatchCholeskyGrad.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_BatchDataset.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_BatchFFT.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_BatchFFT2D.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_BatchFFT3D.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_BatchIFFT.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_BatchIFFT2D.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_BatchIFFT3D.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_BatchMatMul.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_BatchMatrixBandPart.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_BatchMatrixDeterminant.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_BatchMatrixDiag.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_BatchMatrixDiagPart.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_BatchMatrixInverse.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_BatchMatrixSetDiag.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_BatchMatrixSolve.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_BatchMatrixSolveLs.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_BatchMatrixTriangularSolve.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_BatchNormWithGlobalNormalization.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_BatchNormWithGlobalNormalizationGrad.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_BatchSelfAdjointEig.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_BatchSelfAdjointEigV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_BatchSvd.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_BatchToSpace.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_BatchToSpaceND.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Betainc.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_BiasAdd.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_BiasAddGrad.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_BiasAddV1.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Bincount.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Bitcast.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_BitwiseAnd.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_BitwiseOr.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_BitwiseXor.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_BroadcastArgs.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_BroadcastGradientArgs.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Bucketize.pbtxt delete mode 100644 tensorflow/core/api_def/base_api/api_def_C.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_CTCBeamSearchDecoder.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_CTCGreedyDecoder.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_CTCLoss.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_CacheDataset.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Cast.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Ceil.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_CheckNumerics.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Cholesky.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_CholeskyGrad.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_CompareAndBitpack.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Complex.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ComplexAbs.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ComputeAccidentalHits.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Concat.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ConcatOffset.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ConcatV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ConcatenateDataset.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ConditionalAccumulator.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Conj.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ConjugateTranspose.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Const.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ControlTrigger.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Conv2D.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Conv2DBackpropFilter.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Conv2DBackpropInput.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Conv3D.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Conv3DBackpropFilter.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Conv3DBackpropFilterV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Conv3DBackpropInput.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Conv3DBackpropInputV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Cos.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Cosh.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_CountUpTo.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_CropAndResize.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_CropAndResizeGradBoxes.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_CropAndResizeGradImage.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Cross.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Cumprod.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Cumsum.pbtxt delete mode 100644 tensorflow/core/api_def/base_api/api_def_D.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_DatasetToSingleElement.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_DebugGradientIdentity.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_DecodeAndCropJpeg.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_DecodeBase64.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_DecodeBmp.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_DecodeCSV.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_DecodeGif.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_DecodeJSONExample.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_DecodeJpeg.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_DecodePng.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_DecodeRaw.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_DecodeWav.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_DeleteSessionTensor.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_DenseToDenseSetOperation.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_DenseToSparseBatchDataset.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_DenseToSparseSetOperation.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_DepthToSpace.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_DepthwiseConv2dNative.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_DepthwiseConv2dNativeBackpropFilter.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_DepthwiseConv2dNativeBackpropInput.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Dequantize.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_DeserializeIterator.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_DeserializeManySparse.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_DestroyResourceOp.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_DestroyTemporaryVariable.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Diag.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_DiagPart.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Digamma.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Dilation2D.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Dilation2DBackpropFilter.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Dilation2DBackpropInput.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Div.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_DrawBoundingBoxes.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_DynamicPartition.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_DynamicStitch.pbtxt delete mode 100644 tensorflow/core/api_def/base_api/api_def_E.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_EditDistance.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Elu.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_EluGrad.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_EncodeBase64.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_EncodeJpeg.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_EncodePng.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_EncodeWav.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Enter.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Equal.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Erf.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Erfc.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Exit.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Exp.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ExpandDims.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Expm1.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ExtractGlimpse.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ExtractImagePatches.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ExtractJpegShape.pbtxt delete mode 100644 tensorflow/core/api_def/base_api/api_def_F.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_FFT.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_FFT2D.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_FFT3D.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_FIFOQueue.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_FIFOQueueV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Fact.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_FakeQuantWithMinMaxArgs.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_FakeQuantWithMinMaxArgsGradient.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_FakeQuantWithMinMaxVars.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_FakeQuantWithMinMaxVarsGradient.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_FakeQuantWithMinMaxVarsPerChannel.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_FakeQuantWithMinMaxVarsPerChannelGradient.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_FakeQueue.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Fill.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_FilterDataset.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_FixedLengthRecordDataset.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_FixedLengthRecordReader.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_FixedLengthRecordReaderV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_FixedUnigramCandidateSampler.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_FlatMapDataset.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Floor.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_FloorDiv.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_FloorMod.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_FractionalAvgPool.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_FractionalAvgPoolGrad.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_FractionalMaxPool.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_FractionalMaxPoolGrad.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_FusedBatchNorm.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_FusedBatchNormGrad.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_FusedBatchNormGradV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_FusedBatchNormV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_FusedPadConv2D.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_FusedResizeAndPadConv2D.pbtxt delete mode 100644 tensorflow/core/api_def/base_api/api_def_G.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Gather.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_GatherNd.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_GatherV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_GenerateVocabRemapping.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_GetSessionHandle.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_GetSessionHandleV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_GetSessionTensor.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Greater.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_GreaterEqual.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_GroupByWindowDataset.pbtxt delete mode 100644 tensorflow/core/api_def/base_api/api_def_H.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_HSVToRGB.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_HashTable.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_HashTableV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_HistogramFixedWidth.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_HistogramSummary.pbtxt delete mode 100644 tensorflow/core/api_def/base_api/api_def_I.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_IFFT.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_IFFT2D.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_IFFT3D.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_IRFFT.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_IRFFT2D.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_IRFFT3D.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Identity.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_IdentityN.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_IdentityReader.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_IdentityReaderV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Igamma.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Igammac.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_IgnoreErrorsDataset.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Imag.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ImageSummary.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ImmutableConst.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_InTopK.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_InTopKV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_InitializeTable.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_InitializeTableFromTextFile.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_InitializeTableFromTextFileV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_InitializeTableV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_InterleaveDataset.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Inv.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_InvGrad.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Invert.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_InvertPermutation.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_IsFinite.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_IsInf.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_IsNan.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_IsVariableInitialized.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Iterator.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_IteratorFromStringHandle.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_IteratorGetNext.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_IteratorToStringHandle.pbtxt delete mode 100644 tensorflow/core/api_def/base_api/api_def_L.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_L2Loss.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_LMDBReader.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_LRN.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_LRNGrad.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_LearnedUnigramCandidateSampler.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_LeftShift.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Less.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_LessEqual.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Lgamma.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_LinSpace.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ListDiff.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_LoadAndRemapMatrix.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Log.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Log1p.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_LogMatrixDeterminant.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_LogSoftmax.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_LogUniformCandidateSampler.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_LogicalAnd.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_LogicalNot.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_LogicalOr.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_LookupTableExport.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_LookupTableExportV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_LookupTableFind.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_LookupTableFindV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_LookupTableImport.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_LookupTableImportV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_LookupTableInsert.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_LookupTableInsertV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_LookupTableSize.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_LookupTableSizeV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_LoopCond.pbtxt delete mode 100644 tensorflow/core/api_def/base_api/api_def_M.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_MakeIterator.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_MapAndBatchDataset.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_MapClear.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_MapDataset.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_MapIncompleteSize.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_MapPeek.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_MapSize.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_MapStage.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_MapUnstage.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_MapUnstageNoKey.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_MatMul.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_MatchingFiles.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_MatrixBandPart.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_MatrixDeterminant.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_MatrixDiag.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_MatrixDiagPart.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_MatrixInverse.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_MatrixSetDiag.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_MatrixSolve.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_MatrixSolveLs.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_MatrixTriangularSolve.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Max.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_MaxPool.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_MaxPool3D.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_MaxPool3DGrad.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_MaxPool3DGradGrad.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_MaxPoolGrad.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_MaxPoolGradGrad.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_MaxPoolGradGradV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_MaxPoolGradGradWithArgmax.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_MaxPoolGradV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_MaxPoolGradWithArgmax.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_MaxPoolV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_MaxPoolWithArgmax.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Maximum.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Mean.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Merge.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_MergeSummary.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_MergeV2Checkpoints.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Mfcc.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Min.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Minimum.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_MirrorPad.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_MirrorPadGrad.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Mod.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Mul.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Multinomial.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_MutableDenseHashTable.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_MutableDenseHashTableV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_MutableHashTable.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_MutableHashTableOfTensors.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_MutableHashTableOfTensorsV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_MutableHashTableV2.pbtxt delete mode 100644 tensorflow/core/api_def/base_api/api_def_N.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Neg.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_NegTrain.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_NextIteration.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_NoOp.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_NonMaxSuppression.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_NonMaxSuppressionV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_NotEqual.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_NthElement.pbtxt delete mode 100644 tensorflow/core/api_def/base_api/api_def_O.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_OneHot.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_OneShotIterator.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_OnesLike.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_OrderedMapClear.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_OrderedMapIncompleteSize.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_OrderedMapPeek.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_OrderedMapSize.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_OrderedMapStage.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_OrderedMapUnstage.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_OrderedMapUnstageNoKey.pbtxt delete mode 100644 tensorflow/core/api_def/base_api/api_def_P.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Pack.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Pad.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_PadV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_PaddedBatchDataset.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_PaddingFIFOQueue.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_PaddingFIFOQueueV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ParallelConcat.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ParallelDynamicStitch.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ParallelInterleaveDataset.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ParallelMapDataset.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ParameterizedTruncatedNormal.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ParseExample.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ParseSingleSequenceExample.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ParseTensor.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Placeholder.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_PlaceholderV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_PlaceholderWithDefault.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Polygamma.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_PopulationCount.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Pow.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_PrefetchDataset.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_PreventGradient.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Print.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_PriorityQueue.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_PriorityQueueV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Prod.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_PyFunc.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_PyFuncStateless.pbtxt delete mode 100644 tensorflow/core/api_def/base_api/api_def_Q.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Qr.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_QuantizeAndDequantize.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_QuantizeAndDequantizeV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_QuantizeAndDequantizeV3.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_QuantizeDownAndShrinkRange.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_QuantizeV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_QuantizedAdd.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_QuantizedAvgPool.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_QuantizedBatchNormWithGlobalNormalization.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_QuantizedBiasAdd.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_QuantizedConcat.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_QuantizedConv2D.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_QuantizedInstanceNorm.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_QuantizedMatMul.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_QuantizedMaxPool.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_QuantizedMul.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_QuantizedRelu.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_QuantizedRelu6.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_QuantizedReluX.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_QuantizedReshape.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_QuantizedResizeBilinear.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_QueueClose.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_QueueCloseV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_QueueDequeue.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_QueueDequeueMany.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_QueueDequeueManyV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_QueueDequeueUpTo.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_QueueDequeueUpToV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_QueueDequeueV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_QueueEnqueue.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_QueueEnqueueMany.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_QueueEnqueueManyV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_QueueEnqueueV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_QueueIsClosed.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_QueueIsClosedV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_QueueSize.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_QueueSizeV2.pbtxt delete mode 100644 tensorflow/core/api_def/base_api/api_def_R.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_RFFT.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_RFFT2D.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_RFFT3D.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_RGBToHSV.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_RandomCrop.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_RandomGamma.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_RandomPoisson.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_RandomPoissonV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_RandomShuffle.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_RandomShuffleQueue.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_RandomShuffleQueueV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_RandomStandardNormal.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_RandomUniform.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_RandomUniformInt.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Range.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_RangeDataset.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Rank.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ReadFile.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ReadVariableOp.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ReaderNumRecordsProduced.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ReaderNumRecordsProducedV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ReaderNumWorkUnitsCompleted.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ReaderNumWorkUnitsCompletedV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ReaderRead.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ReaderReadUpTo.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ReaderReadUpToV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ReaderReadV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ReaderReset.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ReaderResetV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ReaderRestoreState.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ReaderRestoreStateV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ReaderSerializeState.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ReaderSerializeStateV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Real.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_RealDiv.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Reciprocal.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ReciprocalGrad.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_RecordInput.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ReduceJoin.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_RefEnter.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_RefExit.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_RefIdentity.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_RefMerge.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_RefNextIteration.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_RefSelect.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_RefSwitch.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Relu.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Relu6.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Relu6Grad.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ReluGrad.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_RemoteCall.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_RemoteFusedGraphExecute.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_RepeatDataset.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_RequantizationRange.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Requantize.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Reshape.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ResizeArea.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ResizeBicubic.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ResizeBicubicGrad.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ResizeBilinear.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ResizeBilinearGrad.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ResizeNearestNeighbor.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ResizeNearestNeighborGrad.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ResourceApplyAdadelta.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ResourceApplyAdagrad.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ResourceApplyAdagradDA.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ResourceApplyAdam.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ResourceApplyCenteredRMSProp.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ResourceApplyFtrl.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ResourceApplyFtrlV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ResourceApplyGradientDescent.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ResourceApplyMomentum.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ResourceApplyProximalAdagrad.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ResourceApplyProximalGradientDescent.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ResourceApplyRMSProp.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ResourceCountUpTo.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ResourceGather.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ResourceScatterAdd.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ResourceScatterUpdate.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ResourceSparseApplyAdadelta.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ResourceSparseApplyAdagrad.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ResourceSparseApplyAdagradDA.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ResourceSparseApplyCenteredRMSProp.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ResourceSparseApplyFtrl.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ResourceSparseApplyFtrlV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ResourceSparseApplyMomentum.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ResourceSparseApplyProximalAdagrad.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ResourceSparseApplyProximalGradientDescent.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ResourceSparseApplyRMSProp.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ResourceStridedSliceAssign.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Restore.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_RestoreSlice.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_RestoreV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Reverse.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ReverseSequence.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ReverseV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_RightShift.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Rint.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Round.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Rsqrt.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_RsqrtGrad.pbtxt delete mode 100644 tensorflow/core/api_def/base_api/api_def_S.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SampleDistortedBoundingBox.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SampleDistortedBoundingBoxV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Save.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SaveSlices.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SaveV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ScalarSummary.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ScanDataset.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ScatterAdd.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ScatterDiv.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ScatterMul.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ScatterNd.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ScatterNdAdd.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ScatterNdNonAliasingAdd.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ScatterNdSub.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ScatterNdUpdate.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ScatterSub.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ScatterUpdate.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SdcaFprint.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SdcaOptimizer.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SdcaShrinkL1.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SegmentMax.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SegmentMean.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SegmentMin.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SegmentProd.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SegmentSum.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Select.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SelfAdjointEig.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SelfAdjointEigV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Selu.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SeluGrad.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SerializeIterator.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SerializeManySparse.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SerializeSparse.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SerializeTensor.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SetSize.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Shape.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ShapeN.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ShardedFilename.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ShardedFilespec.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ShuffleDataset.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Sigmoid.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SigmoidGrad.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Sign.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Sin.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Sinh.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Size.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SkipDataset.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Skipgram.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Slice.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Softmax.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SoftmaxCrossEntropyWithLogits.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Softplus.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SoftplusGrad.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Softsign.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SoftsignGrad.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SpaceToBatch.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SpaceToBatchND.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SpaceToDepth.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SparseAccumulatorApplyGradient.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SparseAccumulatorTakeGradient.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SparseAdd.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SparseAddGrad.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SparseApplyAdadelta.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SparseApplyAdagrad.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SparseApplyAdagradDA.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SparseApplyCenteredRMSProp.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SparseApplyFtrl.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SparseApplyFtrlV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SparseApplyMomentum.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SparseApplyProximalAdagrad.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SparseApplyProximalGradientDescent.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SparseApplyRMSProp.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SparseConcat.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SparseConditionalAccumulator.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SparseCross.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SparseDenseCwiseAdd.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SparseDenseCwiseDiv.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SparseDenseCwiseMul.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SparseFillEmptyRows.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SparseFillEmptyRowsGrad.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SparseMatMul.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SparseReduceMax.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SparseReduceMaxSparse.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SparseReduceSum.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SparseReduceSumSparse.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SparseReorder.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SparseReshape.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SparseSegmentMean.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SparseSegmentMeanGrad.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SparseSegmentSqrtN.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SparseSegmentSqrtNGrad.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SparseSegmentSum.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SparseSlice.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SparseSoftmax.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SparseSoftmaxCrossEntropyWithLogits.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SparseSparseMaximum.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SparseSparseMinimum.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SparseSplit.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SparseTensorDenseAdd.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SparseTensorDenseMatMul.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SparseTensorSliceDataset.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SparseToDense.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SparseToSparseSetOperation.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Split.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SplitV.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SqlDataset.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Sqrt.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SqrtGrad.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Square.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SquaredDifference.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Squeeze.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Stack.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_StackClose.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_StackCloseV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_StackPop.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_StackPopV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_StackPush.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_StackPushV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_StackV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Stage.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_StageClear.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_StagePeek.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_StageSize.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_StatelessRandomNormal.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_StatelessRandomUniform.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_StatelessTruncatedNormal.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_StopGradient.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_StridedSlice.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_StridedSliceAssign.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_StridedSliceGrad.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_StringJoin.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_StringSplit.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_StringToHashBucket.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_StringToHashBucketFast.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_StringToHashBucketStrong.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_StringToNumber.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Sub.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Substr.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Sum.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Svd.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Switch.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_SymbolicGradient.pbtxt delete mode 100644 tensorflow/core/api_def/base_api/api_def_T.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_TFRecordDataset.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_TFRecordReader.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_TFRecordReaderV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_TakeDataset.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_TakeManySparseFromTensorsMap.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Tan.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Tanh.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_TanhGrad.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_TemporaryVariable.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_TensorArray.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_TensorArrayClose.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_TensorArrayCloseV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_TensorArrayCloseV3.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_TensorArrayConcat.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_TensorArrayConcatV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_TensorArrayConcatV3.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_TensorArrayGather.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_TensorArrayGatherV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_TensorArrayGatherV3.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_TensorArrayGrad.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_TensorArrayGradV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_TensorArrayGradV3.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_TensorArrayPack.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_TensorArrayRead.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_TensorArrayReadV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_TensorArrayReadV3.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_TensorArrayScatter.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_TensorArrayScatterV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_TensorArrayScatterV3.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_TensorArraySize.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_TensorArraySizeV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_TensorArraySizeV3.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_TensorArraySplit.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_TensorArraySplitV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_TensorArraySplitV3.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_TensorArrayUnpack.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_TensorArrayV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_TensorArrayV3.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_TensorArrayWrite.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_TensorArrayWriteV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_TensorArrayWriteV3.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_TensorDataset.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_TensorSliceDataset.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_TensorSummary.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_TensorSummaryV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_TextLineDataset.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_TextLineReader.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_TextLineReaderV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ThreadUnsafeUnigramCandidateSampler.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Tile.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_TileGrad.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_TopK.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_TopKV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Transpose.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_TruncateDiv.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_TruncateMod.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_TruncatedNormal.pbtxt delete mode 100644 tensorflow/core/api_def/base_api/api_def_U.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_UniformCandidateSampler.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Unique.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_UniqueWithCounts.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Unpack.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_UnsortedSegmentMax.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_UnsortedSegmentSum.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Unstage.pbtxt delete mode 100644 tensorflow/core/api_def/base_api/api_def_V.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_VarHandleOp.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_VarIsInitializedOp.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Variable.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_VariableShape.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_VariableV2.pbtxt rename tensorflow/core/api_def/base_api/{api_def_W.pbtxt => api_def_Where.pbtxt} (51%) create mode 100644 tensorflow/core/api_def/base_api/api_def_WholeFileReader.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_WholeFileReaderV2.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_WriteFile.pbtxt delete mode 100644 tensorflow/core/api_def/base_api/api_def_Z.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ZerosLike.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_Zeta.pbtxt create mode 100644 tensorflow/core/api_def/base_api/api_def_ZipDataset.pbtxt delete mode 100644 tensorflow/core/api_def/python_api/api_def_A.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_Abs.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_AccumulateNV2.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_AddManySparseToTensorsMap.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_AddN.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_AddSparseToTensorsMap.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_AddV2.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_AdjustContrastv2.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_All.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_AllCandidateSampler.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_Any.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_Assert.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_AudioSummary.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_AudioSummaryV2.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_AvgPool.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_AvgPool3DGrad.pbtxt delete mode 100644 tensorflow/core/api_def/python_api/api_def_B.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_Barrier.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_BarrierClose.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_BarrierIncompleteSize.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_BarrierInsertMany.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_BarrierReadySize.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_BarrierTakeMany.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_BatchCholesky.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_BatchCholeskyGrad.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_BatchFFT.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_BatchFFT2D.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_BatchFFT3D.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_BatchIFFT.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_BatchIFFT2D.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_BatchIFFT3D.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_BatchMatMul.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_BatchMatrixDeterminant.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_BatchMatrixInverse.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_BatchMatrixSolve.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_BatchMatrixSolveLs.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_BatchMatrixTriangularSolve.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_BatchNormWithGlobalNormalization.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_BatchNormWithGlobalNormalizationGrad.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_BatchSelfAdjointEig.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_BatchSelfAdjointEigV2.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_BatchSvd.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_BatchToSpace.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_BiasAdd.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_BiasAddV1.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_BitwiseAnd.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_BitwiseOr.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_BitwiseXor.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_BroadcastArgs.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_Bucketize.pbtxt delete mode 100644 tensorflow/core/api_def/python_api/api_def_C.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_CTCBeamSearchDecoder.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_CTCGreedyDecoder.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_CTCLoss.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_Cholesky.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_Complex.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_ComplexAbs.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_ComputeAccidentalHits.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_Concat.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_ConcatOffset.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_ConcatV2.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_Conj.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_ConjugateTranspose.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_Const.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_CropAndResize.pbtxt delete mode 100644 tensorflow/core/api_def/python_api/api_def_D.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_DebugGradientIdentity.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_DecodeAndCropJpeg.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_DecodeBmp.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_DecodeCSV.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_DecodeGif.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_DecodeJpeg.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_DecodePng.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_DeleteSessionTensor.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_DepthwiseConv2dNative.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_DepthwiseConv2dNativeBackpropFilter.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_DepthwiseConv2dNativeBackpropInput.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_DeserializeManySparse.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_DestroyTemporaryVariable.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_DrawBoundingBoxes.pbtxt delete mode 100644 tensorflow/core/api_def/python_api/api_def_E.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_EditDistance.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_Elu.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_EncodeJpeg.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_EncodePng.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_ExpandDims.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_ExtractGlimpse.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_ExtractJpegShape.pbtxt delete mode 100644 tensorflow/core/api_def/python_api/api_def_F.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_FFT.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_FIFOQueue.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_FIFOQueueV2.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_Fact.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_FakeQueue.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_FixedLengthRecordReader.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_FixedLengthRecordReaderV2.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_FixedUnigramCandidateSampler.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_FloorDiv.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_FloorMod.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_FractionalAvgPool.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_FractionalMaxPool.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_FusedBatchNorm.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_FusedBatchNormV2.pbtxt delete mode 100644 tensorflow/core/api_def/python_api/api_def_G.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_GenerateVocabRemapping.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_GetSessionHandle.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_GetSessionHandleV2.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_GetSessionTensor.pbtxt delete mode 100644 tensorflow/core/api_def/python_api/api_def_H.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_HSVToRGB.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_HashTable.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_HashTableV2.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_HistogramFixedWidth.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_HistogramSummary.pbtxt delete mode 100644 tensorflow/core/api_def/python_api/api_def_I.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_IFFT.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_IdentityReader.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_IdentityReaderV2.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_ImageSummary.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_InTopK.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_InTopKV2.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_InitializeTable.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_InitializeTableFromTextFile.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_InitializeTableFromTextFileV2.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_InitializeTableV2.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_Invert.pbtxt delete mode 100644 tensorflow/core/api_def/python_api/api_def_L.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_L2Loss.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_LMDBReader.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_LRN.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_LearnedUnigramCandidateSampler.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_LeftShift.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_LinSpace.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_ListDiff.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_LoadAndRemapMatrix.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_LogMatrixDeterminant.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_LogSoftmax.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_LogUniformCandidateSampler.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_LookupTableExport.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_LookupTableExportV2.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_LookupTableFind.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_LookupTableFindV2.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_LookupTableImport.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_LookupTableImportV2.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_LookupTableInsert.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_LookupTableInsertV2.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_LookupTableSize.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_LookupTableSizeV2.pbtxt delete mode 100644 tensorflow/core/api_def/python_api/api_def_M.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_MatMul.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_MatrixBandPart.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_MatrixDeterminant.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_MatrixDiag.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_MatrixDiagPart.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_MatrixInverse.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_MatrixSetDiag.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_MatrixSolve.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_MatrixSolveLs.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_MatrixTriangularSolve.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_Max.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_MaxPool.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_MaxPool3DGrad.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_MaxPool3DGradGrad.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_MaxPoolGradGrad.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_MaxPoolGradGradWithArgmax.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_MaxPoolV2.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_MaxPoolWithArgmax.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_Mean.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_Merge.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_MergeSummary.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_Min.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_MirrorPad.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_Mul.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_MutableDenseHashTable.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_MutableDenseHashTableV2.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_MutableHashTable.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_MutableHashTableOfTensors.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_MutableHashTableOfTensorsV2.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_MutableHashTableV2.pbtxt delete mode 100644 tensorflow/core/api_def/python_api/api_def_N.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_Neg.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_NegTrain.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_NonMaxSuppression.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_NonMaxSuppressionV2.pbtxt rename tensorflow/core/api_def/python_api/{api_def_O.pbtxt => api_def_OneHot.pbtxt} (100%) delete mode 100644 tensorflow/core/api_def/python_api/api_def_P.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_Pack.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_Pad.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_PadV2.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_PaddingFIFOQueue.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_PaddingFIFOQueueV2.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_ParallelConcat.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_ParameterizedTruncatedNormal.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_ParseExample.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_ParseSingleSequenceExample.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_Placeholder.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_Pow.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_Print.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_PriorityQueue.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_PriorityQueueV2.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_Prod.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_PyFunc.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_PyFuncStateless.pbtxt delete mode 100644 tensorflow/core/api_def/python_api/api_def_Q.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_Qr.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_QuantizedAvgPool.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_QuantizedMaxPool.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_QuantizedReluX.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_QueueClose.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_QueueCloseV2.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_QueueDequeue.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_QueueDequeueMany.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_QueueDequeueManyV2.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_QueueDequeueUpTo.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_QueueDequeueUpToV2.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_QueueDequeueV2.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_QueueEnqueue.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_QueueEnqueueMany.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_QueueEnqueueManyV2.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_QueueEnqueueV2.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_QueueSize.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_QueueSizeV2.pbtxt delete mode 100644 tensorflow/core/api_def/python_api/api_def_R.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_RGBToHSV.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_RandomCrop.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_RandomGamma.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_RandomPoisson.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_RandomShuffle.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_RandomShuffleQueue.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_RandomShuffleQueueV2.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_RandomStandardNormal.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_RandomUniform.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_RandomUniformInt.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_Range.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_ReaderNumRecordsProduced.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_ReaderNumRecordsProducedV2.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_ReaderNumWorkUnitsCompleted.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_ReaderNumWorkUnitsCompletedV2.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_ReaderRead.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_ReaderReadUpTo.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_ReaderReadUpToV2.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_ReaderReadV2.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_ReaderReset.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_ReaderResetV2.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_ReaderRestoreState.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_ReaderRestoreStateV2.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_ReaderSerializeState.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_ReaderSerializeStateV2.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_RealDiv.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_Relu.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_Relu6.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_ResizeArea.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_ResizeBicubic.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_ResizeBilinear.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_ResizeNearestNeighbor.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_Restore.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_RestoreSlice.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_Reverse.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_ReverseV2.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_RightShift.pbtxt delete mode 100644 tensorflow/core/api_def/python_api/api_def_S.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_SampleDistortedBoundingBox.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_SampleDistortedBoundingBoxV2.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_Save.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_SaveSlices.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_ScalarSummary.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_SdcaFprint.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_SdcaOptimizer.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_SdcaShrinkL1.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_Select.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_SelfAdjointEig.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_SelfAdjointEigV2.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_Selu.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_SerializeManySparse.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_SerializeSparse.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_ShardedFilename.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_ShardedFilespec.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_Sigmoid.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_Skipgram.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_Slice.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_Softmax.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_SoftmaxCrossEntropyWithLogits.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_Softplus.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_Softsign.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_SpaceToBatch.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_SparseAdd.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_SparseAddGrad.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_SparseConcat.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_SparseCross.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_SparseFillEmptyRows.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_SparseFillEmptyRowsGrad.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_SparseMatMul.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_SparseReorder.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_SparseReshape.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_SparseSoftmaxCrossEntropyWithLogits.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_SparseSplit.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_SparseTensorDenseAdd.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_SparseTensorDenseMatMul.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_SparseToDense.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_Split.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_SplitV.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_Squeeze.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_Stack.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_StackClose.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_StackCloseV2.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_StackPop.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_StackPopV2.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_StackPush.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_StackPushV2.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_StackV2.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_StringSplit.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_Sub.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_Sum.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_Svd.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_Switch.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_SymbolicGradient.pbtxt delete mode 100644 tensorflow/core/api_def/python_api/api_def_T.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_TFRecordReader.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_TFRecordReaderV2.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_TakeManySparseFromTensorsMap.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_Tanh.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_TemporaryVariable.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_TensorArray.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_TensorArrayClose.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_TensorArrayCloseV2.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_TensorArrayCloseV3.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_TensorArrayConcat.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_TensorArrayConcatV2.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_TensorArrayConcatV3.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_TensorArrayGather.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_TensorArrayGatherV2.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_TensorArrayGatherV3.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_TensorArrayGrad.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_TensorArrayGradV2.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_TensorArrayGradV3.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_TensorArrayPack.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_TensorArrayRead.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_TensorArrayReadV2.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_TensorArrayReadV3.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_TensorArrayScatter.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_TensorArrayScatterV2.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_TensorArrayScatterV3.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_TensorArraySize.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_TensorArraySizeV2.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_TensorArraySizeV3.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_TensorArraySplit.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_TensorArraySplitV2.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_TensorArraySplitV3.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_TensorArrayUnpack.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_TensorArrayV2.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_TensorArrayV3.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_TensorArrayWrite.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_TensorArrayWriteV2.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_TensorArrayWriteV3.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_TensorSummary.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_TensorSummaryV2.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_TextLineReader.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_TextLineReaderV2.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_ThreadUnsafeUnigramCandidateSampler.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_TileGrad.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_TopK.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_TopKV2.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_TruncateDiv.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_TruncateMod.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_TruncatedNormal.pbtxt rename tensorflow/core/api_def/python_api/{api_def_U.pbtxt => api_def_UniformCandidateSampler.pbtxt} (56%) create mode 100644 tensorflow/core/api_def/python_api/api_def_Unpack.pbtxt create mode 100644 tensorflow/core/api_def/python_api/api_def_Variable.pbtxt rename tensorflow/core/api_def/python_api/{api_def_V.pbtxt => api_def_VariableV2.pbtxt} (50%) create mode 100644 tensorflow/core/api_def/python_api/api_def_WholeFileReader.pbtxt rename tensorflow/core/api_def/python_api/{api_def_W.pbtxt => api_def_WholeFileReaderV2.pbtxt} (50%) rename tensorflow/core/api_def/python_api/{api_def_Z.pbtxt => api_def_ZerosLike.pbtxt} (100%) diff --git a/tensorflow/core/api_def/api_test.cc b/tensorflow/core/api_def/api_test.cc index ceeb172fa0..d95d958d5a 100644 --- a/tensorflow/core/api_def/api_test.cc +++ b/tensorflow/core/api_def/api_test.cc @@ -46,92 +46,218 @@ constexpr char kDefaultApiDefDir[] = "tensorflow/core/api_def/base_api"; constexpr char kOverridesFilePath[] = "tensorflow/cc/ops/op_gen_overrides.pbtxt"; -constexpr char kApiDefFileFormat[] = "api_def_%c.pbtxt"; -constexpr char kAlphabet[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; +constexpr char kApiDefFileFormat[] = "api_def_%s.pbtxt"; +constexpr char kApiDefFilePattern[] = "api_def_*.pbtxt"; -// Get map from first character to ApiDefs for ops -// that start with that character. -std::unordered_map GenerateApiDef( - const OpList& ops, const OpGenOverrides& overrides) { +void FillBaseApiDef(ApiDef* api_def, const OpDef& op) { + api_def->set_graph_op_name(op.name()); + // Add arg docs + for (auto& input_arg : op.input_arg()) { + if (!input_arg.description().empty()) { + auto* api_def_in_arg = api_def->add_in_arg(); + api_def_in_arg->set_name(input_arg.name()); + api_def_in_arg->set_description(input_arg.description()); + } + } + for (auto& output_arg : op.output_arg()) { + if (!output_arg.description().empty()) { + auto* api_def_out_arg = api_def->add_out_arg(); + api_def_out_arg->set_name(output_arg.name()); + api_def_out_arg->set_description(output_arg.description()); + } + } + // Add attr docs + for (auto& attr : op.attr()) { + if (!attr.description().empty()) { + auto* api_def_attr = api_def->add_attr(); + api_def_attr->set_name(attr.name()); + api_def_attr->set_description(attr.description()); + } + } + // Add docs + api_def->set_summary(op.summary()); + api_def->set_description(op.description()); +} + +// Checks if arg1 should be before arg2 according to ordering in args. +bool CheckArgBefore(const ApiDef::Arg* arg1, const ApiDef::Arg* arg2, + const protobuf::RepeatedPtrField& args) { + for (auto& arg : args) { + if (arg.name() == arg2->name()) { + return false; + } else if (arg.name() == arg1->name()) { + return true; + } + } + return false; +} + +// Checks if attr1 should be before attr2 according to ordering in op_def. +bool CheckAttrBefore(const ApiDef::Attr* attr1, const ApiDef::Attr* attr2, + const OpDef& op_def) { + for (auto& attr : op_def.attr()) { + if (attr.name() == attr2->name()) { + return false; + } else if (attr.name() == attr1->name()) { + return true; + } + } + return false; +} + +// Applies renames to args. +void ApplyArgOverrides( + protobuf::RepeatedPtrField* args, + const protobuf::RepeatedPtrField& renames, + const protobuf::RepeatedPtrField& op_args, + const string& op_name) { + for (auto& rename : renames) { + // First check if rename is valid. + bool valid = false; + for (const auto& op_arg : op_args) { + if (op_arg.name() == rename.from()) { + valid = true; + } + } + QCHECK(valid) << rename.from() << " is not a valid argument for " + << op_name; + bool found_arg = false; + // If Arg is already in ApiDef, just update it. + for (int i = 0; i < args->size(); ++i) { + auto* arg = args->Mutable(i); + if (arg->name() == rename.from()) { + arg->set_rename_to(rename.to()); + found_arg = true; + break; + } + } + if (!found_arg) { // not in ApiDef, add a new arg. + auto* new_arg = args->Add(); + new_arg->set_name(rename.from()); + new_arg->set_rename_to(rename.to()); + } + } + // We don't really need a specific order here right now. + // However, it is clearer if order follows OpDef. + std::sort(args->pointer_begin(), args->pointer_end(), + [&](ApiDef::Arg* arg1, ApiDef::Arg* arg2) { + return CheckArgBefore(arg1, arg2, op_args); + }); +} + +// Returns existing attribute with the given name if such +// attribute exists. Otherwise, adds a new attribute and returns it. +ApiDef::Attr* FindOrAddAttr(ApiDef* api_def, const string attr_name) { + // If Attr is already in ApiDef, just update it. + for (int i = 0; i < api_def->attr_size(); ++i) { + auto* attr = api_def->mutable_attr(i); + if (attr->name() == attr_name) { + return attr; + } + } + // Add a new Attr. + auto* new_attr = api_def->add_attr(); + new_attr->set_name(attr_name); + return new_attr; +} + +// Applies renames and default values to attributes. +void ApplyAttrOverrides(ApiDef* api_def, const OpGenOverride& op_override, + const OpDef& op_def) { + for (auto& attr_rename : op_override.attr_rename()) { + auto* attr = FindOrAddAttr(api_def, attr_rename.from()); + attr->set_rename_to(attr_rename.to()); + } + + for (auto& attr_default : op_override.attr_default()) { + auto* attr = FindOrAddAttr(api_def, attr_default.name()); + *(attr->mutable_default_value()) = attr_default.value(); + } + // We don't really need a specific order here right now. + // However, it is clearer if order follows OpDef. + std::sort(api_def->mutable_attr()->pointer_begin(), + api_def->mutable_attr()->pointer_end(), + [&](ApiDef::Attr* attr1, ApiDef::Attr* attr2) { + return CheckAttrBefore(attr1, attr2, op_def); + }); +} + +void ApplyOverridesToApiDef(ApiDef* api_def, const OpDef& op, + const OpGenOverride& op_override) { + // Fill ApiDef with data based on op and op_override. + // Set visibility + if (op_override.skip()) { + api_def->set_visibility(ApiDef_Visibility_SKIP); + } else if (op_override.hide()) { + api_def->set_visibility(ApiDef_Visibility_HIDDEN); + } + // Add endpoints + if (!op_override.rename_to().empty()) { + api_def->add_endpoint()->set_name(op_override.rename_to()); + } else if (!op_override.alias().empty()) { + api_def->add_endpoint()->set_name(op.name()); + } + + for (auto& alias : op_override.alias()) { + auto* endpoint = api_def->add_endpoint(); + endpoint->set_name(alias); + } + + ApplyArgOverrides(api_def->mutable_in_arg(), op_override.input_rename(), + op.input_arg(), api_def->graph_op_name()); + ApplyArgOverrides(api_def->mutable_out_arg(), op_override.output_rename(), + op.output_arg(), api_def->graph_op_name()); + ApplyAttrOverrides(api_def, op_override, op); +} + +// Get map from ApiDef file path to corresponding ApiDefs proto. +std::unordered_map GenerateApiDef( + const string& api_def_dir, const OpList& ops, + const OpGenOverrides& overrides) { std::unordered_map name_to_override; for (const auto& op_override : overrides.op()) { name_to_override[op_override.name()] = op_override; } - std::unordered_map api_defs_map; + std::unordered_map api_defs_map; for (const auto& op : ops.op()) { CHECK(!op.name().empty()) << "Encountered empty op name: %s" << op.DebugString(); - const char file_id = toupper(op.name()[0]); - CHECK(isalpha(file_id)) << "Unexpected op name: " << op.name(); - ApiDef* api_def = api_defs_map[file_id].add_op(); - api_def->set_graph_op_name(op.name()); + string file_path = io::JoinPath(api_def_dir, kApiDefFileFormat); + file_path = strings::Printf(file_path.c_str(), op.name().c_str()); + ApiDef* api_def = api_defs_map[file_path].add_op(); + FillBaseApiDef(api_def, op); if (name_to_override.find(op.name()) != name_to_override.end()) { - const auto& op_override = name_to_override[op.name()]; - // Set visibility - if (op_override.skip()) { - api_def->set_visibility(ApiDef_Visibility_SKIP); - } else if (op_override.hide()) { - api_def->set_visibility(ApiDef_Visibility_HIDDEN); - } - // Add endpoints - if (!op_override.rename_to().empty()) { - auto* endpoint = api_def->add_endpoint(); - endpoint->set_name(op_override.rename_to()); - } else { - auto* endpoint = api_def->add_endpoint(); - endpoint->set_name(op.name()); - } - for (auto& alias : op_override.alias()) { - auto* endpoint = api_def->add_endpoint(); - endpoint->set_name(alias); - } - // Add attributes - for (auto& attr : op.attr()) { - auto* api_def_attr = api_def->add_attr(); - api_def_attr->set_name(attr.name()); - for (auto& attr_override : op_override.attr_default()) { - if (attr.name() == attr_override.name()) { - *(api_def_attr->mutable_default_value()) = attr_override.value(); - } - } - for (auto& attr_rename : op_override.attr_rename()) { - if (attr.name() == attr_rename.from()) { - api_def_attr->set_rename_to(attr_rename.to()); - } - } - } - } else { - auto* endpoint = api_def->add_endpoint(); - endpoint->set_name(op.name()); + ApplyOverridesToApiDef(api_def, op, name_to_override[op.name()]); } - // Add docs - api_def->set_summary(op.summary()); - api_def->set_description(op.description()); } return api_defs_map; } -// Reads golden api defs file with the given suffix. -string GetGoldenApiDefsStr(Env* env, const string& api_files_dir, char suffix) { - string file_path = strings::Printf( - io::JoinPath(api_files_dir, kApiDefFileFormat).c_str(), suffix); - if (env->FileExists(file_path).ok()) { +// Reads golden ApiDef files and returns a map from file name to ApiDef file +// contents. +std::unordered_map GetGoldenApiDefs( + Env* env, const string& api_files_dir) { + std::vector matching_paths; + TF_CHECK_OK(env->GetMatchingPaths( + io::JoinPath(api_files_dir, kApiDefFilePattern), &matching_paths)); + + std::unordered_map file_path_to_api_def; + for (auto& file_path : matching_paths) { string file_contents; - TF_EXPECT_OK(ReadFileToString(env, file_path, &file_contents)); - return file_contents; + TF_CHECK_OK(ReadFileToString(env, file_path, &file_contents)); + file_path_to_api_def[file_path] = file_contents; } - return ""; + return file_path_to_api_def; } void RunApiTest(bool update_api_def, const string& api_files_dir) { // Read C++ overrides file - string overrides_file_contents; + OpGenOverrides overrides; Env* env = Env::Default(); - TF_EXPECT_OK( - ReadFileToString(env, kOverridesFilePath, &overrides_file_contents)); + TF_EXPECT_OK(ReadTextProto(env, kOverridesFilePath, &overrides)); // Read all ops OpList ops; @@ -139,29 +265,22 @@ void RunApiTest(bool update_api_def, const string& api_files_dir) { const std::vector multi_line_fields = {"description"}; // Get expected ApiDefs - OpGenOverrides overrides; - auto new_api_defs_map = GenerateApiDef(ops, overrides); + const auto new_api_defs_map = GenerateApiDef(api_files_dir, ops, overrides); bool updated_at_least_one_file = false; + const auto golden_api_defs_map = GetGoldenApiDefs(env, api_files_dir); - for (char c : kAlphabet) { - string golden_api_defs_str = GetGoldenApiDefsStr(env, api_files_dir, c); - string new_api_defs_str = new_api_defs_map[c].DebugString(); + for (auto new_api_entry : new_api_defs_map) { + const auto& file_path = new_api_entry.first; + const auto& golden_api_defs_str = golden_api_defs_map.at(file_path); + string new_api_defs_str = new_api_entry.second.DebugString(); new_api_defs_str = PBTxtToMultiline(new_api_defs_str, multi_line_fields); if (golden_api_defs_str == new_api_defs_str) { continue; } if (update_api_def) { - string output_file_path = - io::JoinPath(api_files_dir, strings::Printf(kApiDefFileFormat, c)); - if (new_api_defs_str.empty()) { - std::cout << "Deleting " << output_file_path << "..." << std::endl; - TF_EXPECT_OK(env->DeleteFile(output_file_path)); - } else { - std::cout << "Updating " << output_file_path << "..." << std::endl; - TF_EXPECT_OK( - WriteStringToFile(env, output_file_path, new_api_defs_str)); - } + std::cout << "Updating " << file_path << "..." << std::endl; + TF_EXPECT_OK(WriteStringToFile(env, file_path, new_api_defs_str)); updated_at_least_one_file = true; } else { EXPECT_EQ(golden_api_defs_str, new_api_defs_str) @@ -170,6 +289,21 @@ void RunApiTest(bool update_api_def, const string& api_files_dir) { } } + for (const auto& golden_api_entry : golden_api_defs_map) { + const auto& file_path = golden_api_entry.first; + if (new_api_defs_map.find(file_path) == new_api_defs_map.end()) { + if (update_api_def) { + std::cout << "Deleting " << file_path << "..." << std::endl; + TF_EXPECT_OK(env->DeleteFile(file_path)); + updated_at_least_one_file = true; + } else { + EXPECT_EQ("", golden_api_entry.second) + << "To update golden API files, run " + << "tensorflow/core/api_def/update_api_def.sh."; + } + } + } + if (update_api_def && !updated_at_least_one_file) { std::cout << "Api def files are already up to date." << std::endl; } diff --git a/tensorflow/core/api_def/base_api/api_def_A.pbtxt b/tensorflow/core/api_def/base_api/api_def_A.pbtxt deleted file mode 100644 index 8193d1bc62..0000000000 --- a/tensorflow/core/api_def/base_api/api_def_A.pbtxt +++ /dev/null @@ -1,670 +0,0 @@ -op { - graph_op_name: "Abort" - endpoint { - name: "Abort" - } - summary: "Raise a exception to abort the process when called." - description: <= 2." -} -op { - graph_op_name: "AdjustContrastv2" - endpoint { - name: "AdjustContrastv2" - } - summary: "Adjust the contrast of one or more images." - description: < [2.0132, 1.056] -``` - -@compatibility(numpy) -Equivalent to np.angle. -@end_compatibility -END -} -op { - graph_op_name: "Any" - endpoint { - name: "Any" - } - summary: "Computes the \"logical or\" of elements across dimensions of a tensor." - description: < l1 else 0.0 -accum = accum_new -END -} -op { - graph_op_name: "ApplyFtrlV2" - endpoint { - name: "ApplyFtrlV2" - } - summary: "Update \'*var\' according to the Ftrl-proximal scheme." - description: < l1 else 0.0 -accum = accum_new -END -} -op { - graph_op_name: "ApplyGradientDescent" - endpoint { - name: "ApplyGradientDescent" - } - summary: "Update \'*var\' by subtracting \'alpha\' * \'delta\' from it." -} -op { - graph_op_name: "ApplyMomentum" - endpoint { - name: "ApplyMomentum" - } - summary: "Update \'*var\' according to the momentum scheme. Set use_nesterov = True if you" - description: <= 2." +} diff --git a/tensorflow/core/api_def/base_api/api_def_AdjustContrastv2.pbtxt b/tensorflow/core/api_def/base_api/api_def_AdjustContrastv2.pbtxt new file mode 100644 index 0000000000..429a5e4434 --- /dev/null +++ b/tensorflow/core/api_def/base_api/api_def_AdjustContrastv2.pbtxt @@ -0,0 +1,36 @@ +op { + graph_op_name: "AdjustContrastv2" + endpoint { + name: "AdjustContrast" + } + in_arg { + name: "images" + description: < [2.0132, 1.056] +``` + +@compatibility(numpy) +Equivalent to np.angle. +@end_compatibility +END +} diff --git a/tensorflow/core/api_def/base_api/api_def_Any.pbtxt b/tensorflow/core/api_def/base_api/api_def_Any.pbtxt new file mode 100644 index 0000000000..09fd4e0b60 --- /dev/null +++ b/tensorflow/core/api_def/base_api/api_def_Any.pbtxt @@ -0,0 +1,42 @@ +op { + graph_op_name: "Any" + endpoint { + name: "Any" + } + endpoint { + name: "ReduceAny" + } + in_arg { + name: "input" + description: < l1 else 0.0 +accum = accum_new +END +} diff --git a/tensorflow/core/api_def/base_api/api_def_ApplyFtrlV2.pbtxt b/tensorflow/core/api_def/base_api/api_def_ApplyFtrlV2.pbtxt new file mode 100644 index 0000000000..974f3adc19 --- /dev/null +++ b/tensorflow/core/api_def/base_api/api_def_ApplyFtrlV2.pbtxt @@ -0,0 +1,75 @@ +op { + graph_op_name: "ApplyFtrlV2" + in_arg { + name: "var" + description: < l1 else 0.0 +accum = accum_new +END +} diff --git a/tensorflow/core/api_def/base_api/api_def_ApplyGradientDescent.pbtxt b/tensorflow/core/api_def/base_api/api_def_ApplyGradientDescent.pbtxt new file mode 100644 index 0000000000..2f38ebd1b8 --- /dev/null +++ b/tensorflow/core/api_def/base_api/api_def_ApplyGradientDescent.pbtxt @@ -0,0 +1,35 @@ +op { + graph_op_name: "ApplyGradientDescent" + in_arg { + name: "var" + description: < -1. +END + } + attr { + name: "scientific" + description: < -1. +END + } + attr { + name: "fill" + description: < -1. If empty, pads with spaces. +Another typical value is '0'. String cannot be longer than 1 character. +END + } + summary: "Converts each entry in the given tensor to strings. Supports many numeric" + description: <