התקן את TensorFlow Java

TensorFlow ג'אווה יכולה לרוץ על כל JVM לבניית, הדרכה והטמעה של מודלים ללמידה חישובית. הוא תומך הן במעבד והן בביצוע GPU, בגרף או במצב להוט, ומציג API עשיר לשימוש ב- TensorFlow בסביבת JVM. ג'אווה ושפות JVM אחרות, כמו סקאלה וקוטלין, משמשות לעתים קרובות בארגונים גדולים וקטנים בכל רחבי העולם, מה שהופך את TensorFlow Java לבחירה אסטרטגית לאימוץ למידת מכונה בקנה מידה גדול.

דרישות

TensorFlow Java פועל על Java 8 ומעלה, ותומך מחוץ לקופסה בפלטפורמות הבאות:

  • אובונטו 16.04 ומעלה; 64 סיביות, x86
  • macOS 10.12.6 (סיירה) ומעלה; 64 סיביות, x86
  • Windows 7 ומעלה; 64 סיביות, x86

גרסאות

יש TensorFlow Java מחזור השחרור משלה, עצמאי מן ריצת TensorFlow . כתוצאה מכך, גרסתו אינה תואמת את הגירסה של זמן הריצה של TensorFlow עליה היא פועלת. התייעץ עם TensorFlow Java גרסאות השולחן כדי לפרט את כל הגירסאות השונות ומיפוי שלהם עם ריצה TensorFlow.

חפצים

ישנן מספר דרכים כדי להוסיף TensorFlow Java לפרוייקט שלך. הקלה על אחד הוא להוסיף את התלות tensorflow-core-platform חפץ, הכולל הן את ה- API Core Java TensorFlow ואת התלות ילידי זה דורש לרוץ על כל הפלטפורמות הנתמכות.

אתה יכול גם לבחור באחד התוספים הבאים במקום בגרסת המעבד הטהורה:

  • tensorflow-core-platform-mkl : תמיכה Intel® mkl-DNN בכל הפלטפורמות
  • tensorflow-core-platform-gpu : תמיכה CUDA® על פלטפורמות לינוקס ו- Windows
  • tensorflow-core-platform-mkl-gpu : תמיכה Intel® mkl-DNN ו CUDA® על פלטפורמת לינוקס.

בנוסף, תלות נפרדת על tensorflow-framework הספרייה ניתן להוסיף תועלת מתוך מגוון עשיר של כלי עזר ללימוד מכונה מבוסס TensorFlow על JVM.

התקנה עם Maven

כדי לכלול TensorFlow ב שלך מייבן יישום, להוסיף את התלות שלה חפצים כדי הפרויקט שלך pom.xml קובץ. לדוגמה,

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

צמצום מספר התלות

חשוב לציין כי הוספת תלות tensorflow-core-platform חפץ יהיה לייבא ספריות מקומיות עבור כל הפלטפורמות הנתמכות, אשר יכול להגדיל באופן משמעותי את הגודל של הפרויקט שלך.

אם ברצונך למקד משנה של הפלטפורמות הזמינות אז אתה יכול להוציא את החפצים המיותרים מן הפלטפורמות האחרות באמצעות הכללת תלות מייבן התכונה.

דרך נוספת לבחור באילו פלטפורמות שברצונך לכלול ביישום שלך היא מאפייני המערכת סט JavaCPP, ב שורת הפקודה מייבן שלך או שלך pom.xml . אנא ראה JavaCPP תיעוד לפרטים נוספים.

שימוש בתמונות

תצלומי פיתוח TensorFlow Java האחרונים ממאגר מקור TensorFlow Java זמינים על OSS Sonatype מאגר נקסוס. לסמוך על ממצאים אלה, הקפד להגדיר מאגר תמונות 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.4.0-SNAPSHOT</version>
    </dependency>
</dependencies>

התקנה עם Gradle

כדי לכלול TensorFlow ב שלך Gradle יישום, להוסיף את התלות שלה חפצים כדי הפרויקט שלך build.gradle קובץ. לדוגמה,

repositories {
    mavenCentral()
}

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

צמצום מספר התלות

אי הכללת חפצים מקומיים מ- TensorFlow Java עם Gradle אינה פשוטה כמו עם Maven. אנו ממליצים להשתמש בתוספי JavaCPP של Gradle כדי לצמצם מספר תלות זה.

אנא קרא לעבר Gradle JavaCPP תיעוד לפרטים נוספים.

התקנה ממקורות

כדי לבנות TensorFlow Java ממקורות, ואולי אישית זה, קרא את האמור להלן ההוראות .

תוכנית לדוגמא

דוגמה זו מראה כיצד בונים פרויקט 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>
        <!-- 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.3.3</version>
        </dependency>
    </dependencies>
</project>

צור את קובץ המקור 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);
        TInt32 x = TInt32.scalarOf(10);
        Tensor dblX = dbl.call(x)) {
      System.out.println(x.getInt() + " doubled is " + ((TInt32)dblX).getInt());
    }
  }

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

הידור וביצוע:

mvn -q compile exec:java

הפקודה מדפיסה את גרסת TensorFlow וחישוב פשוט.

הַצלָחָה! TensorFlow Java מוגדר.