Installer TensorFlow pour Java

TensorFlow fournit une API Java utile pour charger des modèles créés avec Python et les exécuter dans une application Java.

Packages nocturnes Libtensorflow Java

Les packages Libtensorflow JNI sont compilés la nuit et importés dans GCS pour toutes les plates-formes compatibles. Ils sont importés dans le bucket GCS libtensorflow-nightly et sont indexés par système d'exploitation et date de compilation.

Plates-formes compatibles

TensorFlow pour Java est compatible avec les systèmes suivants :

  • Ubuntu 16.04 ou version ultérieure (64 bits et x86)
  • macOS 10.12.6 (Sierra) ou version ultérieure
  • Windows 7 ou version ultérieure (64 bits et x86)

Pour utiliser TensorFlow sur Android, consultez la page TensorFlow Lite.

TensorFlow avec Apache Maven

Pour utiliser TensorFlow avec Apache Maven, ajoutez la dépendance au fichier pom.xml du projet :

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

Compatibilité avec les GPU

Si votre système est compatible avec les GPU, ajoutez les dépendances TensorFlow suivantes au fichier pom.xml du projet :

<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>

Exemple de programme

Cet exemple montre comment créer un projet Apache Maven avec TensorFlow. Tout d'abord, ajoutez la dépendance TensorFlow au fichier pom.xml du projet :

<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>

Créez le fichier source (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"));
      }
    }
  }
}

Compilez et exécutez :

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

La commande devrait renvoyer le message suivant : Hello from version

TensorFlow avec le JDK

TensorFlow peut être utilisé avec le JDK via l'interface Java Native Interface (JNI).

Télécharger

  1. Téléchargez le fichier JAR de TensorFlow : libtensorflow.jar
  2. Téléchargez et extrayez le fichier JNI qui correspond à votre système d'exploitation et à votre processeur :
Version JNIURL
Linux
Linux (processeur uniquement) https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow_jni-cpu-linux-x86_64-2.4.0.tar.gz
Linux (compatibilité avec les GPU) https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow_jni-gpu-linux-x86_64-2.4.0.tar.gz
macOS
macOS (processeur uniquement) https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow_jni-cpu-darwin-x86_64-2.4.0.tar.gz
Windows
Windows (processeur uniquement) https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow_jni-cpu-windows-x86_64-2.4.0.zip
Windows (compatibilité avec les GPU) https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow_jni-gpu-windows-x86_64-2.4.0.zip

Compiler

Compilez un programme qui utilise TensorFlow à l'aide du fichier HelloTensorFlow.java de l'exemple précédent. Assurez-vous que le paramètre classpath inclut le fichier libtensorflow.jar :

javac -cp libtensorflow-2.4.0.jar HelloTensorFlow.java

Exécuter

Pour exécuter un programme Java TensorFlow, la machine virtuelle Java doit pouvoir accéder à libtensorflow.jar et à la bibliothèque JNI extraite.

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

La commande devrait renvoyer le message suivant : Hello from version

Compiler à partir de la source

TensorFlow est une technologie Open Source. Consultez les instructions pour compiler la version Java pour TensorFlow et les bibliothèques natives à partir du code source.