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.