يوفر TensorFlow واجهة برمجة تطبيقات Java - مفيدة لتحميل النماذج التي تم إنشاؤها باستخدام Python وتشغيلها داخل تطبيق Java.
حزم Java Libtensorflow الليلية
يتم إنشاء حزم Libtensorflow JNI ليلاً ويتم تحميلها على GCS لجميع الأنظمة الأساسية المدعومة. يتم تحميلها إلى حاوية GCS libtensorflow-nightly ويتم فهرستها بواسطة نظام التشغيل وتاريخ الإنشاء.
المنصات المدعومة
يتم دعم TensorFlow لـ Java على الأنظمة التالية:
- Ubuntu 16.04 أو أعلى ؛ 64 بت ، x86
- macOS 10.12.6 (Sierra) أو أعلى
- Windows 7 أو أعلى ؛ 64 بت ، x86
لاستخدام TensorFlow على Android ، راجع TensorFlow Lite
TensorFlow مع Apache Maven
لاستخدام TensorFlow مع Apache Maven ، أضف التبعية إلى ملف pom.xml
الخاص pom.xml
:
<dependency>
<groupId>org.tensorflow</groupId>
<artifactId>tensorflow</artifactId>
<version>2.4.0</version>
</dependency>
دعم GPU
إذا كان نظامك يدعم GPU ، فقم بإضافة تبعيات TensorFlow التالية إلى ملف pom.xml
الخاص 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
الخاص 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
ملف المصدر ( 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 (JAR): libtensorflow.jar
- قم بتنزيل واستخراج ملف Java Native Interface (JNI) لنظام التشغيل ودعم المعالج:
نسخة JNI | URL |
---|---|
لينكس | |
وحدة المعالجة المركزية Linux فقط | https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow_jni-cpu-linux-x86_64-2.4.0.tar.gz |
دعم Linux GPU | 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 |
شبابيك | |
وحدة المعالجة المركزية لنظام Windows فقط | https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow_jni-cpu-windows-x86_64-2.4.0.zip |
دعم Windows GPU | 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
شبابيك
049370 aee0 يخرج الأمر: Hello from version
بناء من المصدر
TensorFlow مفتوح المصدر. اقرأ التعليمات لإنشاء مكتبات Java والمكتبات الأصلية في TensorFlow من التعليمات البرمجية المصدر.