aboutsummaryrefslogtreecommitdiffhomepage
path: root/tensorflow/java
diff options
context:
space:
mode:
authorGravatar karl@kubx.ca <karl@kubx.ca>2018-05-05 10:44:20 -0400
committerGravatar karl@kubx.ca <karl@kubx.ca>2018-05-05 10:44:20 -0400
commitc92de2f3fc81c701ab29408a8a84cd6e41e96fe5 (patch)
tree45d013825b4bd40cbab4d565ce5de8cf3165d949 /tensorflow/java
parentdd1ef8fa8f6861e53e8a7953c171b3e9253043ed (diff)
Skip all ops with function attribute by default
Diffstat (limited to 'tensorflow/java')
-rw-r--r--tensorflow/java/BUILD1
-rw-r--r--tensorflow/java/src/gen/cc/op_generator.cc14
2 files changed, 13 insertions, 2 deletions
diff --git a/tensorflow/java/BUILD b/tensorflow/java/BUILD
index 7cd0208dbf..0cc8e7c3e2 100644
--- a/tensorflow/java/BUILD
+++ b/tensorflow/java/BUILD
@@ -72,7 +72,6 @@ tf_java_op_gen_srcjar(
name = "java_op_gen_sources",
api_def_srcs = [
"//tensorflow/core/api_def:base_api_def",
- "//tensorflow/core/api_def:java_api_def",
],
base_package = "org.tensorflow.op",
gen_tool = ":java_op_gen_tool",
diff --git a/tensorflow/java/src/gen/cc/op_generator.cc b/tensorflow/java/src/gen/cc/op_generator.cc
index 7355b3a395..f4cefbe933 100644
--- a/tensorflow/java/src/gen/cc/op_generator.cc
+++ b/tensorflow/java/src/gen/cc/op_generator.cc
@@ -420,6 +420,18 @@ void GenerateOp(const OpSpec& op, const EndpointSpec& endpoint,
writer.EndType();
}
+bool CanGenerateOp(const OpDef& op_def, const ApiDef& api_def) {
+ if (api_def.visibility() == ApiDef::SKIP) {
+ return false;
+ }
+ for (const auto& attr : op_def.attr()) {
+ if (attr.type() == "func") {
+ return false; // TODO(karllessard) add support for function attributes
+ }
+ }
+ return true;
+}
+
} // namespace
Status OpGenerator::Run(const OpList& op_list, const string& base_package,
@@ -441,7 +453,7 @@ Status OpGenerator::Run(const OpList& op_list, const string& base_package,
api_map.UpdateDocs();
for (const auto& op_def : op_list.op()) {
const ApiDef* api_def = api_map.GetApiDef(op_def.name());
- if (api_def->visibility() != ApiDef::SKIP) {
+ if (CanGenerateOp(op_def, *api_def)) {
OpSpec op(OpSpec::Create(op_def, *api_def));
for (const EndpointSpec& endpoint : op.endpoints()) {
GenerateOp(op, endpoint, base_package, output_dir, env_);