diff options
author | Benoit Steiner <bsteiner@google.com> | 2017-04-05 16:35:47 -0800 |
---|---|---|
committer | TensorFlower Gardener <gardener@tensorflow.org> | 2017-04-05 17:59:58 -0700 |
commit | 9d57702513001bfded19e72c76a986cce56d5f00 (patch) | |
tree | 187ffbdf9f861b72e7806c1c71e4c74d397b7862 | |
parent | dc14caf8dce06611832664b9a77a8aa8de9ec889 (diff) |
Started a set of utilities to categorize op types
Change: 152329057
-rw-r--r-- | tensorflow/core/grappler/BUILD | 11 | ||||
-rw-r--r-- | tensorflow/core/grappler/grappler_item_builder.cc | 3 | ||||
-rw-r--r-- | tensorflow/core/grappler/op_types.cc | 27 | ||||
-rw-r--r-- | tensorflow/core/grappler/op_types.h | 29 |
4 files changed, 69 insertions, 1 deletions
diff --git a/tensorflow/core/grappler/BUILD b/tensorflow/core/grappler/BUILD index c42eebae53..5d74d3d3b1 100644 --- a/tensorflow/core/grappler/BUILD +++ b/tensorflow/core/grappler/BUILD @@ -30,6 +30,16 @@ filegroup( ) cc_library( + name = "op_types", + srcs = ["op_types.cc"], + hdrs = ["op_types.h"], + visibility = ["//visibility:public"], + deps = [ + "//tensorflow/core:protos_all_cc", + ], +) + +cc_library( name = "utils", srcs = ["utils.cc"], hdrs = ["utils.h"], @@ -88,6 +98,7 @@ cc_library( visibility = ["//visibility:public"], deps = [ ":grappler_item", + ":op_types", ":utils", "//tensorflow/core:framework_internal", "//tensorflow/core:lib_internal", diff --git a/tensorflow/core/grappler/grappler_item_builder.cc b/tensorflow/core/grappler/grappler_item_builder.cc index 7889b0e025..e37b908fc6 100644 --- a/tensorflow/core/grappler/grappler_item_builder.cc +++ b/tensorflow/core/grappler/grappler_item_builder.cc @@ -24,6 +24,7 @@ limitations under the License. #include "tensorflow/core/framework/types.pb.h" #include "tensorflow/core/framework/variable.pb.h" #include "tensorflow/core/grappler/inputs/utils.h" +#include "tensorflow/core/grappler/op_types.h" #include "tensorflow/core/grappler/utils.h" #include "tensorflow/core/protobuf/meta_graph.pb.h" @@ -90,7 +91,7 @@ std::unique_ptr<GrapplerItem> GrapplerItemFromMetaGraphDef( node.clear_device(); } - if (node.op() == "Placeholder" || node.op() == "PlaceholderV2") { + if (IsPlaceholder(node)) { if (node.attr().count("dtype") == 0) { LOG(ERROR) << "Unknown type for placeholder " << node.name() << ", skipping this input"; diff --git a/tensorflow/core/grappler/op_types.cc b/tensorflow/core/grappler/op_types.cc new file mode 100644 index 0000000000..33ef498db0 --- /dev/null +++ b/tensorflow/core/grappler/op_types.cc @@ -0,0 +1,27 @@ +/* Copyright 2017 The TensorFlow Authors. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +==============================================================================*/ + +#include "tensorflow/core/grappler/op_types.h" + +namespace tensorflow { +namespace grappler { + +bool IsPlaceholder(const NodeDef& node) { + const auto op = node.op(); + return op == "Placeholder" || op == "PlaceholderV2"; +} + +} // end namespace grappler +} // end namespace tensorflow diff --git a/tensorflow/core/grappler/op_types.h b/tensorflow/core/grappler/op_types.h new file mode 100644 index 0000000000..30a3c91411 --- /dev/null +++ b/tensorflow/core/grappler/op_types.h @@ -0,0 +1,29 @@ +/* Copyright 2017 The TensorFlow Authors. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +==============================================================================*/ + +#ifndef TENSORFLOW_GRAPPLER_OP_TYPES_H_ +#define TENSORFLOW_GRAPPLER_OP_TYPES_H_ + +#include "tensorflow/core/framework/node_def.pb.h" + +namespace tensorflow { +namespace grappler { + +bool IsPlaceholder(const NodeDef& node); + +} // end namespace grappler +} // end namespace tensorflow + +#endif // TENSORFLOW_GRAPPLER_OP_TYPES_H_ |