TensorFlow Java'yı yükleyin

TensorFlow Java , bina eğitim ve makine öğrenme modellerini dağıtmak için herhangi JVM çalışabilir. Grafik veya istekli modda hem CPU hem de GPU yürütmesini destekler ve bir JVM ortamında TensorFlow'u kullanmak 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ılmaktadır ve bu da TensorFlow Java'yı büyük ölçekte makine öğrenimini benimsemek için stratejik bir seçim haline getirmektedir.

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 üstü; 64 bit, x86
  • macOS 10.12.6 (Sierra) veya üzeri; 64 bit, x86
  • Windows 7 veya üstü; 64 bit, x86

Sürümler

TensorFlow Java bağımsız kendi yayın döngüsü vardır TensorFlow çalışma zamanı . Sonuç olarak, sürümü, üzerinde çalıştığı TensorFlow çalışma zamanının sürümüyle eşleşmiyor. TensorFlow Java Consult tablo sürüm tüm versiyonları mevcuttur ve TensorFlow çalışma zamanı ile haritalama listelemek için.

eserler

Orada çeşitli yollar projenize TensorFlow Java ekleyin. En kolayı bir bağımlılık eklemektir tensorflow-core-platform TensorFlow Java Çekirdek API ve tüm desteklenen platformlarında çalışması için gereken yerli bağımlılıklar içerir artifakta.

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 için destek
  • tensorflow-core-platform-gpu : Linux ve Windows platformlarında CUDA® desteği
  • tensorflow-core-platform-mkl-gpu : Linux platformunda Intel® MKL-DNN ve CUDA® için destek.

Buna ek olarak, ayrı bir bağımlılık tensorflow-framework kütüphanesi JVM TensorFlow tabanlı makine öğrenme araçlardan bir listeden yarar eklenebilir.

Maven ile Kurulum

Sizin de TensorFlow eklemek için Maven uygulaması, onun bir bağımlılık ekleme eserler projenizin için pom.xml dosyası. Ö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ı Azaltma

Bir bağımlılık ekleyerek dikkat etmek önemlidir tensorflow-core-platform eser önemli ölçüde projenin boyutunu artırabilir tüm desteklenen platformlar için yerel kütüphaneleri ithal edecek.

Eğer mevcut platformların bir alt kümesini hedeflemek isteyen, o zaman kullanan diğer platformlardan gereksiz eserler hariç tutabilir Maven Bağımlılık Dışlama özelliğini.

Başka bir yolu da Maven komut satırında veya içinde set JavaCPP sistem özelliklerine olan uygulamanıza dahil etmek istediğiniz platformları seçmek için pom.xml . JavaCPP bakınız belgelere daha fazla ayrıntı için.

Anlık Görüntüleri Kullanma

TensorFlow Java kaynak deposundan son TensorFlow Java geliştirme anlık mevcuttur ÖSS Sonatype Nexus depo. Bu eserler bağlıdır için, içinde OSS anlık havuzu yapılandırmak emin olun 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 ile Kurulum

Sizin de TensorFlow eklemek için Gradle uygulamada, onun bir bağımlılık ekleme eserler projenizin için build.gradle dosyası. Örneğin,

repositories {
    mavenCentral()
}

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

Bağımlılık Sayısını Azaltma

Gradle ile TensorFlow Java'dan yerel yapıları hariç tutmak Maven ile olduğu kadar kolay değil. Bu bağımlılık sayısını azaltmak için Gradle JavaCPP eklentilerini kullanmanızı öneririz.

Gradle JavaCPP de okuyunuz dokümantasyon fazla ayrıntı için.

Kaynaklardan Yükleme

Kaynaklardan TensorFlow Java'yı kurmak ve muhtemelen özelleştirmek için aşağıdaki okuyunuz talimatları .

Örnek Program

Bu örnek, TensorFlow ile bir Apache Maven projesinin nasıl oluşturulacağını gösterir. İlk olarak, projenin etmek TensorFlow bağımlılığını eklemek pom.xml dosyası:

<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 dosya oluşturma 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();
  }
}

Derleyin ve yürütü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ı.