diff --git a/README.md b/README.md
index 025d25759a7..abfea573d98 100644
--- a/README.md
+++ b/README.md
@@ -24,20 +24,20 @@ migrated from Bazel to Maven, which is more familiar for most Java developers.
The following describes the layout of the repository and its different artifacts:
-* `core`
+* `tensorflow-core`
* All artifacts that build up the core language bindings of TensorFlow for Java.
* Those artifacts provide the minimal support required to use the TensorFlow runtime on a JVM.
-* `utils`
+* `tensorflow-utils`
* Utility libraries that do not depend on the TensorFlow runtime but are useful for machine learning purposes
-* `frameworks`
+* `tensorflow-frameworks`
* High-level APIs built on top of the core libraries for simplifying the usage of TensorFlow in Java.
-* `starters`
+* `tensorflow-starters`
* Artifacts aggregating others for simplifying dependency management with TensorFlow
-*Note: Right now, only the `core` component is present*
+*Note: Right now, only the `tensorflow-core` component is present*
## Building Sources
@@ -48,26 +48,27 @@ Note that in some cases, if a version of the TensorFlow runtime library is not f
this process will fetch TensorFlow sources and trigger a build of all the native code (which can take
many hours on a standard laptop). In this case, you will also need to have a valid environment for building
TensorFlow, including the [bazel](https://bazel.build/) build tool and a few python dependencies. Please
-read [TensorFlow documentation](https://www.tensorflow.org/install) for more details.
+read [TensorFlow documentation](https://www.tensorflow.org/install/source) for more details.
## Using Maven Artifacts
-To include TensorFlow in your Maven application, you first need to add a dependency on both
-`tensorflow-core` and `tensorflow-core-native` artifacts. The later could be included multiple times
-for different targeted systems by their classifiers.
+To include TensorFlow in your Maven application, you first need to add a dependency on either the
+`tensorflow-core` or `tensorflow-core-platform` artifacts. The former could be included multiple times
+for different targeted systems by their classifiers, while the later includes them as dependencies for
+`linux-x86_64`, `macosx-x86_64`, and `windows-x86_64`, with more to come in the future.
For example, for building a JAR that uses TensorFlow and is targeted to be deployed only on Linux
systems, you should add the following dependencies:
```xml
org.tensorflow
- tensorflow-core
- 2.0.0-SNAPSHOT
+ tensorflow-core-api
+ 0.1.0-SNAPSHOT
org.tensorflow
- tensorflow-core-native
- 2.0.0-SNAPSHOT
+ tensorflow-core-api
+ 0.1.0-SNAPSHOT
linux-x86_64
```
@@ -77,37 +78,37 @@ native dependencies as follows:
```xml
org.tensorflow
- tensorflow-core
- 2.0.0-SNAPSHOT
+ tensorflow-core-api
+ 0.1.0-SNAPSHOT
org.tensorflow
- tensorflow-core-native
- 2.0.0-SNAPSHOT
+ tensorflow-core-api
+ 0.1.0-SNAPSHOT
linux-x86_64
org.tensorflow
- tensorflow-core-native
- 2.0.0-SNAPSHOT
- windows-x86_64
+ tensorflow-core-api
+ 0.1.0-SNAPSHOT
+ macosx-x86_64
org.tensorflow
- tensorflow-core-native
- 2.0.0-SNAPSHOT
- darwin-x86_64
+ tensorflow-core-api
+ 0.1.0-SNAPSHOT
+ windows-x86_64
```
In some cases, pre-configured starter artifacts can help to automatically include all versions of
-the native library for a given configuration. For example, the `tensorflow` artifact includes
+the native library for a given configuration. For example, the `tensorflow-core-platform` artifact includes
transitively all the artifacts above as a single dependency:
```xml
org.tensorflow
- tensorflow
- 2.0.0-SNAPSHOT
+ tensorflow-core-platform
+ 0.1.0-SNAPSHOT
```
@@ -115,7 +116,7 @@ Be aware though that the native library is quite large and including too many ve
significantly increase the size of your JAR. So it is good practice to limit your dependencies to
the platforms you are targeting.
-*Note: the `tensorflow` starter artifact is not available at this moment*
+*Note: the `tensorflow-starters` artifact is not available at this moment*
## How to Contribute?
diff --git a/core/pom.xml b/core/pom.xml
deleted file mode 100644
index ac6b62c0ad4..00000000000
--- a/core/pom.xml
+++ /dev/null
@@ -1,82 +0,0 @@
-
-
-
- 4.0.0
-
-
- org.tensorflow
- parent
- 2.0.0-SNAPSHOT
-
- parent-core
- pom
-
- Core Parent
- Parent POM of TensorFlow core artifacts
-
-
- annotation-processor
- tensorflow-core-native
- tensorflow-core
-
-
-
-
- linux
-
-
- unix
- Linux
-
-
-
- linux
-
-
-
- darwin
-
-
- unix
- Mac OS X
-
-
-
- darwin
-
-
-
- windows
-
-
- windows
-
-
-
- windows
-
-
-
-
-
- ${os.adjusted.name}-${os.arch}
-
-
-
-
diff --git a/core/tensorflow-core-native/BUILD b/core/tensorflow-core-native/BUILD
deleted file mode 100644
index 7903f09ad77..00000000000
--- a/core/tensorflow-core-native/BUILD
+++ /dev/null
@@ -1,67 +0,0 @@
-load("@org_tensorflow//tensorflow:tensorflow.bzl", "tf_copts")
-
-LINKER_VERSION_SCRIPT = ":config/version_script.lds"
-LINKER_EXPORTED_SYMBOLS = ":config/exported_symbols.lds"
-
-cc_binary(
- name = "libtensorflow_jni.so",
- # Set linker options to strip out anything except the JNI
- # symbols from the library. This reduces the size of the library
- # considerably (~50% as of January 2017).
- linkopts = select({
- "@org_tensorflow//tensorflow:debug": [], # Disable all custom linker options in debug mode
- "//conditions:default": [
- "-z defs",
- "-s",
- "-Wl,--version-script,$(location {})".format(LINKER_VERSION_SCRIPT),
- ],
- }),
- linkshared = 1,
- linkstatic = 1,
- copts = tf_copts(),
- deps = [
- "@org_tensorflow//tensorflow/core/distributed_runtime/rpc:grpc_server_lib",
- "//src/main/native",
- LINKER_VERSION_SCRIPT,
- LINKER_EXPORTED_SYMBOLS,
- ],
-)
-
-cc_binary(
- name = "libtensorflow_jni.dylib",
- # Set linker options to strip out anything except the JNI
- # symbols from the library. This reduces the size of the library
- # considerably (~50% as of January 2017).
- linkopts = select({
- "@org_tensorflow//tensorflow:debug": [], # Disable all custom linker options in debug mode
- "//conditions:default": [
- "-Wl,-exported_symbols_list,$(location {})".format(LINKER_EXPORTED_SYMBOLS),
- ],
- }),
- linkshared = 1,
- linkstatic = 1,
- copts = tf_copts(),
- deps = [
- "@org_tensorflow//tensorflow/core/distributed_runtime/rpc:grpc_server_lib",
- "//src/main/native",
- LINKER_VERSION_SCRIPT,
- LINKER_EXPORTED_SYMBOLS,
- ],
-)
-
-cc_binary(
- name = "tensorflow_jni.dll",
- # Set linker options to strip out anything except the JNI
- # symbols from the library. This reduces the size of the library
- # considerably (~50% as of January 2017).
- linkopts = [],
- linkshared = 1,
- linkstatic = 1,
- copts = tf_copts(),
- deps = [
- "@org_tensorflow//tensorflow/core/distributed_runtime/rpc:grpc_server_lib",
- "//src/main/native",
- LINKER_VERSION_SCRIPT,
- LINKER_EXPORTED_SYMBOLS,
- ],
-)
diff --git a/core/tensorflow-core-native/WORKSPACE b/core/tensorflow-core-native/WORKSPACE
deleted file mode 100644
index e886d7adbaa..00000000000
--- a/core/tensorflow-core-native/WORKSPACE
+++ /dev/null
@@ -1,42 +0,0 @@
-workspace(name = "tensorflow_core_native")
-
-#local_repository(
-# name = "tensorflow",
-# path = "/Users/klessard/Documents/Projects/MachineLearning/Sources/tensorflow",
-#)
-
-load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
-
-http_archive(
- name = "org_tensorflow",
- urls = [
- "https://mirror.bazel.build/github.com/tensorflow/tensorflow/archive/v2.0.0-rc0.tar.gz",
- "https://github.com/tensorflow/tensorflow/archive/v2.0.0-rc0.tar.gz",
- ],
- sha256 = "48ddba718da76df56fd4c48b4bbf4f97f254ba269ec4be67f783684c75563ef8",
- strip_prefix = "tensorflow-2.0.0-rc0"
-)
-
-# START: Upstream TensorFlow dependencies
-# TensorFlow build depends on these dependencies.
-# Needs to be in-sync with TensorFlow sources.
-http_archive(
- name = "io_bazel_rules_closure",
- sha256 = "ddce3b3a3909f99b28b25071c40b7fec7e2e1d1d1a4b2e933f3082aa99517105",
- strip_prefix = "rules_closure-316e6133888bfc39fb860a4f1a31cfcbae485aef",
- urls = [
- "https://mirror.bazel.build/github.com/bazelbuild/rules_closure/archive/316e6133888bfc39fb860a4f1a31cfcbae485aef.tar.gz",
- "https://github.com/bazelbuild/rules_closure/archive/316e6133888bfc39fb860a4f1a31cfcbae485aef.tar.gz", # 2019-03-21
- ],
-)
-http_archive(
- name = "bazel_skylib",
- sha256 = "2c62d8cd4ab1e65c08647eb4afe38f51591f43f7f0885e7769832fa137633dcb",
- strip_prefix = "bazel-skylib-0.7.0",
- urls = ["https://github.com/bazelbuild/bazel-skylib/archive/0.7.0.tar.gz"],
-)
-# END: Upstream TensorFlow dependencies
-
-load("@org_tensorflow//tensorflow:workspace.bzl", "tf_workspace")
-
-tf_workspace()
diff --git a/core/tensorflow-core-native/config/exported_symbols.lds b/core/tensorflow-core-native/config/exported_symbols.lds
deleted file mode 100644
index 4b79b8c333a..00000000000
--- a/core/tensorflow-core-native/config/exported_symbols.lds
+++ /dev/null
@@ -1,3 +0,0 @@
-*Java_org_tensorflow_*
-*JNI_OnLoad
-*JNI_OnUnload
diff --git a/core/tensorflow-core-native/config/version_script.lds b/core/tensorflow-core-native/config/version_script.lds
deleted file mode 100644
index 38c93dda730..00000000000
--- a/core/tensorflow-core-native/config/version_script.lds
+++ /dev/null
@@ -1,11 +0,0 @@
-VERS_1.0 {
- # Export JNI symbols.
- global:
- Java_*;
- JNI_OnLoad;
- JNI_OnUnload;
-
- # Hide everything else.
- local:
- *;
-};
diff --git a/core/tensorflow-core-native/pom.xml b/core/tensorflow-core-native/pom.xml
deleted file mode 100644
index fb26ec7502e..00000000000
--- a/core/tensorflow-core-native/pom.xml
+++ /dev/null
@@ -1,141 +0,0 @@
-
-
- 4.0.0
-
-
- org.tensorflow
- parent-core
- 2.0.0-SNAPSHOT
-
- tensorflow-core-native
- jar
-
- Core JNI Library
- Platform-dependent native code for the TensorFlow Java library.
-
-
-
- linux
-
-
- unix
- Linux
-
-
-
- libtensorflow_jni.so
-
-
-
- darwin
-
-
- unix
- Mac OS X
-
-
-
- libtensorflow_jni.dylib
-
-
-
- windows
-
-
- windows
-
-
-
- tensorflow_jni.dll
-
-
-
-
-
- bazel-clean
-
-
- bazel.clean
-
-
-
-
-
- org.codehaus.mojo
- exec-maven-plugin
- 1.6.0
-
-
- bazel-clean
- clean
-
- exec
-
-
- bazel
-
- clean
-
-
-
-
-
-
-
-
-
-
-
-
-
- org.codehaus.mojo
- exec-maven-plugin
- 1.6.0
-
-
- compile-jni
- compile
-
- exec
-
-
- bazel
- build -c opt --define=grpc_no_ares=true :${native.lib}
-
-
-
-
-
- maven-resources-plugin
- 3.1.0
-
-
- prepare-package
-
- copy-resources
-
-
- ${basedir}/target/classes/org/tensorflow/native/${os.adjusted.name}-x86_64
-
-
- ${basedir}/bazel-bin
-
- ${native.lib}
-
-
-
-
-
-
-
-
- maven-jar-plugin
-
- ${native.classifier}
-
-
-
-
-
-
diff --git a/core/tensorflow-core-native/src/main/native/BUILD b/core/tensorflow-core-native/src/main/native/BUILD
deleted file mode 100644
index 752133bd01c..00000000000
--- a/core/tensorflow-core-native/src/main/native/BUILD
+++ /dev/null
@@ -1,57 +0,0 @@
-# Description:
-# Java Native Interface (JNI) library intended for implementing the
-# TensorFlow Java API using the TensorFlow C library.
-
-package(default_visibility = [
- "//:__pkg__",
-])
-
-licenses(["notice"]) # Apache 2.0
-
-load("@org_tensorflow//tensorflow:tensorflow.bzl", "tf_copts", "tf_gpu_library")
-
-tf_gpu_library(
- name = "native",
- srcs = glob(["*.cc"]) + [
- ":copy_jni_h",
- ":copy_jni_md_h"
- ],
- hdrs = glob(["*.h"]),
- includes = ["."],
- deps = [
- "@org_tensorflow//tensorflow/c:c_api",
- "@org_tensorflow//tensorflow/c/eager:c_api",
- "@org_tensorflow//tensorflow/core:all_kernels",
- "@org_tensorflow//tensorflow/core:direct_session",
- "@org_tensorflow//tensorflow/core:ops",
- ],
- copts = tf_copts(),
- alwayslink = 1
-)
-
-# Silly rules to make
-# #include
-# in the source headers work
-# (in combination with the "includes" attribute of the tf_gpu_library rule
-# above. Not needed when using the Android toolchain).
-#
-# Inspired from:
-# https://github.com/bazelbuild/bazel/blob/f99a0543f8d97339d32075c7176b79f35be84606/src/main/native/BUILD
-# but hopefully there is a simpler alternative to this.
-genrule(
- name = "copy_jni_h",
- srcs = ["@bazel_tools//tools/jdk:jni_header"],
- outs = ["jni.h"],
- cmd = "cp -f $< $@",
-)
-
-genrule(
- name = "copy_jni_md_h",
- srcs = select({
- "@org_tensorflow//tensorflow:windows": ["@bazel_tools//tools/jdk:jni_md_header-windows"],
- "@org_tensorflow//tensorflow:macos": ["@bazel_tools//tools/jdk:jni_md_header-darwin"],
- "//conditions:default": ["@bazel_tools//tools/jdk:jni_md_header-linux"],
- }),
- outs = ["jni_md.h"],
- cmd = "cp -f $< $@",
-)
diff --git a/core/tensorflow-core/pom.xml b/core/tensorflow-core/pom.xml
deleted file mode 100644
index efba4b66327..00000000000
--- a/core/tensorflow-core/pom.xml
+++ /dev/null
@@ -1,127 +0,0 @@
-
-
- 4.0.0
-
-
- org.tensorflow
- parent-core
- 2.0.0-SNAPSHOT
-
- tensorflow-core
- jar
-
- Core Java Client
- Pure-Java code for the TensorFlow machine intelligence library.
-
-
-
- org.tensorflow
- annotation-processor
- ${project.version}
- true
-
-
- junit
- junit
- 4.12
- test
-
-
- org.tensorflow
- tensorflow-core-native
- ${project.version}
- ${native.classifier}
- test
-
-
-
-
-
-
- org.codehaus.mojo
- exec-maven-plugin
- 1.6.0
-
-
- extract-ops
- generate-sources
-
- exec
-
-
-
-
- jar
-
- xf
- ${project.basedir}/src/external/java_op_gen_sources.srcjar
-
- ${project.build.directory}/generated-sources
-
-
-
- org.apache.maven.plugins
- maven-compiler-plugin
- 3.6.1
-
- 1.7
- 1.7
-
-
- org.tensorflow.processor.operator.OperatorProcessor
-
-
-
-
-
- org.apache.maven.plugins
- maven-source-plugin
- 2.2.1
-
-
- attach-sources
-
- jar-no-fork
-
-
-
-
-
- org.apache.maven.plugins
- maven-javadoc-plugin
- 2.9.1
-
-
- attach-javadocs
-
- jar
-
-
-
-
- -Xdoclint:none
-
-
-
- org.codehaus.mojo
- build-helper-maven-plugin
-
-
- add-source
- generate-sources
-
- add-source
-
-
-
- ${project.build.directory}/generated-sources/src/main/
- ${project.build.directory}/generated-sources/annotations/
-
-
-
-
-
-
-
-
diff --git a/core/tensorflow-core/src/external/java_op_gen_sources.srcjar b/core/tensorflow-core/src/external/java_op_gen_sources.srcjar
deleted file mode 100644
index 5ded1c52b8c..00000000000
Binary files a/core/tensorflow-core/src/external/java_op_gen_sources.srcjar and /dev/null differ
diff --git a/pom.xml b/pom.xml
index 62243f7f6be..9cae184350a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,11 +4,11 @@
4.0.0
org.tensorflow
- parent
- 2.0.0-SNAPSHOT
+ tensorflow-java
+ 0.1.0-SNAPSHOT
pom
- Parent Artifact
+ TensorFlow Java Parent
Parent POM of TensorFlow artifacts
https://www.tensorflow.org
@@ -29,10 +29,10 @@
-
- core
-
-
+ tensorflow-core
+
+
+
+
+
+ 4.0.0
+
+
+ org.tensorflow
+ tensorflow-java
+ 0.1.0-SNAPSHOT
+
+ tensorflow-core
+ pom
+
+ TensorFlow Core Parent
+ Parent POM of TensorFlow core artifacts
+
+
+ tensorflow-core-generator
+ tensorflow-core-api
+ tensorflow-core-platform
+
+
+
+ ${os.adjusted.name}-${os.arch}
+ false
+ false
+ false
+
+ ${javacpp.platform}
+ linux-armhf${javacpp.platform.extension}
+ linux-arm64${javacpp.platform.extension}
+ linux-ppc64le${javacpp.platform.extension}
+ linux-x86${javacpp.platform.extension}
+ linux-x86_64${javacpp.platform.extension}
+ macosx-x86_64${javacpp.platform.extension}
+ windows-x86${javacpp.platform.extension}
+ windows-x86_64${javacpp.platform.extension}
+ 1.5.1
+ 0.20-${javacpp.version}
+
+
+
+
+ javacpp-platform-default
+
+
+ !javacpp.platform
+
+
+
+ ${os.name}-${os.arch}
+
+
+
+
+ javacpp-platform-custom
+
+
+ javacpp.platform
+
+
+
+ ${javacpp.platform}${javacpp.platform.extension}
+ ${javacpp.platform}${javacpp.platform.extension}
+ ${javacpp.platform}${javacpp.platform.extension}
+ ${javacpp.platform}${javacpp.platform.extension}
+ ${javacpp.platform}${javacpp.platform.extension}
+ ${javacpp.platform}${javacpp.platform.extension}
+ ${javacpp.platform}${javacpp.platform.extension}
+ ${javacpp.platform}${javacpp.platform.extension}
+
+
+
+
+ javacpp-platform-host
+
+
+ javacpp.platform.host
+
+
+
+ ${os.name}-${os.arch}${javacpp.platform.extension}
+ ${os.name}-${os.arch}${javacpp.platform.extension}
+ ${os.name}-${os.arch}${javacpp.platform.extension}
+ ${os.name}-${os.arch}${javacpp.platform.extension}
+ ${os.name}-${os.arch}${javacpp.platform.extension}
+ ${os.name}-${os.arch}${javacpp.platform.extension}
+ ${os.name}-${os.arch}${javacpp.platform.extension}
+ ${os.name}-${os.arch}${javacpp.platform.extension}
+ ${os.name}-${os.arch}${javacpp.platform.extension}
+
+
+
+
+ javacpp.platform.custom-true
+
+
+ javacpp.platform.custom
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ javacpp-platform-none
+
+
+ javacpp.platform.none
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ javacpp-platform-linux-armhf
+
+
+ javacpp.platform
+ linux-armhf
+
+
+
+ ${javacpp.platform}${javacpp.platform.extension}
+
+
+
+
+
+
+
+
+
+
+
+ javacpp-platform-linux-arm64
+
+
+ javacpp.platform
+ linux-arm64
+
+
+
+
+ ${javacpp.platform}${javacpp.platform.extension}
+
+
+
+
+
+
+
+
+
+
+ javacpp-platform-linux-ppc64le
+
+
+ javacpp.platform
+ linux-ppc64le
+
+
+
+
+
+ ${javacpp.platform}${javacpp.platform.extension}
+
+
+
+
+
+
+
+
+
+ javacpp-platform-linux-x86
+
+
+ javacpp.platform
+ linux-x86
+
+
+
+
+
+
+ ${javacpp.platform}${javacpp.platform.extension}
+
+
+
+
+
+
+
+
+ javacpp-platform-linux-x86_64
+
+
+ javacpp.platform
+ linux-x86_64
+
+
+
+
+
+
+
+ ${javacpp.platform}${javacpp.platform.extension}
+
+
+
+
+
+
+
+ javacpp-platform-macosx-x86_64
+
+
+ javacpp.platform
+ macosx-x86_64
+
+
+
+
+
+
+
+
+ ${javacpp.platform}${javacpp.platform.extension}
+
+
+
+
+
+
+ javacpp-platform-windows-x86
+
+
+ javacpp.platform
+ windows-x86
+
+
+
+
+
+
+
+
+
+ ${javacpp.platform}${javacpp.platform.extension}
+
+
+
+
+
+ javacpp-platform-windows-x86_64
+
+
+ javacpp.platform
+ windows-x86_64
+
+
+
+
+
+
+
+
+
+
+ ${javacpp.platform}${javacpp.platform.extension}
+
+
+
+
+
+ no-platform-dependency
+
+
+ ${basedir}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ javacpp.platform.linux-armhf-true
+
+
+ javacpp.platform.linux-armhf
+
+
+
+ linux-armhf
+
+
+
+
+ javacpp.platform.linux-arm64-true
+
+
+ javacpp.platform.linux-arm64
+
+
+
+ linux-arm64
+
+
+
+
+ javacpp.platform.linux-ppc64le-true
+
+
+ javacpp.platform.linux-ppc64le
+
+
+
+ linux-ppc64le
+
+
+
+
+ javacpp.platform.linux-x86-true
+
+
+ javacpp.platform.linux-x86
+
+
+
+ linux-x86
+
+
+
+
+ javacpp.platform.linux-x86_64-true
+
+
+ javacpp.platform.linux-x86_64
+
+
+
+ linux-x86_64
+
+
+
+
+ javacpp.platform.macosx-x86_64-true
+
+
+ javacpp.platform.macosx-x86_64
+
+
+
+ macosx-x86_64
+
+
+
+
+ javacpp.platform.windows-x86-true
+
+
+ javacpp.platform.windows-x86
+
+
+
+ windows-x86
+
+
+
+
+ javacpp.platform.windows-x86_64-true
+
+
+ javacpp.platform.windows-x86_64
+
+
+
+ windows-x86_64
+
+
+
+
+ javacpp.platform.custom-linux-arm
+
+
+ javacpp.platform.host
+
+ linuxarm
+
+
+ linux-armhf
+
+
+
+
+ javacpp.platform.custom-linux-armhf
+
+
+ javacpp.platform.host
+
+ linuxarmhf
+
+
+ linux-armhf
+
+
+
+
+ javacpp.platform.custom-linux-aarch64
+
+
+ javacpp.platform.host
+
+ linuxaarch64
+
+
+ linux-arm64
+
+
+
+
+ javacpp.platform.custom-linux-armv8
+
+
+ javacpp.platform.host
+
+ linuxarmv8
+
+
+ linux-arm64
+
+
+
+
+ javacpp.platform.custom-linux-arm64
+
+
+ javacpp.platform.host
+
+ linuxarm64
+
+
+ linux-arm64
+
+
+
+
+ javacpp.platform.custom-linux-ppc64le
+
+
+ javacpp.platform.host
+
+ linuxppc64le
+
+
+ linux-ppc64le
+
+
+
+
+ javacpp.platform.custom-linux-amd64
+
+
+ javacpp.platform.host
+
+ linuxamd64
+
+
+ linux-x86_64
+
+
+
+
+ javacpp.platform.custom-linux-x86-64
+
+
+ javacpp.platform.host
+
+ linuxx86-64
+
+
+ linux-x86_64
+
+
+
+
+ javacpp.platform.custom-linux-x86_64
+
+
+ javacpp.platform.host
+
+ linuxx86_64
+
+
+ linux-x86_64
+
+
+
+
+ javacpp.platform.custom-macosx-amd64
+
+
+ javacpp.platform.host
+
+ mac os xamd64
+
+
+ macosx-x86_64
+
+
+
+
+ javacpp.platform.custom-macosx-x86-64
+
+
+ javacpp.platform.host
+
+ mac os xx86-64
+
+
+ macosx-x86_64
+
+
+
+
+ javacpp.platform.custom-macosx-x86_64
+
+
+ javacpp.platform.host
+
+ mac os xx86_64
+
+
+ macosx-x86_64
+
+
+
+
+ javacpp.platform.custom-windows-amd64
+
+
+ javacpp.platform.host
+
+ windowsamd64
+
+
+ windows-x86_64
+
+
+
+
+ javacpp.platform.custom-windows-x86-64
+
+
+ javacpp.platform.host
+
+ windowsx86-64
+
+
+ windows-x86_64
+
+
+
+
+ javacpp.platform.custom-windows-x86_64
+
+
+ javacpp.platform.host
+
+ windowsx86_64
+
+
+ windows-x86_64
+
+
+
+
+
+ linuxos
+
+ linux
+
+
+ linux
+ linux
+
+
+
+ macosx
+
+ mac os x
+
+
+ darwin
+ macosx
+
+
+
+ windowsos
+
+ windows
+
+
+ windows
+ windows
+
+
+
+ arm
+
+ arm
+
+
+ armhf
+
+
+
+ aarch64
+
+ aarch64
+
+
+ arm64
+
+
+
+ armv8
+
+ armv8
+
+
+ arm64
+
+
+
+ i386
+
+ i386
+
+
+ x86
+
+
+
+ i486
+
+ i486
+
+
+ x86
+
+
+
+ i586
+
+ i586
+
+
+ x86
+
+
+
+ i686
+
+ i686
+
+
+ x86
+
+
+
+ amd64
+
+ amd64
+
+
+ x86_64
+
+
+
+ x86-64
+
+ x86-64
+
+
+ x86_64
+
+
+
+
+ linux
+
+
+ unix
+ Linux
+
+
+
+ linux
+
+
+
+ darwin
+
+
+ unix
+ Mac OS X
+
+
+
+ darwin
+
+
+
+ windows
+
+
+ windows
+
+
+
+ windows
+
+
+
+
+
+
diff --git a/tensorflow-core/tensorflow-core-api/.bazelrc b/tensorflow-core/tensorflow-core-api/.bazelrc
new file mode 100644
index 00000000000..4b673d3fcfb
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/.bazelrc
@@ -0,0 +1,172 @@
+# Android configs. Bazel needs to have --cpu and --fat_apk_cpu both set to the
+# target CPU to build transient dependencies correctly. See
+# https://docs.bazel.build/versions/master/user-manual.html#flag--fat_apk_cpu
+build:android --crosstool_top=//external:android/crosstool
+build:android --host_crosstool_top=@bazel_tools//tools/cpp:toolchain
+build:android_arm --config=android
+build:android_arm --cpu=armeabi-v7a
+build:android_arm --fat_apk_cpu=armeabi-v7a
+build:android_arm64 --config=android
+build:android_arm64 --cpu=arm64-v8a
+build:android_arm64 --fat_apk_cpu=arm64-v8a
+build:android_x86 --config=android
+build:android_x86 --cpu=x86
+build:android_x86 --fat_apk_cpu=x86
+build:android_x86_64 --config=android
+build:android_x86_64 --cpu=x86_64
+build:android_x86_64 --fat_apk_cpu=x86_64
+
+# Sets the default Apple platform to macOS.
+build --apple_platform_type=macos
+
+# Config to use a mostly-static build and disable modular op registration
+# support (this will revert to loading TensorFlow with RTLD_GLOBAL in Python).
+# By default, TensorFlow will build with a dependence on
+# //tensorflow:libtensorflow_framework.so.
+build:monolithic --define framework_shared_object=false
+
+# For projects which use TensorFlow as part of a Bazel build process, putting
+# nothing in a bazelrc will default to a monolithic build. The following line
+# opts in to modular op registration support by default.
+build --define framework_shared_object=true
+
+# Flags for open source build, always set to be true.
+build --define open_source_build=true
+test --define open_source_build=true
+
+# Please note that MKL on MacOS or windows is still not supported.
+# If you would like to use a local MKL instead of downloading, please set the
+# environment variable "TF_MKL_ROOT" every time before build.
+build:mkl --define=build_with_mkl=true --define=enable_mkl=true
+build:mkl --define=tensorflow_mkldnn_contraction_kernel=0
+build:mkl -c opt
+
+# This config option is used to enable MKL-DNN open source library only,
+# without depending on MKL binary version.
+build:mkl_open_source_only --define=build_with_mkl_dnn_only=true
+build:mkl_open_source_only --define=build_with_mkl_dnn_v1_only=true
+build:mkl_open_source_only --define=build_with_mkl=true --define=enable_mkl=true
+build:mkl_open_source_only --define=tensorflow_mkldnn_contraction_kernel=0
+
+build:download_clang --crosstool_top=@local_config_download_clang//:toolchain
+build:download_clang --define=using_clang=true
+build:download_clang --action_env TF_DOWNLOAD_CLANG=1
+# Instruct clang to use LLD for linking.
+# This only works with GPU builds currently, since Bazel sets -B/usr/bin in
+# auto-generated CPU crosstool, forcing /usr/bin/ld.lld to be preferred over
+# the downloaded one.
+build:download_clang_use_lld --linkopt='-fuse-ld=lld'
+
+# This config refers to building with CUDA available. It does not necessarily
+# mean that we build CUDA op kernels.
+build:using_cuda --define=using_cuda=true
+build:using_cuda --action_env TF_NEED_CUDA=1
+build:using_cuda --crosstool_top=@local_config_cuda//crosstool:toolchain
+
+# This config refers to building CUDA op kernels with nvcc.
+build:cuda --config=using_cuda
+build:cuda --define=using_cuda_nvcc=true
+
+# This config refers to building CUDA op kernels with clang.
+build:cuda_clang --config=using_cuda
+build:cuda_clang --define=using_cuda_clang=true
+build:cuda_clang --define=using_clang=true
+
+build:tensorrt --action_env TF_NEED_TENSORRT=1
+
+build:rocm --crosstool_top=@local_config_rocm//crosstool:toolchain
+build:rocm --define=using_rocm=true --define=using_rocm_hipcc=true
+build:rocm --action_env TF_NEED_ROCM=1
+
+build:sycl --crosstool_top=@local_config_sycl//crosstool:toolchain
+build:sycl --define=using_sycl=true
+build:sycl --action_env TF_NEED_OPENCL_SYCL=1
+
+build:sycl_nodouble --config=sycl
+build:sycl_nodouble --cxxopt -DTENSORFLOW_SYCL_NO_DOUBLE
+
+build:sycl_nodouble --config=sycl
+build:sycl_asan --copt -fno-omit-frame-pointer --copt -fsanitize-coverage=3 --copt -DGPR_NO_DIRECT_SYSCALLS --linkopt -fPIC --linkopt -fsanitize=address
+
+build:sycl_nodouble --config=sycl
+build:sycl_trisycl --define=using_trisycl=true
+
+# Options extracted from configure script
+build:gdr --define=with_gdr_support=true
+build:ngraph --define=with_ngraph_support=true
+build:verbs --define=with_verbs_support=true
+build:numa --define=with_numa_support=true
+
+# Options to disable default on features
+build:noaws --define=no_aws_support=true
+build:nogcp --define=no_gcp_support=true
+build:nohdfs --define=no_hdfs_support=true
+build:nokafka --define=no_kafka_support=true
+build:noignite --define=no_ignite_support=true
+build:nonccl --define=no_nccl_support=true
+
+build --define=use_fast_cpp_protos=true
+build --define=allow_oversize_protos=true
+
+build --spawn_strategy=standalone
+build --strategy=Genrule=standalone
+build -c opt
+
+# Make Bazel print out all options from rc files.
+build --announce_rc
+
+# Other build flags.
+build --define=grpc_no_ares=true
+
+# Modular TF build options
+build:dynamic_kernels --define=dynamic_loaded_kernels=true
+build:dynamic_kernels --copt=-DAUTOLOAD_DYNAMIC_KERNELS
+
+# Build TF with C++ 17 features.
+build:c++17 --cxxopt=-std=c++1z
+build:c++17 --cxxopt=-stdlib=libc++
+build:c++1z --config=c++17
+
+# Default paths for TF_SYSTEM_LIBS
+build --define=PREFIX=/usr
+build --define=LIBDIR=$(PREFIX)/lib
+build --define=INCLUDEDIR=$(PREFIX)/include
+
+# Suppress all warning messages.
+build:short_logs --output_filter=DONT_MATCH_ANYTHING
+
+# Options when using remote execution
+build:rbe --action_env=BAZEL_DO_NOT_DETECT_CPP_TOOLCHAIN=1
+build:rbe --auth_enabled=true
+build:rbe --auth_scope=https://www.googleapis.com/auth/cloud-source-tools
+build:rbe --define=EXECUTOR=remote
+build:rbe --flaky_test_attempts=3
+build:rbe --jobs=200
+build:rbe --remote_accept_cached=true
+build:rbe --remote_cache=remotebuildexecution.googleapis.com
+build:rbe --remote_executor=remotebuildexecution.googleapis.com
+build:rbe --remote_local_fallback=false
+build:rbe --remote_timeout=600
+build:rbe --spawn_strategy=remote
+build:rbe --strategy=Genrule=remote
+build:rbe --strategy=Closure=remote
+build:rbe --strategy=Javac=remote
+build:rbe --strategy=TestRunner=remote
+build:rbe --tls_enabled
+test:rbe --test_env=USER=anon
+
+# Options to build TensorFlow 1.x or 2.x.
+build:v1 --define=tf_api_version=1
+build:v2 --define=tf_api_version=2
+test:v1 --test_env=TF2_BEHAVIOR=0
+test:v2 --test_env=TF2_BEHAVIOR=1
+build --config=v2
+test --config=v2
+
+# Default options should come above this line
+
+# Options from ./configure
+try-import %workspace%/.tf_configure.bazelrc
+
+# Put user-specific options in .bazelrc.user
+try-import %workspace%/.bazelrc.user
diff --git a/tensorflow-core/tensorflow-core-api/BUILD b/tensorflow-core/tensorflow-core-api/BUILD
new file mode 100644
index 00000000000..dc3ef3784e5
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/BUILD
@@ -0,0 +1 @@
+load("@org_tensorflow//tensorflow:tensorflow.bzl", "tf_copts")
diff --git a/tensorflow-core/tensorflow-core-api/WORKSPACE b/tensorflow-core/tensorflow-core-api/WORKSPACE
new file mode 100644
index 00000000000..5821d0db5d8
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/WORKSPACE
@@ -0,0 +1,48 @@
+workspace(name = "tensorflow_core_api")
+
+#local_repository(
+# name = "tensorflow",
+# path = "/Users/klessard/Documents/Projects/MachineLearning/Sources/tensorflow",
+#)
+
+load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
+
+http_archive(
+ name = "org_tensorflow",
+ # https://github.com/tensorflow/tensorflow/issues/25213
+ patches = [":tensorflow-windows.patch"],
+ patch_args = ["-p1"],
+ urls = [
+ "https://mirror.bazel.build/github.com/tensorflow/tensorflow/archive/v2.0.0.tar.gz",
+ "https://github.com/tensorflow/tensorflow/archive/v2.0.0.tar.gz",
+ ],
+ sha256 = "49b5f0495cd681cbcb5296a4476853d4aea19a43bdd9f179c928a977308a0617",
+ strip_prefix = "tensorflow-2.0.0"
+)
+
+# START: Upstream TensorFlow dependencies
+# TensorFlow build depends on these dependencies.
+# Needs to be in-sync with TensorFlow sources.
+http_archive(
+ name = "io_bazel_rules_closure",
+ sha256 = "5b00383d08dd71f28503736db0500b6fb4dda47489ff5fc6bed42557c07c6ba9",
+ strip_prefix = "rules_closure-308b05b2419edb5c8ee0471b67a40403df940149",
+ urls = [
+ "https://storage.googleapis.com/mirror.tensorflow.org/github.com/bazelbuild/rules_closure/archive/308b05b2419edb5c8ee0471b67a40403df940149.tar.gz",
+ "https://github.com/bazelbuild/rules_closure/archive/308b05b2419edb5c8ee0471b67a40403df940149.tar.gz", # 2019-06-13
+ ],
+)
+http_archive(
+ name = "bazel_skylib",
+ sha256 = "2ef429f5d7ce7111263289644d233707dba35e39696377ebab8b0bc701f7818e",
+ urls = ["https://github.com/bazelbuild/bazel-skylib/releases/download/0.8.0/bazel-skylib.0.8.0.tar.gz"],
+)
+# END: Upstream TensorFlow dependencies
+load("@org_tensorflow//tensorflow:workspace.bzl", "tf_repositories")
+tf_repositories()
+
+load("@io_bazel_rules_closure//closure:defs.bzl", "closure_repositories")
+closure_repositories()
+
+load("@org_tensorflow//tensorflow:workspace.bzl", "tf_bind")
+tf_bind()
diff --git a/tensorflow-core/tensorflow-core-api/build.sh b/tensorflow-core/tensorflow-core-api/build.sh
new file mode 100755
index 00000000000..c7e5e8e8c5f
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/build.sh
@@ -0,0 +1,41 @@
+#!/bin/bash
+# Script to build native TensorFlow libraries
+set -eu
+
+# Allows us to use ccache with Bazel on Mac
+export BAZEL_USE_CPP_ONLY_TOOLCHAIN=1
+
+export BAZEL_VC="${VCINSTALLDIR:-}"
+if [[ -d $BAZEL_VC ]]; then
+ # Work around compiler issues on Windows documented mainly in configure.py
+ export BUILD_FLAGS="--copt=//arch:AVX `#--copt=//arch:AVX2` --copt=-DWIN32_LEAN_AND_MEAN --host_copt=-DWIN32_LEAN_AND_MEAN --copt=-DNOGDI --host_copt=-DNOGDI --define=override_eigen_strong_inline=true"
+ # https://software.intel.com/en-us/articles/intel-optimization-for-tensorflow-installation-guide#wind_B_S
+ export PATH=$PATH:$(pwd)/bazel-tensorflow-core-api/external/mkl_windows/lib/
+ export PYTHON_BIN_PATH=$(which python.exe)
+else
+ export BUILD_FLAGS="--copt=-msse4.1 --copt=-msse4.2 --copt=-mavx `#--copt=-mavx2 --copt=-mfma`"
+ export PYTHON_BIN_PATH=$(which python3)
+fi
+
+# Build C API of TensorFlow itself including a target to generate ops for Java
+bazel build $BUILD_FLAGS --python_path="$PYTHON_BIN_PATH" --config=monolithic --config=mkl --output_filter=DONT_MATCH_ANYTHING --verbose_failures @org_tensorflow//tensorflow:tensorflow @org_tensorflow//tensorflow/java:tensorflow
+
+# Normalize some paths with symbolic links
+TENSORFLOW_SO=(bazel-bin/external/org_tensorflow/tensorflow/libtensorflow.so.?.?.?)
+if [[ -f $TENSORFLOW_SO ]]; then
+ ln -sf $(basename $TENSORFLOW_SO) bazel-bin/external/org_tensorflow/tensorflow/libtensorflow.so
+ ln -sf $(basename $TENSORFLOW_SO) bazel-bin/external/org_tensorflow/tensorflow/libtensorflow.so.2
+fi
+TENSORFLOW_DYLIB=(bazel-bin/external/org_tensorflow/tensorflow/libtensorflow.?.?.?.dylib)
+if [[ -f $TENSORFLOW_DYLIB ]]; then
+ ln -sf $(basename $TENSORFLOW_DYLIB) bazel-bin/external/org_tensorflow/tensorflow/libtensorflow.dylib
+ ln -sf $(basename $TENSORFLOW_DYLIB) bazel-bin/external/org_tensorflow/tensorflow/libtensorflow.2.dylib
+fi
+TENSORFLOW_LIB=(bazel-bin/external/org_tensorflow/tensorflow/tensorflow.dll.if.lib)
+if [[ -f $TENSORFLOW_LIB ]]; then
+ ln -sf $(basename $TENSORFLOW_LIB) bazel-bin/external/org_tensorflow/tensorflow/tensorflow.lib
+fi
+
+# Copy only main generated Java source files for ops
+mkdir -p src/gen/java/
+cp -r bazel-genfiles/external/org_tensorflow/tensorflow/java/ops/src/main/java/* src/gen/java/
diff --git a/tensorflow-core/tensorflow-core-api/external/tensorflow-windows.patch b/tensorflow-core/tensorflow-core-api/external/tensorflow-windows.patch
new file mode 100644
index 00000000000..df96098954f
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/external/tensorflow-windows.patch
@@ -0,0 +1,30 @@
+diff -ruN tensorflow-1.14.0-rc1/third_party/mkl/mkl.BUILD tensorflow-1.14.0-rc1-windows/third_party/mkl/mkl.BUILD
+--- tensorflow-1.14.0-rc1/third_party/mkl/mkl.BUILD 2019-06-08 11:23:20.000000000 +0900
++++ tensorflow-1.14.0-rc1-windows/third_party/mkl/mkl.BUILD 2019-06-12 08:30:41.232683854 +0900
+@@ -35,11 +35,23 @@
+ visibility = ["//visibility:public"],
+ )
+
++cc_import(
++ name = "iomp5",
++ interface_library = "lib/libiomp5md.lib",
++ system_provided = 1,
++)
++
++cc_import(
++ name = "mklml",
++ interface_library = "lib/mklml.lib",
++ system_provided = 1,
++)
++
+ cc_library(
+ name = "mkl_libs_windows",
+- srcs = [
+- "lib/libiomp5md.lib",
+- "lib/mklml.lib",
++ deps = [
++ "iomp5",
++ "mklml",
+ ],
+ linkopts = ["/FORCE:MULTIPLE"],
+ visibility = ["//visibility:public"],
diff --git a/tensorflow-core/tensorflow-core-api/pom.xml b/tensorflow-core/tensorflow-core-api/pom.xml
new file mode 100644
index 00000000000..35bed91f824
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/pom.xml
@@ -0,0 +1,312 @@
+
+
+ 4.0.0
+
+
+ org.tensorflow
+ tensorflow-core
+ 0.1.0-SNAPSHOT
+
+ tensorflow-core-api
+ jar
+
+ TensorFlow Core API Library
+ Platform-dependent native code and pure-Java code for the TensorFlow machine intelligence library.
+
+
+
+ org.bytedeco
+ javacpp
+ ${javacpp.version}
+
+
+ org.bytedeco
+ mkl-dnn
+ ${mkl-dnn.version}
+
+
+ org.tensorflow
+ tensorflow-core-generator
+ ${project.version}
+ true
+
+
+ junit
+ junit
+ 4.12
+ test
+
+
+
+
+
+
+ org.codehaus.mojo
+ build-helper-maven-plugin
+ 3.0.0
+
+
+ add-source
+ generate-sources
+
+ add-source
+
+
+
+ ${project.basedir}/src/gen/java
+
+
+
+
+
+
+ maven-resources-plugin
+ 3.1.0
+
+
+ javacpp-parser
+ generate-sources
+
+ resources
+
+
+
+
+
+ maven-compiler-plugin
+ 3.8.0
+
+ 1.7
+ 1.7
+
+
+
+ default-compile
+
+
+ org.tensorflow.processor.operator.OperatorProcessor
+
+
+ ${project.basedir}/src/gen/annotations
+
+
+
+ javacpp-parser
+ generate-sources
+
+ compile
+
+
+
+ org/tensorflow/c_api/presets/*.java
+
+
+
+
+
+
+ org.bytedeco
+ javacpp
+ ${javacpp.version}
+
+ ${javacpp.platform.properties}
+
+
+ platform.root
+ ${javacpp.platform.root}
+
+
+ platform.compiler
+ ${javacpp.platform.compiler}
+
+
+ platform.extension
+ ${javacpp.platform.extension}
+
+
+ ${project.build.outputDirectory}
+
+ ${project.basedir}/
+ ${project.basedir}/bazel-tensorflow-core-api/external/org_tensorflow/
+
+
+ ${project.basedir}/bazel-bin/external/org_tensorflow/tensorflow/
+
+
+ ${project.basedir}/bazel-tensorflow-core-api/external/mkl_linux/lib/
+ ${project.basedir}/bazel-tensorflow-core-api/external/mkl_darwin/lib/
+ ${project.basedir}/bazel-tensorflow-core-api/external/mkl_windows/lib/
+
+
+ ${project.basedir}/src/main/native/eager_operation_builder_jni.cc
+ ${project.basedir}/src/main/native/eager_operation_jni.cc
+ ${project.basedir}/src/main/native/eager_session_jni.cc
+ ${project.basedir}/src/main/native/exception_jni.cc
+ ${project.basedir}/src/main/native/graph_jni.cc
+ ${project.basedir}/src/main/native/graph_operation_builder_jni.cc
+ ${project.basedir}/src/main/native/graph_operation_jni.cc
+ ${project.basedir}/src/main/native/saved_model_bundle_jni.cc
+ ${project.basedir}/src/main/native/server_jni.cc
+ ${project.basedir}/src/main/native/session_jni.cc
+ ${project.basedir}/src/main/native/tensorflow_jni.cc
+ ${project.basedir}/src/main/native/tensor_jni.cc
+ ${project.basedir}/src/main/native/utils_jni.cc
+
+
+
+
+ javacpp-validate
+ validate
+
+ build
+
+
+
+ javacpp-build
+ initialize
+
+ build
+
+
+ ${javacpp.build.skip}
+
+ bash
+ ${project.basedir}/build.sh
+
+ ${project.basedir}
+
+
+
+ javacpp-clean
+ clean
+
+ build
+
+
+ ${javacpp.build.skip}
+
+ bazel
+ clean
+
+ ${project.basedir}
+
+
+
+ javacpp-parser
+ generate-sources
+
+ parse
+
+
+ ${javacpp.parser.skip}
+ ${project.basedir}/src/gen/java
+ org.tensorflow.c_api.presets.*
+
+
+
+ javacpp-compiler
+ process-classes
+
+ build
+
+
+ ${project.build.directory}/native/org/tensorflow/c_api/${javacpp.platform}${javacpp.platform.extension}/
+ ${javacpp.compiler.skip}
+ org.tensorflow.c_api.**
+ true
+ true
+
+
+
+
+
+ maven-surefire-plugin
+ 2.22.0
+
+ ${project.build.directory}/native/
+
+
+
+ maven-jar-plugin
+ 3.1.0
+
+
+ default-jar
+ package
+
+ jar
+
+
+
+ org/tensorflow/**
+
+
+
+
+ javacpp-${javacpp.platform}${javacpp.platform.extension}
+ package
+
+ jar
+
+
+ ${javacpp.platform}${javacpp.platform.extension}
+ true
+
+
+ org/tensorflow/c_api/${javacpp.platform}${javacpp.platform.extension}/
+
+ ${project.build.directory}/native
+
+ org/tensorflow/c_api/${javacpp.platform}${javacpp.platform.extension}/*.exp
+ org/tensorflow/c_api/${javacpp.platform}${javacpp.platform.extension}/*.lib
+ org/tensorflow/c_api/${javacpp.platform}${javacpp.platform.extension}/*.obj
+ org/tensorflow/c_api/${javacpp.platform}${javacpp.platform.extension}/*mklml*
+ org/tensorflow/c_api/${javacpp.platform}${javacpp.platform.extension}/*iomp5*
+ org/tensorflow/c_api/${javacpp.platform}${javacpp.platform.extension}/*msvcr120*
+
+
+
+
+
+
+ maven-source-plugin
+ 3.0.1
+
+
+ attach-sources
+ leave-disabled-to-not-generate-sources-twice-on-release
+
+
+ attach-source
+
+ jar-no-fork
+
+
+
+
+
+ maven-javadoc-plugin
+ 3.0.1
+
+
+ attach-javadocs
+
+ jar
+
+
+ false
+ 256m
+ 2048m
+
+ http://bytedeco.org/javacpp/apidocs
+
+
+
+
+
+
+
+
diff --git a/tensorflow-core/tensorflow-core-api/src/gen/annotations/org/tensorflow/op/AudioOps.java b/tensorflow-core/tensorflow-core-api/src/gen/annotations/org/tensorflow/op/AudioOps.java
new file mode 100644
index 00000000000..e284ca9edb6
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/gen/annotations/org/tensorflow/op/AudioOps.java
@@ -0,0 +1,73 @@
+package org.tensorflow.op;
+
+import org.tensorflow.Operand;
+import org.tensorflow.op.audio.AudioSpectrogram;
+import org.tensorflow.op.audio.DecodeWav;
+import org.tensorflow.op.audio.EncodeWav;
+import org.tensorflow.op.audio.Mfcc;
+
+/**
+ * An API for building {@code audio} operations as {@link Op Op}s
+ *
+ * @see {@link Ops}
+ */
+public final class AudioOps {
+ private final Scope scope;
+
+ AudioOps(Scope scope) {
+ this.scope = scope;
+ }
+
+ /**
+ * Builds an {@link AudioSpectrogram} operation
+ *
+ * @param input Float representation of audio data.
+ * @param windowSize How wide the input window is in samples. For the highest efficiency
+ * @param stride How widely apart the center of adjacent sample windows should be.
+ * @param options carries optional attributes values
+ * @return a new instance of AudioSpectrogram
+ * @see org.tensorflow.op.audio.AudioSpectrogram
+ */
+ public AudioSpectrogram audioSpectrogram(Operand input, Long windowSize, Long stride,
+ AudioSpectrogram.Options... options) {
+ return AudioSpectrogram.create(scope, input, windowSize, stride, options);
+ }
+
+ /**
+ * Builds an {@link EncodeWav} operation
+ *
+ * @param audio 2-D with shape `[length, channels]`.
+ * @param sampleRate Scalar containing the sample frequency.
+ * @return a new instance of EncodeWav
+ * @see org.tensorflow.op.audio.EncodeWav
+ */
+ public EncodeWav encodeWav(Operand audio, Operand sampleRate) {
+ return EncodeWav.create(scope, audio, sampleRate);
+ }
+
+ /**
+ * Builds an {@link DecodeWav} operation
+ *
+ * @param contents The WAV-encoded audio, usually from a file.
+ * @param options carries optional attributes values
+ * @return a new instance of DecodeWav
+ * @see org.tensorflow.op.audio.DecodeWav
+ */
+ public DecodeWav decodeWav(Operand contents, DecodeWav.Options... options) {
+ return DecodeWav.create(scope, contents, options);
+ }
+
+ /**
+ * Builds an {@link Mfcc} operation
+ *
+ * @param spectrogram Typically produced by the Spectrogram op, with magnitude_squared
+ * @param sampleRate How many samples per second the source audio used.
+ * @param options carries optional attributes values
+ * @return a new instance of Mfcc
+ * @see org.tensorflow.op.audio.Mfcc
+ */
+ public Mfcc mfcc(Operand spectrogram, Operand sampleRate,
+ Mfcc.Options... options) {
+ return Mfcc.create(scope, spectrogram, sampleRate, options);
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/gen/annotations/org/tensorflow/op/BitwiseOps.java b/tensorflow-core/tensorflow-core-api/src/gen/annotations/org/tensorflow/op/BitwiseOps.java
new file mode 100644
index 00000000000..51798c83e24
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/gen/annotations/org/tensorflow/op/BitwiseOps.java
@@ -0,0 +1,93 @@
+package org.tensorflow.op;
+
+import org.tensorflow.Operand;
+import org.tensorflow.op.bitwise.BitwiseAnd;
+import org.tensorflow.op.bitwise.BitwiseOr;
+import org.tensorflow.op.bitwise.BitwiseXor;
+import org.tensorflow.op.bitwise.Invert;
+import org.tensorflow.op.bitwise.LeftShift;
+import org.tensorflow.op.bitwise.RightShift;
+
+/**
+ * An API for building {@code bitwise} operations as {@link Op Op}s
+ *
+ * @see {@link Ops}
+ */
+public final class BitwiseOps {
+ private final Scope scope;
+
+ BitwiseOps(Scope scope) {
+ this.scope = scope;
+ }
+
+ /**
+ * Builds an {@link Invert} operation
+ *
+ * @param x
+ * @return a new instance of Invert
+ * @see org.tensorflow.op.bitwise.Invert
+ */
+ public Invert invert(Operand x) {
+ return Invert.create(scope, x);
+ }
+
+ /**
+ * Builds an {@link BitwiseAnd} operation
+ *
+ * @param x
+ * @param y
+ * @return a new instance of BitwiseAnd
+ * @see org.tensorflow.op.bitwise.BitwiseAnd
+ */
+ public BitwiseAnd bitwiseAnd(Operand x, Operand y) {
+ return BitwiseAnd.create(scope, x, y);
+ }
+
+ /**
+ * Builds an {@link BitwiseOr} operation
+ *
+ * @param x
+ * @param y
+ * @return a new instance of BitwiseOr
+ * @see org.tensorflow.op.bitwise.BitwiseOr
+ */
+ public BitwiseOr bitwiseOr(Operand x, Operand y) {
+ return BitwiseOr.create(scope, x, y);
+ }
+
+ /**
+ * Builds an {@link LeftShift} operation
+ *
+ * @param x
+ * @param y
+ * @return a new instance of LeftShift
+ * @see org.tensorflow.op.bitwise.LeftShift
+ */
+ public LeftShift leftShift(Operand x, Operand y) {
+ return LeftShift.create(scope, x, y);
+ }
+
+ /**
+ * Builds an {@link RightShift} operation
+ *
+ * @param x
+ * @param y
+ * @return a new instance of RightShift
+ * @see org.tensorflow.op.bitwise.RightShift
+ */
+ public RightShift rightShift(Operand x, Operand y) {
+ return RightShift.create(scope, x, y);
+ }
+
+ /**
+ * Builds an {@link BitwiseXor} operation
+ *
+ * @param x
+ * @param y
+ * @return a new instance of BitwiseXor
+ * @see org.tensorflow.op.bitwise.BitwiseXor
+ */
+ public BitwiseXor bitwiseXor(Operand x, Operand y) {
+ return BitwiseXor.create(scope, x, y);
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/gen/annotations/org/tensorflow/op/DataOps.java b/tensorflow-core/tensorflow-core-api/src/gen/annotations/org/tensorflow/op/DataOps.java
new file mode 100644
index 00000000000..6bb3e67e93f
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/gen/annotations/org/tensorflow/op/DataOps.java
@@ -0,0 +1,176 @@
+package org.tensorflow.op;
+
+import java.util.List;
+import org.tensorflow.Operand;
+import org.tensorflow.Shape;
+import org.tensorflow.op.data.AnonymousIterator;
+import org.tensorflow.op.data.DeserializeIterator;
+import org.tensorflow.op.data.IteratorGetNext;
+import org.tensorflow.op.data.IteratorGetNextAsOptional;
+import org.tensorflow.op.data.IteratorGetNextSync;
+import org.tensorflow.op.data.IteratorToStringHandle;
+import org.tensorflow.op.data.MakeIterator;
+import org.tensorflow.op.data.OptionalFromValue;
+import org.tensorflow.op.data.OptionalGetValue;
+import org.tensorflow.op.data.OptionalHasValue;
+import org.tensorflow.op.data.OptionalNone;
+import org.tensorflow.op.data.SerializeIterator;
+
+/**
+ * An API for building {@code data} operations as {@link Op Op}s
+ *
+ * @see {@link Ops}
+ */
+public final class DataOps {
+ private final Scope scope;
+
+ DataOps(Scope scope) {
+ this.scope = scope;
+ }
+
+ /**
+ * Builds an {@link OptionalNone} operation
+ *
+ * @return a new instance of OptionalNone
+ * @see org.tensorflow.op.data.OptionalNone
+ */
+ public OptionalNone optionalNone() {
+ return OptionalNone.create(scope);
+ }
+
+ /**
+ * Builds an {@link AnonymousIterator} operation
+ *
+ * @param outputTypes
+ * @param outputShapes
+ * @return a new instance of AnonymousIterator
+ * @see org.tensorflow.op.data.AnonymousIterator
+ */
+ public AnonymousIterator anonymousIterator(List> outputTypes, List outputShapes) {
+ return AnonymousIterator.create(scope, outputTypes, outputShapes);
+ }
+
+ /**
+ * Builds an {@link OptionalGetValue} operation
+ *
+ * @param optional
+ * @param outputTypes
+ * @param outputShapes
+ * @return a new instance of OptionalGetValue
+ * @see org.tensorflow.op.data.OptionalGetValue
+ */
+ public OptionalGetValue optionalGetValue(Operand> optional, List> outputTypes,
+ List outputShapes) {
+ return OptionalGetValue.create(scope, optional, outputTypes, outputShapes);
+ }
+
+ /**
+ * Builds an {@link IteratorGetNext} operation
+ *
+ * @param iterator
+ * @param outputTypes
+ * @param outputShapes
+ * @return a new instance of IteratorGetNext
+ * @see org.tensorflow.op.data.IteratorGetNext
+ */
+ public IteratorGetNext iteratorGetNext(Operand> iterator, List> outputTypes,
+ List outputShapes) {
+ return IteratorGetNext.create(scope, iterator, outputTypes, outputShapes);
+ }
+
+ /**
+ * Builds an {@link OptionalFromValue} operation
+ *
+ * @param components
+ * @return a new instance of OptionalFromValue
+ * @see org.tensorflow.op.data.OptionalFromValue
+ */
+ public OptionalFromValue optionalFromValue(Iterable> components) {
+ return OptionalFromValue.create(scope, components);
+ }
+
+ /**
+ * Builds an {@link IteratorGetNextAsOptional} operation
+ *
+ * @param iterator
+ * @param outputTypes
+ * @param outputShapes
+ * @return a new instance of IteratorGetNextAsOptional
+ * @see org.tensorflow.op.data.IteratorGetNextAsOptional
+ */
+ public IteratorGetNextAsOptional iteratorGetNextAsOptional(Operand> iterator,
+ List> outputTypes, List outputShapes) {
+ return IteratorGetNextAsOptional.create(scope, iterator, outputTypes, outputShapes);
+ }
+
+ /**
+ * Builds an {@link IteratorToStringHandle} operation
+ *
+ * @param resourceHandle A handle to an iterator resource.
+ * @return a new instance of IteratorToStringHandle
+ * @see org.tensorflow.op.data.IteratorToStringHandle
+ */
+ public IteratorToStringHandle iteratorToStringHandle(Operand> resourceHandle) {
+ return IteratorToStringHandle.create(scope, resourceHandle);
+ }
+
+ /**
+ * Builds an {@link IteratorGetNextSync} operation
+ *
+ * @param iterator
+ * @param outputTypes
+ * @param outputShapes
+ * @return a new instance of IteratorGetNextSync
+ * @see org.tensorflow.op.data.IteratorGetNextSync
+ */
+ public IteratorGetNextSync iteratorGetNextSync(Operand> iterator, List> outputTypes,
+ List outputShapes) {
+ return IteratorGetNextSync.create(scope, iterator, outputTypes, outputShapes);
+ }
+
+ /**
+ * Builds an {@link OptionalHasValue} operation
+ *
+ * @param optional
+ * @return a new instance of OptionalHasValue
+ * @see org.tensorflow.op.data.OptionalHasValue
+ */
+ public OptionalHasValue optionalHasValue(Operand> optional) {
+ return OptionalHasValue.create(scope, optional);
+ }
+
+ /**
+ * Builds an {@link MakeIterator} operation
+ *
+ * @param dataset
+ * @param iterator
+ * @return a new instance of MakeIterator
+ * @see org.tensorflow.op.data.MakeIterator
+ */
+ public MakeIterator makeIterator(Operand> dataset, Operand> iterator) {
+ return MakeIterator.create(scope, dataset, iterator);
+ }
+
+ /**
+ * Builds an {@link DeserializeIterator} operation
+ *
+ * @param resourceHandle A handle to an iterator resource.
+ * @param serialized A variant tensor storing the state of the iterator contained in the
+ * @return a new instance of DeserializeIterator
+ * @see org.tensorflow.op.data.DeserializeIterator
+ */
+ public DeserializeIterator deserializeIterator(Operand> resourceHandle, Operand> serialized) {
+ return DeserializeIterator.create(scope, resourceHandle, serialized);
+ }
+
+ /**
+ * Builds an {@link SerializeIterator} operation
+ *
+ * @param resourceHandle A handle to an iterator resource.
+ * @return a new instance of SerializeIterator
+ * @see org.tensorflow.op.data.SerializeIterator
+ */
+ public SerializeIterator serializeIterator(Operand> resourceHandle) {
+ return SerializeIterator.create(scope, resourceHandle);
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/gen/annotations/org/tensorflow/op/DtypesOps.java b/tensorflow-core/tensorflow-core-api/src/gen/annotations/org/tensorflow/op/DtypesOps.java
new file mode 100644
index 00000000000..7766fefed69
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/gen/annotations/org/tensorflow/op/DtypesOps.java
@@ -0,0 +1,57 @@
+package org.tensorflow.op;
+
+import org.tensorflow.Operand;
+import org.tensorflow.op.dtypes.AsString;
+import org.tensorflow.op.dtypes.Cast;
+import org.tensorflow.op.dtypes.Complex;
+
+/**
+ * An API for building {@code dtypes} operations as {@link Op Op}s
+ *
+ * @see {@link Ops}
+ */
+public final class DtypesOps {
+ private final Scope scope;
+
+ DtypesOps(Scope scope) {
+ this.scope = scope;
+ }
+
+ /**
+ * Builds an {@link Cast} operation
+ *
+ * @param x
+ * @param DstT
+ * @param options carries optional attributes values
+ * @return a new instance of Cast
+ * @see org.tensorflow.op.dtypes.Cast
+ */
+ public Cast cast(Operand x, Class DstT, Cast.Options... options) {
+ return Cast.create(scope, x, DstT, options);
+ }
+
+ /**
+ * Builds an {@link AsString} operation
+ *
+ * @param input
+ * @param options carries optional attributes values
+ * @return a new instance of AsString
+ * @see org.tensorflow.op.dtypes.AsString
+ */
+ public AsString asString(Operand input, AsString.Options... options) {
+ return AsString.create(scope, input, options);
+ }
+
+ /**
+ * Builds an {@link Complex} operation
+ *
+ * @param real
+ * @param imag
+ * @param Tout
+ * @return a new instance of Complex
+ * @see org.tensorflow.op.dtypes.Complex
+ */
+ public Complex complex(Operand real, Operand imag, Class Tout) {
+ return Complex.create(scope, real, imag, Tout);
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/gen/annotations/org/tensorflow/op/ImageOps.java b/tensorflow-core/tensorflow-core-api/src/gen/annotations/org/tensorflow/op/ImageOps.java
new file mode 100644
index 00000000000..98e4a46455c
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/gen/annotations/org/tensorflow/op/ImageOps.java
@@ -0,0 +1,476 @@
+package org.tensorflow.op;
+
+import java.util.List;
+import org.tensorflow.Operand;
+import org.tensorflow.op.image.AdjustContrast;
+import org.tensorflow.op.image.AdjustHue;
+import org.tensorflow.op.image.AdjustSaturation;
+import org.tensorflow.op.image.CropAndResize;
+import org.tensorflow.op.image.CropAndResizeGradBoxes;
+import org.tensorflow.op.image.CropAndResizeGradImage;
+import org.tensorflow.op.image.DecodeAndCropJpeg;
+import org.tensorflow.op.image.DecodeBmp;
+import org.tensorflow.op.image.DecodeGif;
+import org.tensorflow.op.image.DecodeJpeg;
+import org.tensorflow.op.image.DecodePng;
+import org.tensorflow.op.image.DrawBoundingBoxes;
+import org.tensorflow.op.image.EncodeJpeg;
+import org.tensorflow.op.image.EncodeJpegVariableQuality;
+import org.tensorflow.op.image.EncodePng;
+import org.tensorflow.op.image.ExtractGlimpse;
+import org.tensorflow.op.image.ExtractImagePatches;
+import org.tensorflow.op.image.ExtractJpegShape;
+import org.tensorflow.op.image.HsvToRgb;
+import org.tensorflow.op.image.NonMaxSuppression;
+import org.tensorflow.op.image.NonMaxSuppressionWithOverlaps;
+import org.tensorflow.op.image.QuantizedResizeBilinear;
+import org.tensorflow.op.image.RandomCrop;
+import org.tensorflow.op.image.ResizeArea;
+import org.tensorflow.op.image.ResizeBicubic;
+import org.tensorflow.op.image.ResizeBilinear;
+import org.tensorflow.op.image.ResizeNearestNeighbor;
+import org.tensorflow.op.image.RgbToHsv;
+import org.tensorflow.op.image.SampleDistortedBoundingBox;
+import org.tensorflow.types.UInt8;
+
+/**
+ * An API for building {@code image} operations as {@link Op Op}s
+ *
+ * @see {@link Ops}
+ */
+public final class ImageOps {
+ private final Scope scope;
+
+ ImageOps(Scope scope) {
+ this.scope = scope;
+ }
+
+ /**
+ * Builds an {@link AdjustHue} operation
+ *
+ * @param images Images to adjust. At least 3-D.
+ * @param delta A float delta to add to the hue.
+ * @return a new instance of AdjustHue
+ * @see org.tensorflow.op.image.AdjustHue
+ */
+ public AdjustHue adjustHue(Operand images, Operand delta) {
+ return AdjustHue.create(scope, images, delta);
+ }
+
+ /**
+ * Builds an {@link EncodePng} operation
+ *
+ * @param image 3-D with shape `[height, width, channels]`.
+ * @param options carries optional attributes values
+ * @return a new instance of EncodePng
+ * @see org.tensorflow.op.image.EncodePng
+ */
+ public EncodePng encodePng(Operand image, EncodePng.Options... options) {
+ return EncodePng.create(scope, image, options);
+ }
+
+ /**
+ * Builds an {@link SampleDistortedBoundingBox} operation
+ *
+ * @param imageSize 1-D, containing `[height, width, channels]`.
+ * @param boundingBoxes 3-D with shape `[batch, N, 4]` describing the N bounding boxes
+ * @param minObjectCovered The cropped area of the image must contain at least this
+ * @param options carries optional attributes values
+ * @return a new instance of SampleDistortedBoundingBox
+ * @see org.tensorflow.op.image.SampleDistortedBoundingBox
+ */
+ public SampleDistortedBoundingBox sampleDistortedBoundingBox(
+ Operand imageSize, Operand boundingBoxes, Operand minObjectCovered,
+ SampleDistortedBoundingBox.Options... options) {
+ return SampleDistortedBoundingBox.create(scope, imageSize, boundingBoxes, minObjectCovered, options);
+ }
+
+ /**
+ * Builds an {@link DecodeGif} operation
+ *
+ * @param contents 0-D. The GIF-encoded image.
+ * @return a new instance of DecodeGif
+ * @see org.tensorflow.op.image.DecodeGif
+ */
+ public DecodeGif decodeGif(Operand contents) {
+ return DecodeGif.create(scope, contents);
+ }
+
+ /**
+ * Builds an {@link RandomCrop} operation
+ *
+ * @param image 3-D of shape `[height, width, channels]`.
+ * @param size 1-D of length 2 containing: `crop_height`, `crop_width`..
+ * @param options carries optional attributes values
+ * @return a new instance of RandomCrop
+ * @see org.tensorflow.op.image.RandomCrop
+ */
+ public RandomCrop randomCrop(Operand image, Operand size,
+ RandomCrop.Options... options) {
+ return RandomCrop.create(scope, image, size, options);
+ }
+
+ /**
+ * Builds an {@link DecodePng} operation
+ *
+ * @param contents 0-D. The PNG-encoded image.
+ * @param dtype
+ * @param options carries optional attributes values
+ * @return a new instance of DecodePng
+ * @see org.tensorflow.op.image.DecodePng
+ */
+ public DecodePng decodePng(Operand contents, Class dtype,
+ DecodePng.Options... options) {
+ return DecodePng.create(scope, contents, dtype, options);
+ }
+
+ /**
+ * Builds an {@link NonMaxSuppression} operation
+ *
+ * @param boxes A 2-D float tensor of shape `[num_boxes, 4]`.
+ * @param scores A 1-D float tensor of shape `[num_boxes]` representing a single
+ * @param maxOutputSize A scalar integer tensor representing the maximum number of
+ * @param iouThreshold A 0-D float tensor representing the threshold for deciding whether
+ * @param scoreThreshold A 0-D float tensor representing the threshold for deciding when to remove
+ * @param options carries optional attributes values
+ * @return a new instance of NonMaxSuppression
+ * @see org.tensorflow.op.image.NonMaxSuppression
+ */
+ public NonMaxSuppression nonMaxSuppression(Operand boxes,
+ Operand scores, Operand maxOutputSize, Operand iouThreshold,
+ Operand scoreThreshold, NonMaxSuppression.Options... options) {
+ return NonMaxSuppression.create(scope, boxes, scores, maxOutputSize, iouThreshold, scoreThreshold, options);
+ }
+
+ /**
+ * Builds an {@link ResizeBilinear} operation
+ *
+ * @param images 4-D with shape `[batch, height, width, channels]`.
+ * @param size = A 1-D int32 Tensor of 2 elements: `new_height, new_width`. The
+ * @param options carries optional attributes values
+ * @return a new instance of ResizeBilinear
+ * @see org.tensorflow.op.image.ResizeBilinear
+ */
+ public ResizeBilinear resizeBilinear(Operand images, Operand size,
+ ResizeBilinear.Options... options) {
+ return ResizeBilinear.create(scope, images, size, options);
+ }
+
+ /**
+ * Builds an {@link DecodePng} operation
+ *
+ * @param contents 0-D. The PNG-encoded image.
+ * @param options carries optional attributes values
+ * @return a new instance of DecodePng
+ * @see org.tensorflow.op.image.DecodePng
+ */
+ public DecodePng decodePng(Operand contents, DecodePng.Options... options) {
+ return DecodePng.create(scope, contents, options);
+ }
+
+ /**
+ * Builds an {@link ExtractJpegShape} operation
+ *
+ * @param contents 0-D. The JPEG-encoded image.
+ * @return a new instance of ExtractJpegShape
+ * @see org.tensorflow.op.image.ExtractJpegShape
+ */
+ public ExtractJpegShape extractJpegShape(Operand contents) {
+ return ExtractJpegShape.create(scope, contents);
+ }
+
+ /**
+ * Builds an {@link AdjustContrast} operation
+ *
+ * @param images Images to adjust. At least 3-D.
+ * @param contrastFactor A float multiplier for adjusting contrast.
+ * @return a new instance of AdjustContrast
+ * @see org.tensorflow.op.image.AdjustContrast
+ */
+ public AdjustContrast adjustContrast(Operand images,
+ Operand contrastFactor) {
+ return AdjustContrast.create(scope, images, contrastFactor);
+ }
+
+ /**
+ * Builds an {@link CropAndResizeGradImage} operation
+ *
+ * @param grads A 4-D tensor of shape `[num_boxes, crop_height, crop_width, depth]`.
+ * @param boxes A 2-D tensor of shape `[num_boxes, 4]`. The `i`-th row of the tensor
+ * @param boxInd A 1-D tensor of shape `[num_boxes]` with int32 values in `[0, batch)`.
+ * @param imageSize A 1-D tensor with value `[batch, image_height, image_width, depth]`
+ * @param T
+ * @param options carries optional attributes values
+ * @return a new instance of CropAndResizeGradImage
+ * @see org.tensorflow.op.image.CropAndResizeGradImage
+ */
+ public CropAndResizeGradImage cropAndResizeGradImage(Operand grads,
+ Operand boxes, Operand boxInd, Operand imageSize, Class T,
+ CropAndResizeGradImage.Options... options) {
+ return CropAndResizeGradImage.create(scope, grads, boxes, boxInd, imageSize, T, options);
+ }
+
+ /**
+ * Builds an {@link CropAndResize} operation
+ *
+ * @param image A 4-D tensor of shape `[batch, image_height, image_width, depth]`.
+ * @param boxes A 2-D tensor of shape `[num_boxes, 4]`. The `i`-th row of the tensor
+ * @param boxInd A 1-D tensor of shape `[num_boxes]` with int32 values in `[0, batch)`.
+ * @param cropSize A 1-D tensor of 2 elements, `size = [crop_height, crop_width]`. All
+ * @param options carries optional attributes values
+ * @return a new instance of CropAndResize
+ * @see org.tensorflow.op.image.CropAndResize
+ */
+ public CropAndResize cropAndResize(Operand image, Operand boxes,
+ Operand boxInd, Operand cropSize, CropAndResize.Options... options) {
+ return CropAndResize.create(scope, image, boxes, boxInd, cropSize, options);
+ }
+
+ /**
+ * Builds an {@link AdjustSaturation} operation
+ *
+ * @param images Images to adjust. At least 3-D.
+ * @param scale A float scale to add to the saturation.
+ * @return a new instance of AdjustSaturation
+ * @see org.tensorflow.op.image.AdjustSaturation
+ */
+ public AdjustSaturation adjustSaturation(Operand images,
+ Operand scale) {
+ return AdjustSaturation.create(scope, images, scale);
+ }
+
+ /**
+ * Builds an {@link DecodeAndCropJpeg} operation
+ *
+ * @param contents 0-D. The JPEG-encoded image.
+ * @param cropWindow 1-D. The crop window: [crop_y, crop_x, crop_height, crop_width].
+ * @param options carries optional attributes values
+ * @return a new instance of DecodeAndCropJpeg
+ * @see org.tensorflow.op.image.DecodeAndCropJpeg
+ */
+ public DecodeAndCropJpeg decodeAndCropJpeg(Operand contents, Operand cropWindow,
+ DecodeAndCropJpeg.Options... options) {
+ return DecodeAndCropJpeg.create(scope, contents, cropWindow, options);
+ }
+
+ /**
+ * Builds an {@link DecodeJpeg} operation
+ *
+ * @param contents 0-D. The JPEG-encoded image.
+ * @param options carries optional attributes values
+ * @return a new instance of DecodeJpeg
+ * @see org.tensorflow.op.image.DecodeJpeg
+ */
+ public DecodeJpeg decodeJpeg(Operand contents, DecodeJpeg.Options... options) {
+ return DecodeJpeg.create(scope, contents, options);
+ }
+
+ /**
+ * Builds an {@link ExtractGlimpse} operation
+ *
+ * @param input A 4-D float tensor of shape `[batch_size, height, width, channels]`.
+ * @param size A 1-D tensor of 2 elements containing the size of the glimpses
+ * @param offsets A 2-D integer tensor of shape `[batch_size, 2]` containing
+ * @param options carries optional attributes values
+ * @return a new instance of ExtractGlimpse
+ * @see org.tensorflow.op.image.ExtractGlimpse
+ */
+ public ExtractGlimpse extractGlimpse(Operand input, Operand size,
+ Operand offsets, ExtractGlimpse.Options... options) {
+ return ExtractGlimpse.create(scope, input, size, offsets, options);
+ }
+
+ /**
+ * Builds an {@link DecodeBmp} operation
+ *
+ * @param contents 0-D. The BMP-encoded image.
+ * @param options carries optional attributes values
+ * @return a new instance of DecodeBmp
+ * @see org.tensorflow.op.image.DecodeBmp
+ */
+ public DecodeBmp decodeBmp(Operand contents, DecodeBmp.Options... options) {
+ return DecodeBmp.create(scope, contents, options);
+ }
+
+ /**
+ * Builds an {@link ExtractJpegShape} operation
+ *
+ * @param contents 0-D. The JPEG-encoded image.
+ * @param outputType (Optional) The output type of the operation (int32 or int64).
+ * @return a new instance of ExtractJpegShape
+ * @see org.tensorflow.op.image.ExtractJpegShape
+ */
+ public ExtractJpegShape extractJpegShape(Operand contents,
+ Class outputType) {
+ return ExtractJpegShape.create(scope, contents, outputType);
+ }
+
+ /**
+ * Builds an {@link ResizeArea} operation
+ *
+ * @param images 4-D with shape `[batch, height, width, channels]`.
+ * @param size = A 1-D int32 Tensor of 2 elements: `new_height, new_width`. The
+ * @param options carries optional attributes values
+ * @return a new instance of ResizeArea
+ * @see org.tensorflow.op.image.ResizeArea
+ */
+ public ResizeArea resizeArea(Operand images, Operand size,
+ ResizeArea.Options... options) {
+ return ResizeArea.create(scope, images, size, options);
+ }
+
+ /**
+ * Builds an {@link RgbToHsv} operation
+ *
+ * @param images 1-D or higher rank. RGB data to convert. Last dimension must be size 3.
+ * @return a new instance of RgbToHsv
+ * @see org.tensorflow.op.image.RgbToHsv
+ */
+ public RgbToHsv rgbToHsv(Operand images) {
+ return RgbToHsv.create(scope, images);
+ }
+
+ /**
+ * Builds an {@link EncodeJpegVariableQuality} operation
+ *
+ * @param images Images to adjust. At least 3-D.
+ * @param quality An int quality to encode to.
+ * @return a new instance of EncodeJpegVariableQuality
+ * @see org.tensorflow.op.image.EncodeJpegVariableQuality
+ */
+ public EncodeJpegVariableQuality encodeJpegVariableQuality(Operand images,
+ Operand quality) {
+ return EncodeJpegVariableQuality.create(scope, images, quality);
+ }
+
+ /**
+ * Builds an {@link CropAndResizeGradBoxes} operation
+ *
+ * @param grads A 4-D tensor of shape `[num_boxes, crop_height, crop_width, depth]`.
+ * @param image A 4-D tensor of shape `[batch, image_height, image_width, depth]`.
+ * @param boxes A 2-D tensor of shape `[num_boxes, 4]`. The `i`-th row of the tensor
+ * @param boxInd A 1-D tensor of shape `[num_boxes]` with int32 values in `[0, batch)`.
+ * @param options carries optional attributes values
+ * @return a new instance of CropAndResizeGradBoxes
+ * @see org.tensorflow.op.image.CropAndResizeGradBoxes
+ */
+ public CropAndResizeGradBoxes cropAndResizeGradBoxes(Operand grads,
+ Operand image, Operand boxes, Operand boxInd,
+ CropAndResizeGradBoxes.Options... options) {
+ return CropAndResizeGradBoxes.create(scope, grads, image, boxes, boxInd, options);
+ }
+
+ /**
+ * Builds an {@link ExtractImagePatches} operation
+ *
+ * @param images 4-D Tensor with shape `[batch, in_rows, in_cols, depth]`.
+ * @param ksizes The size of the sliding window for each dimension of `images`.
+ * @param strides How far the centers of two consecutive patches are in
+ * @param rates Must be: `[1, rate_rows, rate_cols, 1]`. This is the
+ * @param padding The type of padding algorithm to use.
+ * @return a new instance of ExtractImagePatches
+ * @see org.tensorflow.op.image.ExtractImagePatches
+ */
+ public ExtractImagePatches extractImagePatches(Operand images,
+ List ksizes, List strides, List rates, String padding) {
+ return ExtractImagePatches.create(scope, images, ksizes, strides, rates, padding);
+ }
+
+ /**
+ * Builds an {@link DrawBoundingBoxes} operation
+ *
+ * @param images 4-D with shape `[batch, height, width, depth]`. A batch of images.
+ * @param boxes 3-D with shape `[batch, num_bounding_boxes, 4]` containing bounding
+ * @return a new instance of DrawBoundingBoxes
+ * @see org.tensorflow.op.image.DrawBoundingBoxes
+ */
+ public DrawBoundingBoxes drawBoundingBoxes(Operand images,
+ Operand boxes) {
+ return DrawBoundingBoxes.create(scope, images, boxes);
+ }
+
+ /**
+ * Builds an {@link NonMaxSuppressionWithOverlaps} operation
+ *
+ * @param overlaps A 2-D float tensor of shape `[num_boxes, num_boxes]` representing
+ * @param scores A 1-D float tensor of shape `[num_boxes]` representing a single
+ * @param maxOutputSize A scalar integer tensor representing the maximum number of
+ * @param overlapThreshold A 0-D float tensor representing the threshold for deciding whether
+ * @param scoreThreshold A 0-D float tensor representing the threshold for deciding when to remove
+ * @return a new instance of NonMaxSuppressionWithOverlaps
+ * @see org.tensorflow.op.image.NonMaxSuppressionWithOverlaps
+ */
+ public NonMaxSuppressionWithOverlaps nonMaxSuppressionWithOverlaps(Operand overlaps,
+ Operand scores, Operand maxOutputSize, Operand overlapThreshold,
+ Operand scoreThreshold) {
+ return NonMaxSuppressionWithOverlaps.create(scope, overlaps, scores, maxOutputSize, overlapThreshold, scoreThreshold);
+ }
+
+ /**
+ * Builds an {@link ResizeBicubic} operation
+ *
+ * @param images 4-D with shape `[batch, height, width, channels]`.
+ * @param size = A 1-D int32 Tensor of 2 elements: `new_height, new_width`. The
+ * @param options carries optional attributes values
+ * @return a new instance of ResizeBicubic
+ * @see org.tensorflow.op.image.ResizeBicubic
+ */
+ public ResizeBicubic resizeBicubic(Operand images, Operand size,
+ ResizeBicubic.Options... options) {
+ return ResizeBicubic.create(scope, images, size, options);
+ }
+
+ /**
+ * Builds an {@link QuantizedResizeBilinear} operation
+ *
+ * @param images 4-D with shape `[batch, height, width, channels]`.
+ * @param size = A 1-D int32 Tensor of 2 elements: `new_height, new_width`. The
+ * @param min
+ * @param max
+ * @param options carries optional attributes values
+ * @return a new instance of QuantizedResizeBilinear
+ * @see org.tensorflow.op.image.QuantizedResizeBilinear
+ */
+ public QuantizedResizeBilinear quantizedResizeBilinear(Operand images,
+ Operand size, Operand min, Operand max,
+ QuantizedResizeBilinear.Options... options) {
+ return QuantizedResizeBilinear.create(scope, images, size, min, max, options);
+ }
+
+ /**
+ * Builds an {@link ResizeNearestNeighbor} operation
+ *
+ * @param images 4-D with shape `[batch, height, width, channels]`.
+ * @param size = A 1-D int32 Tensor of 2 elements: `new_height, new_width`. The
+ * @param options carries optional attributes values
+ * @return a new instance of ResizeNearestNeighbor
+ * @see org.tensorflow.op.image.ResizeNearestNeighbor
+ */
+ public ResizeNearestNeighbor resizeNearestNeighbor(Operand images,
+ Operand size, ResizeNearestNeighbor.Options... options) {
+ return ResizeNearestNeighbor.create(scope, images, size, options);
+ }
+
+ /**
+ * Builds an {@link HsvToRgb} operation
+ *
+ * @param images 1-D or higher rank. HSV data to convert. Last dimension must be size 3.
+ * @return a new instance of HsvToRgb
+ * @see org.tensorflow.op.image.HsvToRgb
+ */
+ public HsvToRgb hsvToRgb(Operand images) {
+ return HsvToRgb.create(scope, images);
+ }
+
+ /**
+ * Builds an {@link EncodeJpeg} operation
+ *
+ * @param image 3-D with shape `[height, width, channels]`.
+ * @param options carries optional attributes values
+ * @return a new instance of EncodeJpeg
+ * @see org.tensorflow.op.image.EncodeJpeg
+ */
+ public EncodeJpeg encodeJpeg(Operand image, EncodeJpeg.Options... options) {
+ return EncodeJpeg.create(scope, image, options);
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/gen/annotations/org/tensorflow/op/IoOps.java b/tensorflow-core/tensorflow-core-api/src/gen/annotations/org/tensorflow/op/IoOps.java
new file mode 100644
index 00000000000..04978cbdab3
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/gen/annotations/org/tensorflow/op/IoOps.java
@@ -0,0 +1,695 @@
+package org.tensorflow.op;
+
+import java.util.List;
+import org.tensorflow.Operand;
+import org.tensorflow.Shape;
+import org.tensorflow.op.io.DecodeBase64;
+import org.tensorflow.op.io.DecodeCompressed;
+import org.tensorflow.op.io.DecodeCsv;
+import org.tensorflow.op.io.DecodeJsonExample;
+import org.tensorflow.op.io.DecodeRaw;
+import org.tensorflow.op.io.DeserializeManySparse;
+import org.tensorflow.op.io.EncodeBase64;
+import org.tensorflow.op.io.FifoQueue;
+import org.tensorflow.op.io.FixedLengthRecordReader;
+import org.tensorflow.op.io.IdentityReader;
+import org.tensorflow.op.io.LmdbReader;
+import org.tensorflow.op.io.MatchingFiles;
+import org.tensorflow.op.io.PaddingFifoQueue;
+import org.tensorflow.op.io.ParseExample;
+import org.tensorflow.op.io.ParseSequenceExample;
+import org.tensorflow.op.io.ParseSingleExample;
+import org.tensorflow.op.io.ParseSingleSequenceExample;
+import org.tensorflow.op.io.ParseTensor;
+import org.tensorflow.op.io.PriorityQueue;
+import org.tensorflow.op.io.QueueClose;
+import org.tensorflow.op.io.QueueDequeue;
+import org.tensorflow.op.io.QueueDequeueMany;
+import org.tensorflow.op.io.QueueDequeueUpTo;
+import org.tensorflow.op.io.QueueEnqueue;
+import org.tensorflow.op.io.QueueEnqueueMany;
+import org.tensorflow.op.io.QueueIsClosed;
+import org.tensorflow.op.io.QueueSize;
+import org.tensorflow.op.io.RandomShuffleQueue;
+import org.tensorflow.op.io.ReadFile;
+import org.tensorflow.op.io.ReaderNumRecordsProduced;
+import org.tensorflow.op.io.ReaderNumWorkUnitsCompleted;
+import org.tensorflow.op.io.ReaderRead;
+import org.tensorflow.op.io.ReaderReadUpTo;
+import org.tensorflow.op.io.ReaderReset;
+import org.tensorflow.op.io.ReaderRestoreState;
+import org.tensorflow.op.io.ReaderSerializeState;
+import org.tensorflow.op.io.SerializeManySparse;
+import org.tensorflow.op.io.SerializeSparse;
+import org.tensorflow.op.io.SerializeTensor;
+import org.tensorflow.op.io.ShardedFilename;
+import org.tensorflow.op.io.ShardedFilespec;
+import org.tensorflow.op.io.TextLineReader;
+import org.tensorflow.op.io.TfRecordReader;
+import org.tensorflow.op.io.WholeFileReader;
+import org.tensorflow.op.io.WriteFile;
+
+/**
+ * An API for building {@code io} operations as {@link Op Op}s
+ *
+ * @see {@link Ops}
+ */
+public final class IoOps {
+ private final Scope scope;
+
+ IoOps(Scope scope) {
+ this.scope = scope;
+ }
+
+ /**
+ * Builds an {@link QueueEnqueueMany} operation
+ *
+ * @param handle The handle to a queue.
+ * @param components One or more tensors from which the enqueued tensors should
+ * @param options carries optional attributes values
+ * @return a new instance of QueueEnqueueMany
+ * @see org.tensorflow.op.io.QueueEnqueueMany
+ */
+ public QueueEnqueueMany queueEnqueueMany(Operand> handle, Iterable> components,
+ QueueEnqueueMany.Options... options) {
+ return QueueEnqueueMany.create(scope, handle, components, options);
+ }
+
+ /**
+ * Builds an {@link ReaderReset} operation
+ *
+ * @param readerHandle Handle to a Reader.
+ * @return a new instance of ReaderReset
+ * @see org.tensorflow.op.io.ReaderReset
+ */
+ public ReaderReset readerReset(Operand> readerHandle) {
+ return ReaderReset.create(scope, readerHandle);
+ }
+
+ /**
+ * Builds an {@link QueueDequeue} operation
+ *
+ * @param handle The handle to a queue.
+ * @param componentTypes The type of each component in a tuple.
+ * @param options carries optional attributes values
+ * @return a new instance of QueueDequeue
+ * @see org.tensorflow.op.io.QueueDequeue
+ */
+ public QueueDequeue queueDequeue(Operand> handle, List> componentTypes,
+ QueueDequeue.Options... options) {
+ return QueueDequeue.create(scope, handle, componentTypes, options);
+ }
+
+ /**
+ * Builds an {@link ReaderRestoreState} operation
+ *
+ * @param readerHandle Handle to a Reader.
+ * @param state Result of a ReaderSerializeState of a Reader with type
+ * @return a new instance of ReaderRestoreState
+ * @see org.tensorflow.op.io.ReaderRestoreState
+ */
+ public ReaderRestoreState readerRestoreState(Operand> readerHandle, Operand state) {
+ return ReaderRestoreState.create(scope, readerHandle, state);
+ }
+
+ /**
+ * Builds an {@link ParseSingleExample} operation
+ *
+ * @param serialized A vector containing a batch of binary serialized Example protos.
+ * @param denseDefaults A list of Tensors (some may be empty), whose length matches
+ * @param numSparse The number of sparse features to be parsed from the example. This
+ * @param sparseKeys A list of `num_sparse` strings.
+ * @param denseKeys The keys expected in the Examples' features associated with dense
+ * @param sparseTypes A list of `num_sparse` types; the data types of data in each
+ * @param denseShapes The shapes of data in each Feature given in dense_keys.
+ * @return a new instance of ParseSingleExample
+ * @see org.tensorflow.op.io.ParseSingleExample
+ */
+ public ParseSingleExample parseSingleExample(Operand serialized,
+ Iterable> denseDefaults, Long numSparse, List sparseKeys,
+ List denseKeys, List> sparseTypes, List denseShapes) {
+ return ParseSingleExample.create(scope, serialized, denseDefaults, numSparse, sparseKeys, denseKeys, sparseTypes, denseShapes);
+ }
+
+ /**
+ * Builds an {@link DecodeJsonExample} operation
+ *
+ * @param jsonExamples Each string is a JSON object serialized according to the JSON
+ * @return a new instance of DecodeJsonExample
+ * @see org.tensorflow.op.io.DecodeJsonExample
+ */
+ public DecodeJsonExample decodeJsonExample(Operand jsonExamples) {
+ return DecodeJsonExample.create(scope, jsonExamples);
+ }
+
+ /**
+ * Builds an {@link ParseSequenceExample} operation
+ *
+ * @param serialized A vector containing binary serialized SequenceExample protos.
+ * @param debugName A vector containing the names of the serialized protos.
+ * @param contextDenseDefaults A list of Ncontext_dense Tensors (some may be empty).
+ * @param featureListDenseMissingAssumedEmpty A vector listing the
+ * @param contextSparseKeys A list of Ncontext_sparse string Tensors (scalars).
+ * @param contextDenseKeys A list of Ncontext_dense string Tensors (scalars).
+ * @param featureListSparseKeys A list of Nfeature_list_sparse string Tensors
+ * @param featureListDenseKeys A list of Nfeature_list_dense string Tensors (scalars).
+ * @param contextSparseTypes A list of Ncontext_sparse types; the data types of data in
+ * @param featureListDenseTypes
+ * @param featureListSparseTypes A list of Nfeature_list_sparse types; the data types
+ * @param options carries optional attributes values
+ * @return a new instance of ParseSequenceExample
+ * @see org.tensorflow.op.io.ParseSequenceExample
+ */
+ public ParseSequenceExample parseSequenceExample(Operand serialized,
+ Operand debugName, Iterable> contextDenseDefaults,
+ List featureListDenseMissingAssumedEmpty, List contextSparseKeys,
+ List contextDenseKeys, List featureListSparseKeys,
+ List featureListDenseKeys, List> contextSparseTypes,
+ List> featureListDenseTypes, List> featureListSparseTypes,
+ ParseSequenceExample.Options... options) {
+ return ParseSequenceExample.create(scope, serialized, debugName, contextDenseDefaults, featureListDenseMissingAssumedEmpty, contextSparseKeys, contextDenseKeys, featureListSparseKeys, featureListDenseKeys, contextSparseTypes, featureListDenseTypes, featureListSparseTypes, options);
+ }
+
+ /**
+ * Builds an {@link IdentityReader} operation
+ *
+ * @param options carries optional attributes values
+ * @return a new instance of IdentityReader
+ * @see org.tensorflow.op.io.IdentityReader
+ */
+ public IdentityReader identityReader(IdentityReader.Options... options) {
+ return IdentityReader.create(scope, options);
+ }
+
+ /**
+ * Builds an {@link SerializeManySparse} operation
+ *
+ * @param sparseIndices 2-D. The `indices` of the minibatch `SparseTensor`.
+ * @param sparseValues 1-D. The `values` of the minibatch `SparseTensor`.
+ * @param sparseShape 1-D. The `shape` of the minibatch `SparseTensor`.
+ * @return a new instance of SerializeManySparse
+ * @see org.tensorflow.op.io.SerializeManySparse
+ */
+ public SerializeManySparse serializeManySparse(Operand sparseIndices,
+ Operand sparseValues, Operand sparseShape) {
+ return SerializeManySparse.create(scope, sparseIndices, sparseValues, sparseShape);
+ }
+
+ /**
+ * Builds an {@link ShardedFilename} operation
+ *
+ * @param basename
+ * @param shard
+ * @param numShards
+ * @return a new instance of ShardedFilename
+ * @see org.tensorflow.op.io.ShardedFilename
+ */
+ public ShardedFilename shardedFilename(Operand basename, Operand shard,
+ Operand numShards) {
+ return ShardedFilename.create(scope, basename, shard, numShards);
+ }
+
+ /**
+ * Builds an {@link WholeFileReader} operation
+ *
+ * @param options carries optional attributes values
+ * @return a new instance of WholeFileReader
+ * @see org.tensorflow.op.io.WholeFileReader
+ */
+ public WholeFileReader wholeFileReader(WholeFileReader.Options... options) {
+ return WholeFileReader.create(scope, options);
+ }
+
+ /**
+ * Builds an {@link SerializeSparse} operation
+ *
+ * @param sparseIndices 2-D. The `indices` of the `SparseTensor`.
+ * @param sparseValues 1-D. The `values` of the `SparseTensor`.
+ * @param sparseShape 1-D. The `shape` of the `SparseTensor`.
+ * @param outType The `dtype` to use for serialization; the supported types are `string`
+ * @return a new instance of SerializeSparse
+ * @see org.tensorflow.op.io.SerializeSparse
+ */
+ public SerializeSparse serializeSparse(Operand sparseIndices,
+ Operand sparseValues, Operand sparseShape, Class outType) {
+ return SerializeSparse.create(scope, sparseIndices, sparseValues, sparseShape, outType);
+ }
+
+ /**
+ * Builds an {@link PriorityQueue} operation
+ *
+ * @param componentTypes The type of each component in a value.
+ * @param shapes The shape of each component in a value. The length of this attr must
+ * @param options carries optional attributes values
+ * @return a new instance of PriorityQueue
+ * @see org.tensorflow.op.io.PriorityQueue
+ */
+ public PriorityQueue priorityQueue(List> componentTypes, List shapes,
+ PriorityQueue.Options... options) {
+ return PriorityQueue.create(scope, componentTypes, shapes, options);
+ }
+
+ /**
+ * Builds an {@link ReaderReadUpTo} operation
+ *
+ * @param readerHandle Handle to a `Reader`.
+ * @param queueHandle Handle to a `Queue`, with string work items.
+ * @param numRecords number of records to read from `Reader`.
+ * @return a new instance of ReaderReadUpTo
+ * @see org.tensorflow.op.io.ReaderReadUpTo
+ */
+ public ReaderReadUpTo readerReadUpTo(Operand> readerHandle, Operand> queueHandle,
+ Operand numRecords) {
+ return ReaderReadUpTo.create(scope, readerHandle, queueHandle, numRecords);
+ }
+
+ /**
+ * Builds an {@link ReaderNumRecordsProduced} operation
+ *
+ * @param readerHandle Handle to a Reader.
+ * @return a new instance of ReaderNumRecordsProduced
+ * @see org.tensorflow.op.io.ReaderNumRecordsProduced
+ */
+ public ReaderNumRecordsProduced readerNumRecordsProduced(Operand> readerHandle) {
+ return ReaderNumRecordsProduced.create(scope, readerHandle);
+ }
+
+ /**
+ * Builds an {@link QueueEnqueue} operation
+ *
+ * @param handle The handle to a queue.
+ * @param components One or more tensors from which the enqueued tensors should be taken.
+ * @param options carries optional attributes values
+ * @return a new instance of QueueEnqueue
+ * @see org.tensorflow.op.io.QueueEnqueue
+ */
+ public QueueEnqueue queueEnqueue(Operand> handle, Iterable> components,
+ QueueEnqueue.Options... options) {
+ return QueueEnqueue.create(scope, handle, components, options);
+ }
+
+ /**
+ * Builds an {@link QueueDequeueUpTo} operation
+ *
+ * @param handle The handle to a queue.
+ * @param n The number of tuples to dequeue.
+ * @param componentTypes The type of each component in a tuple.
+ * @param options carries optional attributes values
+ * @return a new instance of QueueDequeueUpTo
+ * @see org.tensorflow.op.io.QueueDequeueUpTo
+ */
+ public QueueDequeueUpTo queueDequeueUpTo(Operand> handle, Operand n,
+ List> componentTypes, QueueDequeueUpTo.Options... options) {
+ return QueueDequeueUpTo.create(scope, handle, n, componentTypes, options);
+ }
+
+ /**
+ * Builds an {@link DecodeCompressed} operation
+ *
+ * @param bytes A Tensor of string which is compressed.
+ * @param options carries optional attributes values
+ * @return a new instance of DecodeCompressed
+ * @see org.tensorflow.op.io.DecodeCompressed
+ */
+ public DecodeCompressed decodeCompressed(Operand bytes,
+ DecodeCompressed.Options... options) {
+ return DecodeCompressed.create(scope, bytes, options);
+ }
+
+ /**
+ * Builds an {@link ReaderSerializeState} operation
+ *
+ * @param readerHandle Handle to a Reader.
+ * @return a new instance of ReaderSerializeState
+ * @see org.tensorflow.op.io.ReaderSerializeState
+ */
+ public ReaderSerializeState readerSerializeState(Operand> readerHandle) {
+ return ReaderSerializeState.create(scope, readerHandle);
+ }
+
+ /**
+ * Builds an {@link QueueClose} operation
+ *
+ * @param handle The handle to a queue.
+ * @param options carries optional attributes values
+ * @return a new instance of QueueClose
+ * @see org.tensorflow.op.io.QueueClose
+ */
+ public QueueClose queueClose(Operand> handle, QueueClose.Options... options) {
+ return QueueClose.create(scope, handle, options);
+ }
+
+ /**
+ * Builds an {@link ParseExample} operation
+ *
+ * @param serialized A vector containing a batch of binary serialized Example protos.
+ * @param names A vector containing the names of the serialized protos.
+ * @param sparseKeys A list of Nsparse string Tensors (scalars).
+ * @param denseKeys A list of Ndense string Tensors (scalars).
+ * @param denseDefaults A list of Ndense Tensors (some may be empty).
+ * @param sparseTypes A list of Nsparse types; the data types of data in each Feature
+ * @param denseShapes A list of Ndense shapes; the shapes of data in each Feature
+ * @return a new instance of ParseExample
+ * @see org.tensorflow.op.io.ParseExample
+ */
+ public ParseExample parseExample(Operand serialized, Operand names,
+ Iterable> sparseKeys, Iterable> denseKeys,
+ Iterable> denseDefaults, List> sparseTypes, List denseShapes) {
+ return ParseExample.create(scope, serialized, names, sparseKeys, denseKeys, denseDefaults, sparseTypes, denseShapes);
+ }
+
+ /**
+ * Builds an {@link WriteFile} operation
+ *
+ * @param filename scalar. The name of the file to which we write the contents.
+ * @param contents scalar. The content to be written to the output file.
+ * @return a new instance of WriteFile
+ * @see org.tensorflow.op.io.WriteFile
+ */
+ public WriteFile writeFile(Operand filename, Operand contents) {
+ return WriteFile.create(scope, filename, contents);
+ }
+
+ /**
+ * Builds an {@link RandomShuffleQueue} operation
+ *
+ * @param componentTypes The type of each component in a value.
+ * @param options carries optional attributes values
+ * @return a new instance of RandomShuffleQueue
+ * @see org.tensorflow.op.io.RandomShuffleQueue
+ */
+ public RandomShuffleQueue randomShuffleQueue(List> componentTypes,
+ RandomShuffleQueue.Options... options) {
+ return RandomShuffleQueue.create(scope, componentTypes, options);
+ }
+
+ /**
+ * Builds an {@link ReadFile} operation
+ *
+ * @param filename
+ * @return a new instance of ReadFile
+ * @see org.tensorflow.op.io.ReadFile
+ */
+ public ReadFile readFile(Operand filename) {
+ return ReadFile.create(scope, filename);
+ }
+
+ /**
+ * Builds an {@link FifoQueue} operation
+ *
+ * @param componentTypes The type of each component in a value.
+ * @param options carries optional attributes values
+ * @return a new instance of FifoQueue
+ * @see org.tensorflow.op.io.FifoQueue
+ */
+ public FifoQueue fifoQueue(List> componentTypes, FifoQueue.Options... options) {
+ return FifoQueue.create(scope, componentTypes, options);
+ }
+
+ /**
+ * Builds an {@link DeserializeManySparse} operation
+ *
+ * @param serializedSparse 2-D, The `N` serialized `SparseTensor` objects.
+ * @param dtype The `dtype` of the serialized `SparseTensor` objects.
+ * @return a new instance of DeserializeManySparse
+ * @see org.tensorflow.op.io.DeserializeManySparse
+ */
+ public DeserializeManySparse deserializeManySparse(Operand serializedSparse,
+ Class dtype) {
+ return DeserializeManySparse.create(scope, serializedSparse, dtype);
+ }
+
+ /**
+ * Builds an {@link TfRecordReader} operation
+ *
+ * @param options carries optional attributes values
+ * @return a new instance of TfRecordReader
+ * @see org.tensorflow.op.io.TfRecordReader
+ */
+ public TfRecordReader tfRecordReader(TfRecordReader.Options... options) {
+ return TfRecordReader.create(scope, options);
+ }
+
+ /**
+ * Builds an {@link EncodeBase64} operation
+ *
+ * @param input Strings to be encoded.
+ * @param options carries optional attributes values
+ * @return a new instance of EncodeBase64
+ * @see org.tensorflow.op.io.EncodeBase64
+ */
+ public EncodeBase64 encodeBase64(Operand input, EncodeBase64.Options... options) {
+ return EncodeBase64.create(scope, input, options);
+ }
+
+ /**
+ * Builds an {@link QueueDequeueMany} operation
+ *
+ * @param handle The handle to a queue.
+ * @param n The number of tuples to dequeue.
+ * @param componentTypes The type of each component in a tuple.
+ * @param options carries optional attributes values
+ * @return a new instance of QueueDequeueMany
+ * @see org.tensorflow.op.io.QueueDequeueMany
+ */
+ public QueueDequeueMany queueDequeueMany(Operand> handle, Operand n,
+ List> componentTypes, QueueDequeueMany.Options... options) {
+ return QueueDequeueMany.create(scope, handle, n, componentTypes, options);
+ }
+
+ /**
+ * Builds an {@link LmdbReader} operation
+ *
+ * @param options carries optional attributes values
+ * @return a new instance of LmdbReader
+ * @see org.tensorflow.op.io.LmdbReader
+ */
+ public LmdbReader lmdbReader(LmdbReader.Options... options) {
+ return LmdbReader.create(scope, options);
+ }
+
+ /**
+ * Builds an {@link ReaderNumWorkUnitsCompleted} operation
+ *
+ * @param readerHandle Handle to a Reader.
+ * @return a new instance of ReaderNumWorkUnitsCompleted
+ * @see org.tensorflow.op.io.ReaderNumWorkUnitsCompleted
+ */
+ public ReaderNumWorkUnitsCompleted readerNumWorkUnitsCompleted(Operand> readerHandle) {
+ return ReaderNumWorkUnitsCompleted.create(scope, readerHandle);
+ }
+
+ /**
+ * Builds an {@link ParseTensor} operation
+ *
+ * @param serialized A scalar string containing a serialized TensorProto proto.
+ * @param outType The type of the serialized tensor. The provided type must match the
+ * @return a new instance of ParseTensor
+ * @see org.tensorflow.op.io.ParseTensor
+ */
+ public ParseTensor parseTensor(Operand serialized, Class outType) {
+ return ParseTensor.create(scope, serialized, outType);
+ }
+
+ /**
+ * Builds an {@link ReaderRead} operation
+ *
+ * @param readerHandle Handle to a Reader.
+ * @param queueHandle Handle to a Queue, with string work items.
+ * @return a new instance of ReaderRead
+ * @see org.tensorflow.op.io.ReaderRead
+ */
+ public ReaderRead readerRead(Operand> readerHandle, Operand> queueHandle) {
+ return ReaderRead.create(scope, readerHandle, queueHandle);
+ }
+
+ /**
+ * Builds an {@link DecodeBase64} operation
+ *
+ * @param input Base64 strings to decode.
+ * @return a new instance of DecodeBase64
+ * @see org.tensorflow.op.io.DecodeBase64
+ */
+ public DecodeBase64 decodeBase64(Operand input) {
+ return DecodeBase64.create(scope, input);
+ }
+
+ /**
+ * Builds an {@link PaddingFifoQueue} operation
+ *
+ * @param componentTypes The type of each component in a value.
+ * @param options carries optional attributes values
+ * @return a new instance of PaddingFifoQueue
+ * @see org.tensorflow.op.io.PaddingFifoQueue
+ */
+ public PaddingFifoQueue paddingFifoQueue(List> componentTypes,
+ PaddingFifoQueue.Options... options) {
+ return PaddingFifoQueue.create(scope, componentTypes, options);
+ }
+
+ /**
+ * Builds an {@link ParseSingleSequenceExample} operation
+ *
+ * @param serialized A scalar containing a binary serialized SequenceExample proto.
+ * @param featureListDenseMissingAssumedEmpty A vector listing the
+ * @param contextSparseKeys A list of Ncontext_sparse string Tensors (scalars).
+ * @param contextDenseKeys A list of Ncontext_dense string Tensors (scalars).
+ * @param featureListSparseKeys A list of Nfeature_list_sparse string Tensors
+ * @param featureListDenseKeys A list of Nfeature_list_dense string Tensors (scalars).
+ * @param contextDenseDefaults A list of Ncontext_dense Tensors (some may be empty).
+ * @param debugName A scalar containing the name of the serialized proto.
+ * @param contextSparseTypes A list of Ncontext_sparse types; the data types of data in
+ * @param featureListDenseTypes
+ * @param featureListSparseTypes A list of Nfeature_list_sparse types; the data types
+ * @param options carries optional attributes values
+ * @return a new instance of ParseSingleSequenceExample
+ * @see org.tensorflow.op.io.ParseSingleSequenceExample
+ */
+ public ParseSingleSequenceExample parseSingleSequenceExample(Operand serialized,
+ Operand featureListDenseMissingAssumedEmpty,
+ Iterable> contextSparseKeys, Iterable> contextDenseKeys,
+ Iterable> featureListSparseKeys,
+ Iterable> featureListDenseKeys, Iterable> contextDenseDefaults,
+ Operand debugName, List> contextSparseTypes,
+ List> featureListDenseTypes, List> featureListSparseTypes,
+ ParseSingleSequenceExample.Options... options) {
+ return ParseSingleSequenceExample.create(scope, serialized, featureListDenseMissingAssumedEmpty, contextSparseKeys, contextDenseKeys, featureListSparseKeys, featureListDenseKeys, contextDenseDefaults, debugName, contextSparseTypes, featureListDenseTypes, featureListSparseTypes, options);
+ }
+
+ /**
+ * Builds an {@link SerializeTensor} operation
+ *
+ * @param tensor A Tensor of type `T`.
+ * @return a new instance of SerializeTensor
+ * @see org.tensorflow.op.io.SerializeTensor
+ */
+ public SerializeTensor serializeTensor(Operand tensor) {
+ return SerializeTensor.create(scope, tensor);
+ }
+
+ /**
+ * Builds an {@link ShardedFilespec} operation
+ *
+ * @param basename
+ * @param numShards
+ * @return a new instance of ShardedFilespec
+ * @see org.tensorflow.op.io.ShardedFilespec
+ */
+ public ShardedFilespec shardedFilespec(Operand basename, Operand numShards) {
+ return ShardedFilespec.create(scope, basename, numShards);
+ }
+
+ /**
+ * Builds an {@link SerializeSparse} operation
+ *
+ * @param sparseIndices 2-D. The `indices` of the `SparseTensor`.
+ * @param sparseValues 1-D. The `values` of the `SparseTensor`.
+ * @param sparseShape 1-D. The `shape` of the `SparseTensor`.
+ * @return a new instance of SerializeSparse
+ * @see org.tensorflow.op.io.SerializeSparse
+ */
+ public SerializeSparse serializeSparse(Operand sparseIndices,
+ Operand sparseValues, Operand sparseShape) {
+ return SerializeSparse.create(scope, sparseIndices, sparseValues, sparseShape);
+ }
+
+ /**
+ * Builds an {@link QueueIsClosed} operation
+ *
+ * @param handle The handle to a queue.
+ * @return a new instance of QueueIsClosed
+ * @see org.tensorflow.op.io.QueueIsClosed
+ */
+ public QueueIsClosed queueIsClosed(Operand> handle) {
+ return QueueIsClosed.create(scope, handle);
+ }
+
+ /**
+ * Builds an {@link MatchingFiles} operation
+ *
+ * @param pattern Shell wildcard pattern(s). Scalar or vector of type string.
+ * @return a new instance of MatchingFiles
+ * @see org.tensorflow.op.io.MatchingFiles
+ */
+ public MatchingFiles matchingFiles(Operand pattern) {
+ return MatchingFiles.create(scope, pattern);
+ }
+
+ /**
+ * Builds an {@link SerializeManySparse} operation
+ *
+ * @param sparseIndices 2-D. The `indices` of the minibatch `SparseTensor`.
+ * @param sparseValues 1-D. The `values` of the minibatch `SparseTensor`.
+ * @param sparseShape 1-D. The `shape` of the minibatch `SparseTensor`.
+ * @param outType The `dtype` to use for serialization; the supported types are `string`
+ * @return a new instance of SerializeManySparse
+ * @see org.tensorflow.op.io.SerializeManySparse
+ */
+ public SerializeManySparse serializeManySparse(Operand sparseIndices,
+ Operand sparseValues, Operand sparseShape, Class