tensorflow 支持java_安装 TensorFlow Java

TensorFlow Java 可在任何 JVM 上运行,用于构建、训练和部署机器学习模型。它既支持 CPU 执行也支持 GPU 执行(无论是图表模式下还是 eager 模式下),并为在 JVM 环境中使用 TensorFlow 提供了丰富的 API。世界各地的大小企业都在频繁使用 Java 和其他 JVM 语言(比如 Scala 和 Kotlin),有鉴于此,若要大规模采用机器学习,TensorFlow Java 无疑是一项战略选择。

注意:TensorFlow Java API 不在 TensorFlow API 稳定性保障的涵盖范围内。

要求

TensorFlow Java 可在 Java 8 及更高版本上运行,并可在以下平台上即开即用:

Ubuntu 16.04 或更高版本;64 位,x86

macOS 10.12.6 (Sierra) 或更高版本;64 位,x86

Windows 7 或更高版本;64 位,x86

注意:若要使用 Android 版 TensorFlow,请参阅 TensorFlow Lite*

版本

TensorFlow Java 有自己独立的发布周期,与 TensorFlow 运行时无关。因此,它的版本与作为其运行环境的 TensorFlow 运行时的版本不匹配。请查阅 TensorFlow Java 版本控制表,了解所有可用的版本以及它们与 TensorFlow 运行时的映射关系。

工件

您可通过多种方式将 TensorFlow Java 添加到您的项目中。最简便的方式是,添加 tensorflow-core-platform 工件的某个依赖项,该工件既包含 TensorFlow Java Core API,也包含在所有受支持的平台上运行时需要用到的原生依赖项。

您也可选择下列扩展程序之一(而非单纯的 CPU 版本):

tensorflow-core-platform-mkl:支持所有平台上的 Intel® MKL-DNN

tensorflow-core-platform-gpu:支持 Linux 和 Windows 平台上的 CUDA®

tensorflow-core-platform-mkl-gpu:支持 Linux 和 Windows 平台上的 Intel® MKL-DNN 和 CUDA®。

您还可再添加一个 tensorflow-framework 库依赖项,以便能够利用丰富多样的实用程序在 JVM 上进行基于 TensorFlow 的机器学习。

使用 Maven 进行安装

若要将 TensorFlow 纳入到您的 Maven 应用内,请将其 工件的某个依赖项添加到您项目的 pom.xml 文件中。

例如:

org.tensorflow

tensorflow-core-platform

0.2.0

减少依赖项数量

请务必注意,添加 tensorflow-core-platform 工件的依赖项会导入所有受支持平台的原生库,这可能会导致您项目的规模显著增大。

若想仅定位到一部分可用平台,您可以使用 Maven 依赖项排除功能排除其他平台的非必要工件。

还有一种方法可供您用来选择要将哪些平台纳入到您的应用内,那就是:在您的 Maven 命令行或您的 pom.xml 中设置 JavaCPP 系统属性。如需了解更多详情,请参阅 JavaCPP 文档。

使用快照

您可从 OSS Sonatype Nexus 库获取 TensorFlow Java 源代码库的最新 TensorFlow Java 开发快照。若要依赖这些工件,请务必在您的 pom.xml 中配置 OSS 快照库。

tensorflow-snapshots

https://oss.sonatype.org/content/repositories/snapshots/

true

org.tensorflow

tensorflow-core-platform

0.3.0-SNAPSHOT

使用 Gradle 进行安装

若要将 TensorFlow 纳入到您的 Gradle 应用内,请将其 工件的某个依赖项添加到您项目的 build.gradle 文件中。

例如:

repositories {

mavenCentral()

}

dependencies {

compile group: 'org.tensorflow', name: 'tensorflow-core-platform', version: '0.2.0'

}

减少依赖项数量

在使用 Gradle 时排除 TensorFlow Java 原生工件并不像使用 Maven 时那般容易。我们建议您使用 Gradle JavaCPP 插件来减少这些依赖项的数量。

如需了解更多详情,请参阅 Gradle JavaCPP 文档。

从源代码进行安装

若要从源代码构建 TensorFlow Java,并在可能的情况下自定义它,请阅读以下说明。

注意:只有由 TensorFlow 分发的官方版本才能获得其维护人员的支持;如果使用自定义版本,用户应自担风险。*

示例程序

以下示例演示了如何使用 TensorFlow 构建 Apache Maven 项目。首先,将 TensorFlow 依赖项添加到项目的 pom.xml 文件中:

4.0.0

org.myorg

hellotensorflow

1.0-SNAPSHOT

HelloTensorFlow

1.8

1.8

org.tensorflow

tensorflow-core-platform

0.2.0

创建源代码文件 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);

Tensor x = TInt32.scalarOf(10);

Tensor dblX = dbl.call(x).expect(TInt32.DTYPE)) {

System.out.println(x.data().getInt() + " doubled is " + dblX.data().getInt());

}

}

private static Signature dbl(Ops tf) {

Placeholder x = tf.placeholder(TInt32.DTYPE);

Add dblX = tf.math.add(x, x);

return Signature.builder().input("x", x).output("dbl", dblX).build();

}

}

编译并执行:

mvn -q compile exec:java

该命令会输出:TensorFlow version and a simple calculation.

大功告成!TensorFlow Java 已配置完毕。

你可能感兴趣的:(tensorflow,支持java)