RSVP for your your local TensorFlow Everywhere event today!
ترجمت واجهة Cloud Translation API‏ هذه الصفحة.
Switch to English

قم بتثبيت TensorFlow Java

يمكن تشغيل TensorFlow Java على أي JVM لبناء نماذج التعلم الآلي والتدريب عليها ونشرها. وهو يدعم تنفيذ كل من وحدة المعالجة المركزية ووحدة معالجة الرسومات ، في الرسم البياني أو الوضع الشغوف ، ويقدم واجهة برمجة تطبيقات غنية لاستخدام TensorFlow في بيئة JVM. تُستخدم Java ولغات JVM الأخرى ، مثل Scala و Kotlin ، بشكل متكرر في المؤسسات الكبيرة والصغيرة في جميع أنحاء العالم ، مما يجعل TensorFlow Java خيارًا استراتيجيًا لتبني التعلم الآلي على نطاق واسع.

المتطلبات

يعمل TensorFlow Java على Java 8 وما فوق ، ويدعم الأنظمة الأساسية التالية خارج الصندوق:

  • Ubuntu 16.04 أو أعلى ؛ 64 بت ، x86
  • macOS 10.12.6 (Sierra) أو أعلى ؛ 64 بت ، x86
  • Windows 7 أو أعلى ؛ 64 بت ، x86

إصدارات

TensorFlow Java لها دورة إصدار خاصة بها ، مستقلة عن وقت تشغيل TensorFlow . وبالتالي ، فإن نسخته لا تتطابق مع إصدار وقت تشغيل TensorFlow الذي يعمل عليه. راجع جدول إصدارات TensorFlow Java لسرد جميع الإصدارات المتاحة وتعيينها باستخدام وقت تشغيل TensorFlow.

الآثار

هناك عدة طرق لإضافة TensorFlow Java إلى مشروعك. أسهل طريقة هي إضافة تبعية إلى tensorflow-core-platform ، والتي تتضمن كلاً من TensorFlow Java Core API والاعتماديات الأصلية التي تتطلبها للتشغيل على جميع الأنظمة الأساسية المدعومة.

يمكنك أيضًا تحديد أحد الامتدادات التالية بدلاً من إصدار وحدة المعالجة المركزية الخالص:

  • tensorflow-core-platform-mkl : دعم Intel® MKL-DNN على جميع المنصات
  • tensorflow-core-platform-gpu : دعم CUDA® على أنظمة Linux و Windows
  • tensorflow-core-platform-mkl-gpu : دعم Intel® MKL-DNN و CUDA® على أنظمة Linux و Windows.

بالإضافة إلى ذلك ، يمكن إضافة اعتماد منفصل على مكتبة tensorflow-framework للاستفادة من مجموعة غنية من الأدوات المساعدة للتعلم الآلي المستند إلى TensorFlow على JVM.

التثبيت مع مافن

لتشمل TensorFlow في حياتك مخضرم التطبيق، إضافة تبعية عن دورتها التحف لمشروعك pom.xml الملف. فمثلا،

<dependency>
  <groupId>org.tensorflow</groupId>
  <artifactId>tensorflow-core-platform</artifactId>
  <version>0.2.0</version>
</dependency>

تقليل عدد التبعيات

من المهم ملاحظة أن إضافة تبعية على أداة tensorflow-core-platform ستؤدي إلى استيراد مكتبات أصلية لجميع الأنظمة الأساسية المدعومة ، مما قد يزيد حجم مشروعك بشكل كبير.

إذا كنت ترغب في استهداف مجموعة فرعية من الأنظمة الأساسية المتاحة ، فيمكنك استبعاد العناصر غير الضرورية من الأنظمة الأساسية الأخرى باستخدام ميزة استبعاد التبعية Maven .

هناك طريقة أخرى لتحديد الأنظمة الأساسية التي تريد تضمينها في تطبيقك وهي تعيين خصائص نظام JavaCPP ، في سطر أوامر Maven أو في pom.xml . يرجى الاطلاع على وثائق JavaCPP لمزيد من التفاصيل.

استخدام اللقطات

تتوفر أحدث لقطات تطوير TensorFlow Java من مستودع مصدر TensorFlow Java في مستودع OSS Sonatype Nexus. للاعتماد على هذه القطع الأثرية ، تأكد من تكوين مستودع لقطات OSS في pom.xml .

<repositories>
    <repository>
        <id>tensorflow-snapshots</id>
        <url>https://oss.sonatype.org/content/repositories/snapshots/</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>org.tensorflow</groupId>
        <artifactId>tensorflow-core-platform</artifactId>
        <version>0.3.0-SNAPSHOT</version>
    </dependency>
</dependencies>

التثبيت مع Gradle

لتضمين TensorFlow في تطبيق Gradle الخاص بك ، أضف تبعية على عناصرها الأثرية إلى ملف build.gradle الخاص build.gradle . فمثلا،

repositories {
    mavenCentral()
}

dependencies {
    compile group: 'org.tensorflow', name: 'tensorflow-core-platform', version: '0.2.0'
}

تقليل عدد التبعيات

إن استبعاد القطع الأثرية الأصلية من TensorFlow Java باستخدام Gradle ليس سهلاً كما هو الحال مع Maven. نوصي باستخدام إضافات Gradle JavaCPP لتقليل هذا العدد من التبعيات.

يرجى قراءة وثائق Gradle JavaCPP لمزيد من التفاصيل.

التثبيت من المصادر

لإنشاء TensorFlow Java من المصادر ، وربما تخصيصها ، يرجى قراءة التعليمات التالية.

برنامج مثال

يوضح هذا المثال كيفية إنشاء مشروع 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>
    <!-- Minimal version for compiling TensorFlow Java is JDK 8 -->
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>

    <dependencies>
    <!-- Include TensorFlow (pure CPU only) for all supported platforms -->
        <dependency>
            <groupId>org.tensorflow</groupId>
            <artifactId>tensorflow-core-platform</artifactId>
            <version>0.2.0</version>
        </dependency>
    </dependencies>
</project>

قم src/main/java/HelloTensorFlow.java ملف المصدر src/main/java/HelloTensorFlow.java :

import org.tensorflow.ConcreteFunction;
import org.tensorflow.Signature;
import org.tensorflow.Tensor;
import org.tensorflow.TensorFlow;
import org.tensorflow.op.Ops;
import org.tensorflow.op.core.Placeholder;
import org.tensorflow.op.math.Add;
import org.tensorflow.types.TInt32;

public class HelloTensorFlow {

  public static void main(String[] args) throws Exception {
    System.out.println("Hello TensorFlow " + TensorFlow.version());

    try (ConcreteFunction dbl = ConcreteFunction.create(HelloTensorFlow::dbl);
        Tensor<TInt32> x = TInt32.scalarOf(10);
        Tensor<TInt32> dblX = dbl.call(x).expect(TInt32.DTYPE)) {
      System.out.println(x.data().getInt() + " doubled is " + dblX.data().getInt());
    }
  }

  private static Signature dbl(Ops tf) {
    Placeholder<TInt32> x = tf.placeholder(TInt32.DTYPE);
    Add<TInt32> dblX = tf.math.add(x, x);
    return Signature.builder().input("x", x).output("dbl", dblX).build();
  }
}

تجميع وتنفيذ:

mvn -q compile exec:java

يقوم الأمر بطباعة: TensorFlow version and a simple calculation.

نجاح! تم تكوين TensorFlow Java.