Zapisz datę! Google I / O powraca w dniach 18-20 maja Zarejestruj się teraz
Ta strona została przetłumaczona przez Cloud Translation API.
Switch to English

Zainstaluj TensorFlow Java

TensorFlow Java może działać na dowolnej maszynie JVM do tworzenia, szkolenia i wdrażania modeli uczenia maszynowego. Obsługuje zarówno CPU, jak i GPU, w trybie graficznym lub przyspieszonym, i prezentuje bogate API do używania TensorFlow w środowisku JVM. Java i inne języki JVM, takie jak Scala i Kotlin, są często używane w dużych i małych przedsiębiorstwach na całym świecie, co sprawia, że ​​TensorFlow Java jest strategicznym wyborem do wdrażania uczenia maszynowego na dużą skalę.

Wymagania

Java TensorFlow działa na platformie Java 8 i nowszych oraz od razu obsługuje następujące platformy:

  • Ubuntu 16.04 lub nowszy; 64-bitowy, x86
  • macOS 10.12.6 (Sierra) lub nowszy; 64-bitowa, x86
  • Windows 7 lub nowszy; 64-bitowa, x86

Wersje

Java TensorFlow ma własny cykl wydawniczy, niezależny od środowiska wykonawczego TensorFlow . W związku z tym jego wersja nie jest zgodna z wersją środowiska wykonawczego TensorFlow, na którym działa. Zapoznaj się z tabelą wersji Java TensorFlow, aby wyświetlić wszystkie dostępne wersje i ich mapowanie w środowisku wykonawczym TensorFlow.

Artefakty

Istnieje kilka sposobów dodania języka Java TensorFlow do projektu. Najłatwiej jest dodać zależność od artefaktu tensorflow-core-platform , który obejmuje zarówno TensorFlow Java Core API, jak i natywne zależności wymagane do uruchomienia na wszystkich obsługiwanych platformach.

Możesz także wybrać jedno z następujących rozszerzeń zamiast czystej wersji procesora:

  • tensorflow-core-platform-mkl : Wsparcie dla Intel® MKL-DNN na wszystkich platformach
  • tensorflow-core-platform-gpu : obsługa CUDA® na platformach Linux i Windows
  • tensorflow-core-platform-mkl-gpu : Wsparcie dla Intel® MKL-DNN i CUDA® na platformie Linux.

Ponadto można dodać oddzielną zależność od biblioteki tensorflow-framework aby skorzystać z bogatego zestawu narzędzi do uczenia maszynowego opartego na TensorFlow w JVM.

Instalowanie za pomocą Maven

Aby uwzględnić TensorFlow w aplikacji Maven , dodaj zależność od jej artefaktów do pliku pom.xml projektu. Na przykład,

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

Zmniejszanie liczby zależności

Należy zauważyć, że dodanie zależności od artefaktu tensorflow-core-platform spowoduje zaimportowanie bibliotek natywnych dla wszystkich obsługiwanych platform, co może znacznie zwiększyć rozmiar projektu.

Jeśli chcesz kierować reklamy na podzbiór dostępnych platform, możesz wykluczyć niepotrzebne artefakty z innych platform za pomocą funkcji Maven Dependency Exclusion .

Innym sposobem na wybranie platform, które chcesz uwzględnić w swojej aplikacji, jest ustawienie właściwości systemowych JavaCPP w wierszu poleceń Maven lub w pom.xml . Więcej informacji można znaleźć w dokumentacji JavaCPP.

Korzystanie z migawek

Najnowsze migawki programowania TensorFlow Java z repozytorium źródłowego Java TensorFlow są dostępne w repozytorium OSS Sonatype Nexus. Aby polegać na tych artefaktach, skonfiguruj repozytorium migawek OSS w swoim 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>

Instalowanie za pomocą Gradle

Aby uwzględnić TensorFlow w aplikacji Gradle , dodaj zależność od jej artefaktów do pliku build.gradle projektu. Na przykład,

repositories {
    mavenCentral()
}

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

Zmniejszanie liczby zależności

Wykluczenie natywnych artefaktów z TensorFlow Java za pomocą Gradle nie jest tak łatwe, jak w przypadku Maven. Zalecamy użycie wtyczek Gradle JavaCPP w celu zmniejszenia tej liczby zależności.

Więcej informacji można znaleźć w dokumentacji Gradle JavaCPP.

Instalowanie ze źródeł

Aby zbudować TensorFlow Java ze źródeł i ewentualnie dostosować ją, przeczytaj poniższe instrukcje .

Przykładowy program

Ten przykład pokazuje, jak zbudować projekt Apache Maven za pomocą TensorFlow. Najpierw dodaj zależność TensorFlow do pliku pom.xml projektu:

<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.1</version>
        </dependency>
    </dependencies>
</project>

Utwórz plik źródłowy 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();
  }
}

Skompiluj i wykonaj:

mvn -q compile exec:java

Polecenie drukuje wersję TensorFlow i proste obliczenia.

Sukces! Java TensorFlow jest skonfigurowana.