Instal TensorFlow Java

TensorFlow Java dapat berjalan pada JVM untuk membangun, pelatihan dan menggunakan 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, yang menjadikan TensorFlow Java sebagai pilihan strategis untuk mengadopsi machine learning dalam skala besar.

Persyaratan

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

  • 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 rilis sendiri, independen dari runtime TensorFlow . Akibatnya, versinya tidak cocok dengan versi runtime TensorFlow yang dijalankannya. Konsultasikan Java TensorFlow versioning tabel untuk daftar semua versi yang tersedia dan pemetaan mereka dengan runtime TensorFlow.

Artefak

Ada beberapa cara untuk menambahkan TensorFlow Java untuk proyek Anda. Yang paling mudah adalah dengan menambahkan ketergantungan pada tensorflow-core-platform artefak, yang meliputi API TensorFlow Java Core dan dependensi asli yang diperlukan untuk dijalankan pada semua platform yang didukung.

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

  • tensorflow-core-platform-mkl : Dukungan untuk Intel® MKL-DNN pada 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 tensorflow-framework library dapat ditambahkan ke manfaat dari satu set kaya utilitas untuk pembelajaran mesin berbasis TensorFlow pada JVM.

Menginstal dengan Maven

Untuk menyertakan TensorFlow di Anda Maven aplikasi, menambahkan ketergantungan pada perusahaan artefak untuk proyek Anda pom.xml berkas. Sebagai contoh,

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

Mengurangi Jumlah Ketergantungan

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

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

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

Menggunakan Snapshot

-Foto pembangunan TensorFlow Java terbaru dari sumber repositori TensorFlow Java yang tersedia di OSS Sonatype repositori Nexus. Bergantung pada artefak ini, pastikan untuk mengkonfigurasi OSS snapshot repositori di Anda 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>

Menginstal dengan Gradle

Untuk menyertakan TensorFlow di Anda Gradle aplikasi, menambahkan ketergantungan pada perusahaan artefak untuk proyek Anda build.gradle berkas. Sebagai contoh,

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 dengan Maven. Kami menyarankan Anda menggunakan plugin Gradle JavaCPP untuk mengurangi jumlah dependensi ini.

Silahkan baca di Gradle JavaCPP dokumentasi untuk rincian lebih lanjut.

Menginstal dari Sumber

Untuk membangun TensorFlow Jawa dari sumber, dan mungkin menyesuaikannya, silakan baca berikut petunjuk .

Contoh Program

Contoh ini menunjukkan cara membangun proyek Apache Maven dengan TensorFlow. Pertama, tambahkan ketergantungan TensorFlow untuk proyek pom.xml berkas:

<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 mencetak versi TensorFlow dan perhitungan sederhana.

Kesuksesan! TensorFlow Java dikonfigurasi.