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

安裝 TensorFlow for Java

TensorFlow 提供了 Java API,特別適合用於載入以 Python 建立的模型,並且在 Java 應用程式中執行這些模型。

Nightly Libtensorflow Java 套件

系統每晚都會建構 Libtensorflow JNI 套件,並為所有支援的平台上傳至 GCS。系統會將這些套件上傳至 libtensorflow-nightly GCS 值區,並且會以作業系統和建構日期建立索引。

支援的平台

下列系統支援 TensorFlow for Java:

  • Ubuntu 16.04 以上版本 64 位元 x86
  • macOS 10.12.6 (Sierra) 以上版本
  • Windows 7 以上版本 64 位元 x86

如要在 Android 上安裝 TensorFlow,請參閱 Android TensorFlow supportTensorFlow Android Camera Demo

搭配 Apache Maven 使用 TensorFlow

如要搭配 Apache Maven 使用 TensorFlow,請將依附元件加入專案的 pom.xml 檔案:

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

GPU 支援

如果你的系統可支援 GPU,請將下列 TensorFlow 依附元件加入專案的 pom.xml 檔案:

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

範例程式

本範例說明如何使用 TensorFlow 建構 Apache Maven 專案。首先,請將 TensorFlow 依附元件加入專案的 pom.xml 檔案:

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

建立來源檔案 (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"));
      }
    }
  }
}

編譯並執行:

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

指令輸出:Hello from version

搭配 JDK 使用 TensorFlow

你可以透過 Java Native Interface (JNI) 將 TensorFlow 與 JDK 搭配使用。

下載

  1. 下載 TensorFlow Jar Archive (JAR):libtensorflow.jar
  2. 依據你的作業系統和處理器支援,下載並擷取 Java Native Interface (JNI) 檔案:
JNI 版本網址
Linux
Linux (僅支援 CPU) https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow_jni-cpu-linux-x86_64-2.3.0.tar.gz
Linux (支援 GPU) https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow_jni-gpu-linux-x86_64-2.3.0.tar.gz
macOS
macOS (僅支援 CPU) https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow_jni-cpu-darwin-x86_64-2.3.0.tar.gz
Windows
Windows (僅支援 CPU) https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow_jni-cpu-windows-x86_64-2.3.0.zip
Windows (支援 GPU) https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow_jni-gpu-windows-x86_64-2.3.0.zip

編譯

使用先前範例中的 HelloTensorFlow.java 檔案,編譯使用 TensorFlow 的程式。確認你的 classpath 可存取 libtensorflow.jar

javac -cp libtensorflow-2.3.0.jar HelloTensorFlow.java

執行

JVM 必須存取 libtensorflow.jar 和已解壓縮的 JNI 程式庫,才能執行 TensorFlow Java 程式。

Linux/macOS

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

Windows

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

指令輸出:Hello from version

從原始碼開始建構

TensorFlow 為開放原始碼。請閱讀指示,瞭解如何從原始碼開始建構 TensorFlow 的 Java 程式庫與原生資料庫。