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
- Tải xuống tệp lưu trữ JAR của TensorFlow: libtensorflow.jar
- 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.