Instal TensorFlow Java

TensorFlow Java dapat berjalan di JVM apa pun untuk membuat, melatih, dan menerapkan model pembelajaran mesin. Ini mendukung eksekusi CPU dan GPU, dalam mode grafik atau bersemangat, dan menyajikan API yang kaya untuk menggunakan TensorFlow di lingkungan JVM. Java dan bahasa JVM lainnya, seperti Scala dan Kotlin, sering digunakan di perusahaan besar dan kecil di seluruh dunia, sehingga TensorFlow Java menjadi pilihan strategis untuk mengadopsi pembelajaran mesin dalam skala besar.

Persyaratan

TensorFlow Java berjalan di Java 8 dan yang lebih baru, dan mendukung platform berikut secara langsung:

  • Ubuntu 16.04 atau lebih tinggi; 64-bit, x86
  • macOS 10.12.6 (Sierra) atau lebih tinggi; 64-bit, x86
  • Windows 7 atau lebih tinggi; 64-bit, x86

Versi

TensorFlow Java memiliki siklus rilisnya sendiri, yang tidak bergantung pada runtime TensorFlow . Akibatnya, versinya tidak cocok dengan versi runtime TensorFlow yang dijalankannya. Lihat tabel pembuatan versi TensorFlow Java untuk mencantumkan semua versi yang tersedia dan pemetaannya dengan runtime TensorFlow.

Artefak

Ada beberapa cara untuk menambahkan TensorFlow Java ke proyek Anda. Cara termudah adalah menambahkan dependensi pada artefak tensorflow-core-platform , yang mencakup TensorFlow Java Core API dan dependensi asli yang diperlukan untuk berjalan di semua platform yang didukung.

Anda juga dapat memilih salah satu ekstensi berikut daripada versi CPU murni:

  • tensorflow-core-platform-mkl : Dukungan untuk Intel® MKL-DNN di semua platform
  • tensorflow-core-platform-gpu : Dukungan untuk CUDA® pada platform Linux dan Windows
  • tensorflow-core-platform-mkl-gpu : Dukungan untuk Intel® MKL-DNN dan CUDA® pada platform Linux.

Selain itu, ketergantungan terpisah pada pustaka tensorflow-framework dapat ditambahkan untuk memanfaatkan beragam utilitas untuk pembelajaran mesin berbasis TensorFlow di JVM.

Menginstal dengan Maven

Untuk menyertakan TensorFlow dalam aplikasi Maven Anda, tambahkan ketergantungan pada artefaknya ke file pom.xml proyek Anda. Misalnya,

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

Mengurangi Jumlah Ketergantungan

Penting untuk diperhatikan bahwa menambahkan ketergantungan pada artefak tensorflow-core-platform akan mengimpor pustaka asli untuk semua platform yang didukung, yang dapat meningkatkan ukuran proyek Anda secara signifikan.

Jika Anda ingin menargetkan subkumpulan platform yang tersedia maka Anda dapat mengecualikan artefak yang tidak diperlukan dari platform lain menggunakan fitur Pengecualian Ketergantungan Maven .

Cara lain untuk memilih platform mana yang ingin Anda sertakan dalam aplikasi Anda adalah dengan mengatur properti sistem JavaCPP, di baris perintah Maven atau di pom.xml Anda. Silakan lihat dokumentasi JavaCPP untuk lebih jelasnya.

Menggunakan Snapshot

Snapshot pengembangan TensorFlow Java terbaru dari repositori sumber TensorFlow Java tersedia di repositori OSS Sonatype Nexus. Untuk bergantung pada artefak ini, pastikan untuk mengonfigurasi repositori snapshot OSS di pom.xml Anda.

<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>

Menginstal dengan Gradle

Untuk menyertakan TensorFlow dalam aplikasi Gradle Anda, tambahkan ketergantungan pada artefaknya ke file build.gradle proyek Anda. Misalnya,

repositories {
    mavenCentral()
}

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

Mengurangi Jumlah Ketergantungan

Mengecualikan artefak asli dari TensorFlow Java dengan Gradle tidak semudah menggunakan Maven. Kami menyarankan Anda menggunakan plugin Gradle JavaCPP untuk mengurangi jumlah ketergantungan ini.

Silakan baca di dokumentasi Gradle JavaCPP untuk lebih jelasnya.

Menginstal dari Sumber

Untuk membuat TensorFlow Java dari sumber, dan mungkin menyesuaikannya, harap baca petunjuk berikut.

Contoh Program

Contoh ini menunjukkan cara membuat proyek Apache Maven dengan TensorFlow. Pertama, tambahkan dependensi TensorFlow ke file pom.xml proyek:

<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>

Buat file sumber 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();
  }
}

Kompilasi dan jalankan:

mvn -q compile exec:java

Perintah ini mencetak versi TensorFlow dan perhitungan sederhana.

Kesuksesan! TensorFlow Java dikonfigurasi.