يوفر TensorFlow واجهة برمجة تطبيقات Java - وهي مفيدة لتحميل النماذج التي تم إنشاؤها باستخدام Python وتشغيلها داخل تطبيق Java.
حزم جافا Libtensorflow الليلية
يتم إنشاء حزم Libtensorflow JNI يوميًا وتحميلها إلى خدمة التخزين السحابي (GCS) لجميع المنصات المدعومة. يتم تحميلها إلى حاوية libtensorflow-nightly على GCS ، ويتم فهرستها حسب نظام التشغيل وتاريخ الإنشاء.
المنصات المدعومة
يدعم TensorFlow for Java الأنظمة التالية:
- أوبونتو 16.04 أو أحدث؛ 64 بت، x86
- نظام التشغيل macOS 10.12.6 (Sierra) أو أحدث
- نظام التشغيل: ويندوز 7 أو أحدث؛ 64 بت، x86
لاستخدام TensorFlow على نظام Android، راجع TensorFlow Lite
TensorFlow مع Apache Maven
لاستخدام TensorFlow مع Apache Maven ، أضف التبعية إلى ملف pom.xml الخاص بالمشروع:
<dependency>
<groupId>org.tensorflow</groupId>
<artifactId>tensorflow</artifactId>
<version>2.4.0</version>
</dependency>
دعم وحدة معالجة الرسومات
إذا كان نظامك يدعم وحدة معالجة الرسومات (GPU) ، فأضف تبعيات TensorFlow التالية إلى ملف pom.xml الخاص بالمشروع:
<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>
برنامج نموذجي
يوضح هذا المثال كيفية إنشاء مشروع Apache Maven باستخدام TensorFlow. أولاً، أضف تبعية 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
TensorFlow مع JDK
يمكن استخدام TensorFlow مع JDK من خلال واجهة Java الأصلية (JNI).
تحميل
- قم بتنزيل ملف TensorFlow JAR المضغوط: libtensorflow.jar
- قم بتنزيل ملف واجهة جافا الأصلية (JNI) وفك ضغطه بما يتناسب مع نظام التشغيل والمعالج لديك:
| إصدار JNI | عنوان URL |
|---|---|
| لينكس | |
| معالجات لينكس فقط | https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow_jni-cpu-linux-x86_64-2.4.0.tar.gz |
| دعم وحدة معالجة الرسومات في نظام لينكس | https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow_jni-gpu-linux-x86_64-2.4.0.tar.gz |
| نظام التشغيل macOS | |
| معالجات نظام macOS فقط | https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow_jni-cpu-darwin-x86_64-2.4.0.tar.gz |
| ويندوز | |
| نظام التشغيل ويندوز، وحدة المعالجة المركزية فقط | https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow_jni-cpu-windows-x86_64-2.4.0.zip |
| دعم وحدة معالجة الرسومات في نظام التشغيل ويندوز | https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow_jni-gpu-windows-x86_64-2.4.0.zip |
تجميع
باستخدام ملف HelloTensorFlow.java من المثال السابق ، قم بتجميع برنامج يستخدم TensorFlow. تأكد من إمكانية الوصول إلى ملف libtensorflow.jar في classpath الخاص بك.
javac -cp libtensorflow-2.4.0.jar HelloTensorFlow.java
يجري
لتنفيذ برنامج TensorFlow Java، يجب على JVM الوصول إلى libtensorflow.jar ومكتبة JNI المستخرجة.
لينكس / ماك أو إس
java -cp libtensorflow-2.4.0.jar:. -Djava.library.path=./jni HelloTensorFlow
ويندوز
java -cp libtensorflow-2.4.0.jar;. -Djava.library.path=jni HelloTensorFlow
يُخرج الأمر ما يلي: Hello from version
قم بالبناء من المصدر
TensorFlow مفتوح المصدر. اقرأ التعليمات لبناء مكتبات TensorFlow الخاصة بلغة Java والمكتبات الأصلية من الكود المصدري.