Cài đặt TensorFlow cho Java

Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.

TensorFlow cung cấp một 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.

Các gói Java Libtensorflow Nightly

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 hàng đêm và được lập chỉ mục theo hệ điều hành và ngày xây dựng.

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 một dự án Apache Maven với 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 xuất ra: Hello from version

TensorFlow với JDK

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

Tải xuống

  1. Tải xuống TensorFlow Jar Archive (JAR): libtensorflow.jar
  2. Tải xuống và giải nén tệp Java Native Interface (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
hệ điều hành Mac
chỉ CPU macOS https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow_jni-cpu-darwin-x86_64-2.4.0.tar.gz
các 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 một chương trình sử dụng TensorFlow. Đảm bảo rằng 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 một chương trình TensorFlow Java, JVM phải truy cập libtensorflow.jar và thư viện JNI được libtensorflow.jar .

Linux / macOS

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

các cửa sổ

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

Lệnh xuất ra: Hello from version

Xây dựng từ nguồn

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