Install TensorFlow for Java

TensorFlow provides a Java API— useful for loading models created with Python and running them within a Java application.

Nightly Libtensorflow Java packages

Libtensorflow JNI packages are built nightly and uploaded to GCS for all supported platforms. They are uploaded to the libtensorflow-nightly GCS bucket and are indexed by operating system and date built.

Supported Platforms

TensorFlow for Java is supported on the following systems:

  • Ubuntu 16.04 or higher; 64-bit, x86
  • macOS 10.12.6 (Sierra) or higher
  • Windows 7 or higher; 64-bit, x86

To use TensorFlow on Android see TensorFlow Lite

TensorFlow with Apache Maven

To use TensorFlow with Apache Maven, add the dependency to the project's pom.xml file:

<dependency>
<groupId>org.tensorflow</groupId>
<artifactId>tensorflow</artifactId>
<version>2.4.0</version>
</dependency>

GPU support

If your system has GPU support, add the following TensorFlow dependencies to the project's pom.xml file:

<dependency>
<groupId>org.tensorflow</groupId>
<artifactId>libtensorflow</artifactId>
<version>2.4.0</version>
</dependency>
<dependency>
<groupId>org.tensorflow</groupId>
<artifactId>libtensorflow_jni_gpu</artifactId>
<version>2.4.0</version>
</dependency>

Example program

This example shows how to build an Apache Maven project with TensorFlow. First, add the TensorFlow dependency to the project's pom.xml file:

<project>
<modelVersion>4.0.0</modelVersion>
<groupId>org.myorg</groupId>
<artifactId>hellotensorflow</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<exec.mainClass>HelloTensorFlow</exec.mainClass>
<!--ThesamplecoderequiresatleastJDK1.7.-->
<!--Themavencompilerplugindefaultstoalowerversion-->
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.tensorflow</groupId>
<artifactId>tensorflow</artifactId>
<version>1.14.0</version>
</dependency>
</dependencies>
</project>

Create the source file (src/main/java/HelloTensorFlow.java):

importorg.tensorflow.Graph;
importorg.tensorflow.Session;
importorg.tensorflow.Tensor;
importorg.tensorflow.TensorFlow;
publicclass HelloTensorFlow{
publicstaticvoidmain(String[]args)throwsException{
try(Graphg=newGraph()){
finalStringvalue="Hello from "+TensorFlow.version();
// Construct the computation graph with a single operation, a constant
// named "MyConst" with a value "value".
try(Tensort=Tensor.create(value.getBytes("UTF-8"))){
// The Java API doesn't yet include convenience functions for adding operations.
g.opBuilder("Const","MyConst").setAttr("dtype",t.dataType()).setAttr("value",t).build();
}
// Execute the "MyConst" operation in a Session.
try(Sessions=newSession(g);
// Generally, there may be multiple output tensors,
// all of them must be closed to prevent resource leaks.
Tensoroutput=s.runner().fetch("MyConst").run().get(0)){
System.out.println(newString(output.bytesValue(),"UTF-8"));
}
}
}
}

Compile and execute:

mvn-qcompileexec:java# Use -q to hide logging

The command outputs: Hello from version

TensorFlow with the JDK

TensorFlow can be used with the JDK through the Java Native Interface (JNI).

Download

  1. Download the TensorFlow Jar Archive (JAR): libtensorflow.jar
  2. Download and extract the Java Native Interface (JNI) file for your operating system and processor support:
JNI versionURL
Linux
Linux CPU only https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow_jni-cpu-linux-x86_64-2.4.0.tar.gz
Linux GPU support https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow_jni-gpu-linux-x86_64-2.4.0.tar.gz
macOS
macOS CPU only https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow_jni-cpu-darwin-x86_64-2.4.0.tar.gz
Windows
Windows CPU only https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow_jni-cpu-windows-x86_64-2.4.0.zip
Windows GPU support https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow_jni-gpu-windows-x86_64-2.4.0.zip

Compile

Using the HelloTensorFlow.java file from the previous example, compile a program that uses TensorFlow. Make sure the libtensorflow.jar is accessible to your classpath:

javac -cp libtensorflow-2.4.0.jar HelloTensorFlow.java

Run

To execute a TensorFlow Java program, the JVM must access libtensorflow.jar and the extracted JNI library.

Linux / macOS

java -cp libtensorflow-2.4.0.jar:. -Djava.library.path=./jni HelloTensorFlow

Windows

java -cp libtensorflow-2.4.0.jar;. -Djava.library.path=jni HelloTensorFlow

The command outputs: Hello from version

Build from source

TensorFlow is open source. Read the instructions to build TensorFlow's Java and native libraries from source code.

Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2024年07月25日 UTC.