TensorFlow Java puede ejecutarse en cualquier JVM para la construcción, la capacitación y la implementación de modelos de aprendizaje automático. Admite la ejecución de CPU y GPU, en modo gráfico o ansioso, y presenta una API enriquecida para usar TensorFlow en un entorno JVM. Java y otros lenguajes JVM, como Scala y Kotlin, se utilizan con frecuencia en empresas grandes y pequeñas de todo el mundo, lo que convierte a TensorFlow Java en una opción estratégica para adoptar el aprendizaje automático a gran escala.
Requisitos
TensorFlow Java se ejecuta en Java 8 y versiones posteriores, y admite las siguientes plataformas listas para usar:
- Ubuntu 16.04 o superior; 64 bits, x86
- macOS 10.12.6 (Sierra) o superior; 64 bits, x86
- Windows 7 o superior; 64 bits, x86
Versiones
TensorFlow Java tiene su propio ciclo de liberación, independiente del tiempo de ejecución TensorFlow . En consecuencia, su versión no coincide con la versión del tiempo de ejecución de TensorFlow en el que se ejecuta. Consultar el TensorFlow Java de versiones de mesa para listar todas las versiones disponibles y su asignación con el tiempo de ejecución TensorFlow.
Artefactos
Hay varias formas de añadir TensorFlow Java para su proyecto. La más fácil es añadir una dependencia en el tensorflow-core-platform
artefacto, que incluye tanto la API de Java TensorFlow Core y las dependencias nativos que necesita para funcionar en todas las plataformas.
También puede seleccionar una de las siguientes extensiones en lugar de la versión de CPU pura:
-
tensorflow-core-platform-mkl
: Soporte para Intel® MKL-DNN en todas las plataformas -
tensorflow-core-platform-gpu
: Apoyo a CUDA® en plataformas Linux y Windows -
tensorflow-core-platform-mkl-gpu
: Soporte para Intel® MKL-DNN y CUDA® en la plataforma Linux.
Además, una dependencia separada en la tensorflow-framework
biblioteca se puede añadir a beneficio de un rico conjunto de utilidades para el aprendizaje de máquina basado en TensorFlow en la JVM.
Instalación con Maven
Para incluir en su TensorFlow Maven aplicación, agregue una dependencia de sus artefactos a su proyecto de pom.xml
archivo. Por ejemplo,
<dependency>
<groupId>org.tensorflow</groupId>
<artifactId>tensorflow-core-platform</artifactId>
<version>0.3.3</version>
</dependency>
Reducir el número de dependencias
Es importante tener en cuenta que la adición de una dependencia de un tensorflow-core-platform
artefacto importará bibliotecas nativas para todas las plataformas compatibles, que pueden aumentar significativamente el tamaño de su proyecto.
Si desea dirigirse a un subconjunto de las plataformas disponibles a continuación, puede excluir los artefactos innecesarios de las otras plataformas utilizando el Exclusión Maven Dependencia función.
Otra forma de seleccionar qué plataformas que desea incluir en su aplicación es a las propiedades de conjunto del sistema JavaCPP, en su línea de comandos Maven o en su pom.xml
. Por favor, vea JavaCPP la documentación para más detalles.
Usar instantáneas
Las últimas instantáneas de desarrollo TensorFlow Java desde el repositorio de código fuente de Java TensorFlow están disponibles en el OSS Sonatype repositorio de Nexus. A depender de estos artefactos, asegúrese de configurar repositorio de la OSS instantáneas en su 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>
Instalación con Gradle
Para incluir en su TensorFlow Gradle aplicación, agregue una dependencia de sus artefactos a su proyecto de build.gradle
archivo. Por ejemplo,
repositories {
mavenCentral()
}
dependencies {
compile group: 'org.tensorflow', name: 'tensorflow-core-platform', version: '0.3.3'
}
Reducir el número de dependencias
Excluir artefactos nativos de TensorFlow Java con Gradle no es tan fácil como con Maven. Le recomendamos que utilice los complementos JavaCPP de Gradle para reducir esta cantidad de dependencias.
Por favor, lea en Gradle JavaCPP la documentación para más detalles.
Instalación desde fuentes
Para construir TensorFlow Java de fuentes, y, posiblemente, personalizarlo, por favor, lea las siguientes instrucciones .
Programa de ejemplo
Este ejemplo muestra cómo compilar un proyecto Apache Maven con TensorFlow. En primer lugar, añadir la dependencia a TensorFlow del proyecto pom.xml
archivo:
<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>
Crear el archivo de origen 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();
}
}
Compilar y ejecutar:
mvn -q compile exec:java
El comando imprime la versión de TensorFlow y un cálculo simple.
¡Éxito! TensorFlow Java está configurado.