TensorFlow Java, makine öğrenimi modellerini oluşturmak, eğitmek ve dağıtmak için herhangi bir JVM'de çalışabilir. Grafik veya istekli modda hem CPU hem de GPU yürütmeyi destekler ve TensorFlow'un JVM ortamında kullanılması için zengin bir API sunar. Java ve Scala ve Kotlin gibi diğer JVM dilleri dünyanın her yerindeki büyük ve küçük işletmelerde sıklıkla kullanılıyor ve bu da TensorFlow Java'yı makine öğrenimini büyük ölçekte benimsemek için stratejik bir seçim haline getiriyor.
Gereksinimler
TensorFlow Java, Java 8 ve üzeri sürümlerde çalışır ve kullanıma hazır aşağıdaki platformları destekler:
- Ubuntu 16.04 veya üzeri; 64 bit, x86
- macOS 10.12.6 (Sierra) veya üzeri; 64 bit, x86
- Windows 7 veya üzeri; 64 bit, x86
Sürümler
TensorFlow Java'nın TensorFlow çalışma zamanından bağımsız olarak kendi yayın döngüsü vardır. Sonuç olarak sürümü, üzerinde çalıştığı TensorFlow çalışma zamanı sürümüyle eşleşmiyor. Mevcut tüm sürümleri ve bunların TensorFlow çalışma zamanı ile eşlemelerini listelemek için TensorFlow Java sürüm oluşturma tablosuna bakın.
eserler
TensorFlow Java'yı projenize eklemenin birkaç yolu vardır. En kolayı, hem TensorFlow Java Core API'sini hem de desteklenen tüm platformlarda çalışması için gereken yerel bağımlılıkları içeren tensorflow-core-platform
yapıtına bir bağımlılık eklemektir.
Saf CPU sürümü yerine aşağıdaki uzantılardan birini de seçebilirsiniz:
-
tensorflow-core-platform-mkl
: Tüm platformlarda Intel® MKL-DNN desteği -
tensorflow-core-platform-gpu
: Linux ve Windows platformlarında CUDA® desteği -
tensorflow-core-platform-mkl-gpu
: Linux platformunda Intel® MKL-DNN ve CUDA® desteği.
Ek olarak, JVM'de TensorFlow tabanlı makine öğrenimine yönelik zengin yardımcı programlardan yararlanmak için tensorflow-framework
kitaplığına ayrı bir bağımlılık eklenebilir.
Maven ile kurulum
TensorFlow'u Maven uygulamanıza dahil etmek için projenizin pom.xml
dosyasına yapılarına bir bağımlılık ekleyin. Örneğin,
<dependency>
<groupId>org.tensorflow</groupId>
<artifactId>tensorflow-core-platform</artifactId>
<version>0.3.3</version>
</dependency>
Bağımlılık Sayısının Azaltılması
Bir tensorflow-core-platform
yapıtına bağımlılık eklemenin, desteklenen tüm platformlar için yerel kitaplıkları içe aktaracağını ve bunun da projenizin boyutunu önemli ölçüde artırabileceğini unutmamak önemlidir.
Mevcut platformların bir alt kümesini hedeflemek istiyorsanız Maven Bağımlılık Hariç Tutma özelliğini kullanarak gereksiz yapıları diğer platformlardan hariç tutabilirsiniz.
Uygulamanıza hangi platformları dahil etmek istediğinizi seçmenin başka bir yolu da Maven komut satırınızda veya pom.xml
dosyanızda JavaCPP sistem özelliklerini ayarlamaktır. Daha fazla ayrıntı için lütfen JavaCPP belgelerine bakın.
Anlık Görüntüleri Kullanma
TensorFlow Java kaynak deposundaki en son TensorFlow Java geliştirme anlık görüntüleri OSS Sonatype Nexus deposunda mevcuttur. Bu yapılara bağlı olmak için pom.xml
dosyanızda OSS anlık görüntü deposunu yapılandırdığınızdan emin olun.
<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 ile Kurulum
TensorFlow'u Gradle uygulamanıza dahil etmek için projenizin build.gradle
dosyasına onun yapıtlarına bir bağımlılık ekleyin. Örneğin,
repositories {
mavenCentral()
}
dependencies {
compile group: 'org.tensorflow', name: 'tensorflow-core-platform', version: '0.3.3'
}
Bağımlılık Sayısının Azaltılması
Yerel yapıların TensorFlow Java'dan Gradle ile hariç tutulması Maven'de olduğu kadar kolay değildir. Bu bağımlılık sayısını azaltmak için Gradle JavaCPP eklentilerini kullanmanızı öneririz.
Daha fazla ayrıntı için lütfen Gradle JavaCPP belgelerini okuyun.
Kaynaklardan Yükleme
TensorFlow Java'yı kaynaklardan oluşturmak ve muhtemelen özelleştirmek için lütfen aşağıdaki talimatları okuyun.
Örnek Program
Bu örnek, TensorFlow ile bir Apache Maven projesinin nasıl oluşturulacağını gösterir. Öncelikle TensorFlow bağımlılığını projenin pom.xml
dosyasına ekleyin:
<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>
Kaynak dosyayı src/main/java/HelloTensorFlow.java
oluşturun:
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();
}
}
Derleyin ve çalıştırın:
mvn -q compile exec:java
Komut, TensorFlow sürümünü ve basit bir hesaplamayı yazdırır.
Başarı! TensorFlow Java yapılandırıldı.