ขอขอบคุณที่เข้าร่วม Google I/O ดูเซสชั่นทั้งหมดตามความต้องการ ดูตามความต้องการ

ติดตั้ง TensorFlow Java

TensorFlow Java สามารถทำงานบน JVM ใด ๆ สำหรับการสร้างการฝึกอบรมและการปรับใช้โมเดลการเรียนรู้ รองรับทั้งการทำงานของ CPU และ GPU ในโหมดกราฟหรือโหมดกระตือรือร้น และนำเสนอ API ที่สมบูรณ์สำหรับการใช้ 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 สิ่งประดิษฐ์ซึ่งรวมถึงทั้ง API TensorFlow Java หลักและการอ้างอิงพื้นเมืองก็ต้องไปทำงานบนแพลตฟอร์มที่สนับสนุนทั้งหมด

คุณสามารถเลือกหนึ่งในส่วนขยายต่อไปนี้แทนเวอร์ชัน CPU แท้:

  • tensorflow-core-platform-mkl : การสนับสนุนสำหรับIntel® MKL-DNN บนแพลตฟอร์มทั้งหมด
  • tensorflow-core-platform-gpu : การสนับสนุนสำหรับCUDA®บน Linux และ Windows แพลตฟอร์ม
  • tensorflow-core-platform-mkl-gpu : การสนับสนุนสำหรับIntel® MKL-DNN และCUDA®บนแพลตฟอร์มลินุกซ์

นอกจากนี้ยังมีการพึ่งพาแยกต่างหากใน tensorflow-framework ห้องสมุดสามารถเพิ่มไปยังได้รับประโยชน์จากชุดสมบูรณ์ของระบบสาธารณูปโภคสำหรับการเรียนรู้เครื่อง TensorFlow ที่เอามาจาก JVM

การติดตั้งด้วย Maven

ที่จะรวม TensorFlow ในของคุณ Maven แอพลิเคชันเพิ่มการพึ่งพาของ สิ่งประดิษฐ์ ให้กับโครงการของคุณ pom.xml ไฟล์ ตัวอย่างเช่น,

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

การลดจำนวนการพึ่งพา

มันเป็นสิ่งสำคัญที่จะต้องทราบว่าการเพิ่มการพึ่งพาบน tensorflow-core-platform สิ่งประดิษฐ์ที่จะนำเข้าห้องสมุดพื้นเมืองสำหรับทุกแพลตฟอร์มการสนับสนุนอย่างมีนัยสำคัญสามารถเพิ่มขนาดของโครงการของคุณ

หากคุณต้องการที่จะกำหนดเป้าหมายย่อยของแพลตฟอร์มที่มีอยู่แล้วคุณสามารถยกเว้นสิ่งประดิษฐ์ที่ไม่จำเป็นออกจากแพลตฟอร์มอื่น ๆ โดยใช้ การยกเว้น Maven พึ่งพา คุณลักษณะ

วิธีการเลือกแพลตฟอร์มที่คุณต้องการรวมในใบสมัครของคุณก็คือการกำหนดคุณสมบัติของระบบ JavaCPP ในบรรทัดคำสั่งของคุณ Maven หรือคุณ pom.xml โปรดดู JavaCPP เอกสาร สำหรับรายละเอียดเพิ่มเติม

การใช้สแนปชอต

ล่าสุด TensorFlow Java ภาพรวมการพัฒนาจากพื้นที่เก็บข้อมูลแหล่งที่มา TensorFlow Java ที่มีอยู่บน โอเอส 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.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 เราขอแนะนำให้คุณใช้ปลั๊กอิน Gradle JavaCPP เพื่อลดจำนวนการพึ่งพานี้

โปรดอ่านที่ 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 ได้รับการกำหนดค่า