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 một ứng dụng Java.

Gói Java Libtensorflow hàng đêm

Các gói JNI của Libtensorflow đượ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 lưu trữ libtensorflow-nightly trên GCS và được lập chỉ mục theo hệ điều hành và ngày xây dựng.

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

TensorFlow for 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 hỗ trợ GPU , hãy thêm các 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>

Ví dụ chương trình

Ví dụ này minh họa cách xây dựng một dự án Apache Maven với TensorFlow. Đầu tiên, hãy 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 này xuất ra: Hello from version

TensorFlow với JDK

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

Tải xuống

  1. Tải xuống tệp lưu trữ JAR của TensorFlow: libtensorflow.jar
  2. Tải xuống và giải nén tệp Java Native Interface (JNI) phù hợp với hệ điều hành và bộ xử lý của bạn:
Phiên bản JNI URL
Linux
Chỉ dành cho CPU Linux https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow_jni-cpu-linux-x86_64-2.4.0.tar.gz
Hỗ trợ GPU trên Linux https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow_jni-gpu-linux-x86_64-2.4.0.tar.gz
macOS
Chỉ dành cho CPU macOS https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow_jni-cpu-darwin-x86_64-2.4.0.tar.gz
Windows
Chỉ dành cho CPU Windows https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow_jni-cpu-windows-x86_64-2.4.0.zip
Hỗ trợ GPU của 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 , hãy biên dịch một chương trình sử dụng TensorFlow. Hãy đảm bảo rằng tệp libtensorflow.jar có thể truy cập được trong classpath của bạn:

javac -cp libtensorflow-2.4.0.jar HelloTensorFlow.java

Chạy

Để chạy một chương trình Java TensorFlow, JVM phải truy cập vào libtensorflow.jar và thư viện JNI đã được giải nén.

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

Lệnh này xuất ra: Hello from version

Biên dịch từ mã nguồn

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