diff options
Diffstat (limited to 'tensorflow/core/kernels/data/identity_dataset_op.cc')
-rw-r--r-- | tensorflow/core/kernels/data/identity_dataset_op.cc | 102 |
1 files changed, 0 insertions, 102 deletions
diff --git a/tensorflow/core/kernels/data/identity_dataset_op.cc b/tensorflow/core/kernels/data/identity_dataset_op.cc deleted file mode 100644 index e28f188336..0000000000 --- a/tensorflow/core/kernels/data/identity_dataset_op.cc +++ /dev/null @@ -1,102 +0,0 @@ -/* 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. -==============================================================================*/ -#include <map> - -#include "tensorflow/core/framework/tensor.h" -#include "tensorflow/core/kernels/data/dataset.h" - -namespace tensorflow { -namespace { - -// The purpose of identity dataset is to serve as a placeholder when performing -// optimizations. It is not expected to be surfaced in the Python API. -class IdentityDatasetOp : public UnaryDatasetOpKernel { - public: - explicit IdentityDatasetOp(OpKernelConstruction* ctx) - : UnaryDatasetOpKernel(ctx) { - OP_REQUIRES_OK(ctx, ctx->GetAttr("output_types", &output_types_)); - OP_REQUIRES_OK(ctx, ctx->GetAttr("output_shapes", &output_shapes_)); - } - - protected: - void MakeDataset(OpKernelContext* ctx, DatasetBase* input, - DatasetBase** output) override { - *output = new Dataset(ctx, input); - } - - private: - class Dataset : public GraphDatasetBase { - public: - Dataset(OpKernelContext* ctx, const DatasetBase* input) - : GraphDatasetBase(ctx), input_(input) { - input_->Ref(); - } - - ~Dataset() override { input_->Unref(); } - - std::unique_ptr<IteratorBase> MakeIteratorInternal( - const string& prefix) const override { - return std::unique_ptr<IteratorBase>( - new Iterator({this, strings::StrCat(prefix, "::Identity")})); - } - - const DataTypeVector& output_dtypes() const override { - return input_->output_dtypes(); - } - - const std::vector<PartialTensorShape>& output_shapes() const override { - return input_->output_shapes(); - } - - string DebugString() const override { return "IdentityDatasetOp::Dataset"; } - - protected: - Status AsGraphDefInternal(OpKernelContext* ctx, DatasetGraphDefBuilder* b, - Node** output) const override { - Node* input_graph_node = nullptr; - TF_RETURN_IF_ERROR(b->AddParentDataset(ctx, input_, &input_graph_node)); - TF_RETURN_IF_ERROR(b->AddDataset(this, {input_graph_node}, output)); - return Status::OK(); - } - - private: - class Iterator : public DatasetIterator<Dataset> { - public: - explicit Iterator(const Params& params) - : DatasetIterator<Dataset>(params) {} - - Status Initialize(IteratorContext* ctx) override { - return errors::Unimplemented(strings::StrCat(prefix(), "::Initialize")); - } - - Status GetNextInternal(IteratorContext* ctx, - std::vector<Tensor>* out_tensors, - bool* end_of_sequence) override { - return errors::Unimplemented( - strings::StrCat(prefix(), "::GetNextInternal")); - } - }; - - const DatasetBase* const input_; - }; - - DataTypeVector output_types_; - std::vector<PartialTensorShape> output_shapes_; -}; - -REGISTER_KERNEL_BUILDER(Name("IdentityDataset").Device(DEVICE_CPU), - IdentityDatasetOp); -} // namespace -} // namespace tensorflow |