forked from tensorflow/tensorflow
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add KinesisDataset support for tensorflow Dataset (tensorflow#19712)
* Add KinesisDataset support for tensorflow Dataset This fix is an attempt to add Kinesis support for tensorflow's Dataset. Kinesis is provided by AWS as a managed data streaming service. It is similiar to Apache Kafka, often used in places where maintaining a independent Kafka cluster on AWS is not desirable or possible. This fix adds the Kinesis support for tensorflow Dataset. Similiar to the Kafka integration in tensorflow, KinesisDataset outputs tf.string for records. Test cases have also been added, which could be invoked manually. Signed-off-by: Yong Tang <[email protected]> * Expose KinesisDataset in dataset_ops.cc Signed-off-by: Yong Tang <[email protected]> * Expose KinesisDataset in python wrapper Signed-off-by: Yong Tang <[email protected]> * Add test cases for KinesisDataset Signed-off-by: Yong Tang <[email protected]> * Update AWS library include files Signed-off-by: Yong Tang <[email protected]> * Add Bazel BUILD files Signed-off-by: Yong Tang <[email protected]> * Rename s3_crypto to aws_crypto Signed-off-by: Yong Tang <[email protected]> * Rename with_s3_support to with_aws_support Signed-off-by: Yong Tang <[email protected]> * Selectively add kinesis to tensorflow/contrib/BUILD Signed-off-by: Yong Tang <[email protected]> * Set different partition key and pylint fix. Signed-off-by: Yong Tang <[email protected]> * Add missing modules in cmake's python_modules.txt Signed-off-by: Yong Tang <[email protected]> * Address review feedback Signed-off-by: Yong Tang <[email protected]>
- Loading branch information
Showing
17 changed files
with
866 additions
and
40 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,113 @@ | ||
package(default_visibility = ["//tensorflow:internal"]) | ||
|
||
licenses(["notice"]) # Apache 2.0 | ||
|
||
exports_files(["LICENSE"]) | ||
|
||
load( | ||
"//tensorflow:tensorflow.bzl", | ||
"tf_custom_op_library", | ||
"tf_custom_op_py_library", | ||
"tf_gen_op_libs", | ||
"tf_gen_op_wrapper_py", | ||
"tf_kernel_library", | ||
"tf_py_test", | ||
) | ||
|
||
py_library( | ||
name = "kinesis", | ||
srcs = ["__init__.py"], | ||
srcs_version = "PY2AND3", | ||
deps = [ | ||
":dataset_ops", | ||
], | ||
) | ||
|
||
tf_custom_op_library( | ||
name = "_dataset_ops.so", | ||
srcs = ["ops/dataset_ops.cc"], | ||
deps = [":dataset_kernels"], | ||
) | ||
|
||
tf_gen_op_libs( | ||
op_lib_names = ["dataset_ops"], | ||
) | ||
|
||
cc_library( | ||
name = "dataset_kernels", | ||
srcs = [ | ||
"kernels/kinesis_dataset_ops.cc", | ||
], | ||
deps = [ | ||
"//tensorflow/core:framework_headers_lib", | ||
"//tensorflow/core/platform/s3:aws_crypto", | ||
"//third_party/eigen3", | ||
"@aws", | ||
"@protobuf_archive//:protobuf_headers", | ||
], | ||
alwayslink = 1, | ||
) | ||
|
||
py_library( | ||
name = "dataset_ops", | ||
srcs = [ | ||
"python/ops/kinesis_dataset_ops.py", | ||
], | ||
srcs_version = "PY2AND3", | ||
deps = [ | ||
":kinesis_op_loader", | ||
"//tensorflow/python:dataset_ops_gen", | ||
"//tensorflow/python:util", | ||
"//tensorflow/python/data/ops:dataset_ops", | ||
"//tensorflow/python/data/util:nest", | ||
], | ||
) | ||
|
||
tf_gen_op_wrapper_py( | ||
name = "gen_dataset_ops", | ||
out = "python/ops/gen_dataset_ops.py", | ||
deps = ["//tensorflow/contrib/kinesis:dataset_ops_op_lib"], | ||
) | ||
|
||
tf_kernel_library( | ||
name = "dataset_ops_kernels", | ||
deps = [ | ||
":dataset_kernels", | ||
"//tensorflow/core:framework", | ||
], | ||
alwayslink = 1, | ||
) | ||
|
||
tf_custom_op_py_library( | ||
name = "kinesis_op_loader", | ||
srcs = ["python/ops/kinesis_op_loader.py"], | ||
dso = ["//tensorflow/contrib/kinesis:_dataset_ops.so"], | ||
kernels = [ | ||
":dataset_ops_kernels", | ||
"//tensorflow/contrib/kinesis:dataset_ops_op_lib", | ||
], | ||
srcs_version = "PY2AND3", | ||
deps = [ | ||
":gen_dataset_ops", | ||
"//tensorflow/contrib/util:util_py", | ||
"//tensorflow/python:platform", | ||
], | ||
) | ||
|
||
tf_py_test( | ||
name = "kinesis_test", | ||
srcs = ["python/kernel_tests/kinesis_test.py"], | ||
additional_deps = [ | ||
":kinesis", | ||
"//third_party/py/numpy", | ||
"//tensorflow/python:client_testlib", | ||
"//tensorflow/python:framework", | ||
"//tensorflow/python:framework_test_lib", | ||
"//tensorflow/python:platform_test", | ||
], | ||
tags = [ | ||
"manual", | ||
"no_windows", | ||
"notap", | ||
], | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
# Copyright 2018 The TensorFlow Authors. All Rights Reserved. | ||
# | ||
# Licensed under the Apache License, Version 2.0 (the "License"); | ||
# you may not use this file except in compliance with the License. | ||
# You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, software | ||
# distributed under the License is distributed on an "AS IS" BASIS, | ||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
# See the License for the specific language governing permissions and | ||
# limitations under the License. | ||
# ============================================================================== | ||
"""Kinesis Dataset. | ||
@@KinesisDataset | ||
""" | ||
|
||
from __future__ import absolute_import | ||
from __future__ import division | ||
from __future__ import print_function | ||
|
||
from tensorflow.contrib.kinesis.python.ops.kinesis_dataset_ops import KinesisDataset | ||
|
||
from tensorflow.python.util.all_util import remove_undocumented | ||
|
||
_allowed_symbols = [ | ||
"KinesisDataset", | ||
] | ||
|
||
remove_undocumented(__name__) |
Oops, something went wrong.