Dziękujemy za zapoznanie się z Google I/O. Zobacz wszystkie sesje na żądanie Oglądaj na żądanie

Zainstaluj TensorFlow Java

TensorFlow Java można uruchomić na dowolnym JVM na budowę, szkolenie i wdrażanie modeli uczenia maszynowego. Obsługuje wykonywanie zarówno CPU, jak i GPU, w trybie graficznym lub przyspieszonym, i przedstawia bogate API do korzystania z 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

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

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

Wersje

TensorFlow Java ma swój własny cykl wydawniczy, niezależny od wykonywania TensorFlow . W związku z tym jego wersja nie jest zgodna z wersją środowiska wykonawczego TensorFlow, na którym działa. Skonsultować się z TensorFlow Java wersjonowania stół do listy dostępne wszystkie wersje i ich odwzorowanie ze środowiskiem wykonawczym TensorFlow.

Artefakty

Istnieje kilka sposobów , aby dodać TensorFlow Java do projektu. Najprostszym z nich jest dodanie zależność od tensorflow-core-platform artefaktu, który obejmuje zarówno API TensorFlow Java rdzeń i rodzimych zależności wymagane do uruchomienia na wszystkich obsługiwanych platformach.

Możesz również wybrać jedno z następujących rozszerzeń zamiast czystej wersji CPU:

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

Ponadto, oddzielna zależność od tensorflow-framework biblioteki mogą być dodawane do skorzystania z bogatego zestawu narzędzi do uczenia maszynowego TensorFlow opartych na JVM.

Instalacja za pomocą Maven

Aby dołączyć TensorFlow w Maven aplikacji, dodać zależność od swoich artefaktów do Twojego projektu pom.xml pliku. Na przykład,

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

Zmniejszenie liczby zależności

Ważne jest, aby pamiętać, że dodanie zależność od tensorflow-core-platform artefaktu będzie importować biblioteki rodzime dla wszystkich obsługiwanych platform, które mogą znacznie zwiększyć rozmiar swojego projektu.

Jeśli chcesz kierować podzbiór dostępnych platform następnie można wykluczyć niepotrzebne artefakty z innych platform wykorzystujących wykluczania Maven Dependency funkcję.

Innym sposobem, aby wybrać platform, które chcesz umieścić w swojej aplikacji jest zestaw właściwości systemu JavaCPP, w linii poleceń lub Maven w pom.xml . Proszę zobaczyć JavaCPP dokumentację po więcej szczegółów.

Korzystanie z migawek

Najnowsze zrzuty rozwojowe TensorFlow Java z repozytorium źródłowego TensorFlow Java są dostępne na OSS Sonatype repozytorium Nexus. Polegać na tych artefaktów, upewnij się, aby skonfigurować repozytorium OSS migawek w 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>

Instalacja z Gradle

Aby dołączyć TensorFlow w Gradle aplikacji, dodać zależność od swoich artefaktów do Twojego projektu build.gradle pliku. Na przykład,

repositories {
    mavenCentral()
}

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

Zmniejszenie liczby zależności

Wykluczanie natywnych artefaktów z TensorFlow Java z Gradle nie jest tak proste, jak z Mavenem. Zalecamy korzystanie z wtyczek Gradle JavaCPP w celu zmniejszenia tej liczby zależności.

Proszę przeczytać w Gradle JavaCPP dokumentację po więcej szczegółów.

Instalowanie ze źródeł

Aby zbudować TensorFlow Java ze źródeł, i ewentualnie dostosować go, proszę zapoznać się z poniższymi instrukcjami .

Przykładowy program

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

<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>

Tworzenie pliku źródłowego 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 wyświetla wersję TensorFlow i prostą kalkulację.

Powodzenie! TensorFlow Java jest skonfigurowana.