Google is committed to advancing racial equity for Black communities. See how.

Instala TensorFlow para Java

TensorFlow proporciona una API para Java que es especialmente útil para cargar modelos creados con Python y ejecutarlos en una aplicación de Java.

Plataformas compatibles

TensorFlow para Java es compatible con los siguientes sistemas:

  • Ubuntu 16.04 o versiones posteriores; 64 bits, x86
  • macOS 10.12.6 (Sierra) o versiones posteriores
  • Windows 7 o versiones posteriores; 64 bits, x86

Para instalar TensorFlow en Android, consulta la página de compatibilidad de TensorFlow en Android y la demostración de TensorFlow para cámaras de Android.

TensorFlow con Apache Maven

Para usar TensorFlow con Apache Maven, agrega la dependencia al archivo pom.xml del proyecto:

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

Compatibilidad con GPU

Si tu sistema es compatible con GPU, agrega las siguientes dependencias de TensorFlow al archivo pom.xml del proyecto:

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

Programa de ejemplo

Este ejemplo muestra cómo compilar un proyecto de Apache Maven con TensorFlow. Primero, agrega la dependencia de TensorFlow al archivo pom.xml del proyecto:

<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.myorg</groupId>
  <artifactId>hellotensorflow</artifactId>
  <version>1.0-SNAPSHOT</version>
  <properties>
    <exec.mainClass>HelloTensorFlow</exec.mainClass>
    <!-- The sample code requires at least JDK 1.7. -->
    <!-- The maven compiler plugin defaults to a lower version -->
    <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>

Crea el archivo fuente (src/main/java/HelloTensorFlow.java):

import org.tensorflow.Graph;
import org.tensorflow.Session;
import org.tensorflow.Tensor;
import org.tensorflow.TensorFlow;

public class HelloTensorFlow {
  public static void main(String[] args) throws Exception {
    try (Graph g = new Graph()) {
      final String value = "Hello from " + TensorFlow.version();

      // Construct the computation graph with a single operation, a constant
      // named "MyConst" with a value "value".
      try (Tensor t = 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 (Session s = new Session(g);
          // Generally, there may be multiple output tensors,
          // all of them must be closed to prevent resource leaks.
          Tensor output = s.runner().fetch("MyConst").run().get(0)) {
        System.out.println(new String(output.bytesValue(), "UTF-8"));
      }
    }
  }
}

Compila y ejecuta:

mvn -q compile exec:java  # Use -q to hide logging

El resultado del comando es el siguiente: Hello from version

TensorFlow con el JDK

TensorFlow se puede usar con el JDK mediante la Interfaz nativa de Java (JNI).

Descarga

  1. Descarga el archivo jar de TensorFlow (JAR): libtensorflow.jar
  2. Descarga y extrae el archivo de Interfaz nativa de Java (JNI) compatible con tu sistema operativo y procesador:
Versión de JNIURL
Linux
Solo para CPU con Linux https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow_jni-cpu-linux-x86_64-1.14.0.tar.gz
Compatibilidad con GPU en Linux https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow_jni-gpu-linux-x86_64-1.14.0.tar.gz
macOS
Solo para CPU con macOS https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow_jni-cpu-darwin-x86_64-1.14.0.tar.gz
Windows
Solo para CPU con Windows https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow_jni-cpu-windows-x86_64-1.14.0.zip
Compatibilidad con GPU en Windows https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow_jni-gpu-windows-x86_64-1.14.0.zip

Compila

Con el archivo HelloTensorFlow.java del ejemplo anterior, compila un programa que use TensorFlow. Asegúrate de que tu classpath pueda acceder a libtensorflow.jar:

javac -cp libtensorflow-1.14.0.jar HelloTensorFlow.java

Ejecuta

Para ejecutar un programa Java de TensorFlow, la JVM debe acceder a libtensorflow.jar y a la biblioteca JNI extraída.

Linux/macOS

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

Windows

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

El resultado del comando es el siguiente: Hello from version

Compila con el código fuente

TensorFlow es de código abierto. Lee las instrucciones para compilar las bibliotecas nativas y de Java en TensorFlow con el código fuente.