Cài đặt TensorFlow cho Java

TensorFlow cung cấp API Java — hữu ích để tải các mô hình được tạo bằng Python và chạy chúng trong ứng dụng Java.

Các gói Java Libtensorflow hàng đêm

Các gói Libtensorflow JNI được xây dựng hàng đêm và tải lên GCS cho tất cả các nền tảng được hỗ trợ. Chúng được tải lên nhóm GCS libtensorflow-nightly và được lập chỉ mục theo hệ điều hành cũng như ngày tạo.

Nền tảng được hỗ trợ

TensorFlow cho Java được hỗ trợ trên các hệ thống sau:

  • Ubuntu 16.04 trở lên; 64-bit, x86
  • macOS 10.12.6 (Sierra) trở lên
  • Windows 7 trở lên; 64-bit, x86

Để sử dụng TensorFlow trên Android, hãy xem TensorFlow Lite

TensorFlow với Apache Maven

Để sử dụng TensorFlow với Apache Maven , hãy thêm phần phụ thuộc vào tệp pom.xml của dự án:

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

hỗ trợ GPU

Nếu hệ thống của bạn có hỗ trợ GPU , hãy thêm các phần phụ thuộc TensorFlow sau vào tệp pom.xml của dự án:

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

Chương trình ví dụ

Ví dụ này cho thấy cách xây dựng dự án Apache Maven bằng TensorFlow. Đầu tiên, thêm phần phụ thuộc TensorFlow vào tệp pom.xml của dự án:

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

Tạo tệp nguồn ( 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"));
      }
    }
  }
}

Biên dịch và thực thi:

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

Lệnh đầu ra: Hello from version

TensorFlow với JDK

TensorFlow có thể được sử dụng với JDK thông qua Giao diện gốc Java (JNI).

Tải xuống

  1. Tải xuống Kho lưu trữ TensorFlow Jar (JAR): libtensorflow.jar
  2. Tải xuống và giải nén tệp Giao diện gốc Java (JNI) để hỗ trợ hệ điều hành và bộ xử lý của bạn:
phiên bản JNI URL
Linux
Chỉ CPU Linux https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow_jni-cpu-linux-x86_64-2.4.0.tar.gz
Hỗ trợ GPU Linux https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow_jni-gpu-linux-x86_64-2.4.0.tar.gz
macOS
chỉ CPU macOS https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow_jni-cpu-darwin-x86_64-2.4.0.tar.gz
cửa sổ
Chỉ CPU Windows https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow_jni-cpu-windows-x86_64-2.4.0.zip
Hỗ trợ GPU Windows https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow_jni-gpu-windows-x86_64-2.4.0.zip

Biên dịch

Sử dụng tệp HelloTensorFlow.java từ ví dụ trước để biên dịch chương trình sử dụng TensorFlow. Đảm bảo libtensorflow.jar có thể truy cập được vào classpath của bạn:

javac -cp libtensorflow-2.4.0.jar HelloTensorFlow.java

Chạy

Để thực thi chương trình Java TensorFlow, JVM phải truy cập libtensorflow.jar và thư viện JNI được trích xuất.

Linux/macOS

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

cửa sổ

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

Lệnh đầu ra: Hello from version

Xây dựng từ nguồn

TensorFlow là nguồn mở. Đọc hướng dẫn xây dựng thư viện gốc và Java của TensorFlow từ mã nguồn.