#tensorflow #bindings

废弃 sys libtensorflow-sys

此包已被废弃,建议使用tensorflow-sys。请使用它代替。

2 个版本

使用旧Rust 2015

0.0.2 2016年7月12日
0.0.1 2016年5月5日

#8 in #tensor-flow

Apache-2.0

3KB
81

SIG Rust TensorFlow

Version Build status

TensorFlow Rust为TensorFlow提供惯用的Rust语言绑定。

注意:该项目仍在积极开发中,无法保证API的稳定性。

入门

由于此包依赖于TensorFlow C API,需要先下载或编译。此包将自动为您下载或编译TensorFlow共享库,但也可能手动安装TensorFlow,该包将相应地选择它。

先决条件

如果TensorFlow共享库已在您的系统上找到,将使用它们。如果您的系统是x86-64 Linux或Mac,将下载预构建的二进制文件,不需要特殊先决条件。

否则,需要以下依赖项来编译和构建此包,这将涉及编译TensorFlow本身

  • git
  • bazel
  • Python依赖项 numpydevpipwheel
  • 可选,用于支持基于GPU处理的CUDA包

TensorFlow网站提供了有关如何获取和安装这些依赖项的详细说明,因此如果您不确定,请查看文档以获取更多详细信息。

某些示例使用Python编写的TensorFlow代码,需要完整的TensorFlow安装。

最低支持的Rust版本是1.58。

用法

将此添加到您的 Cargo.toml

[dependencies]
tensorflow = "0.21.0"

并将此添加到您的crate根目录

extern crate tensorflow;

然后运行 cargo build -j 1. tensorflow-sys 链接库的 build.rs 现在会下载预构建的、仅支持 CPU 的基本二进制文件(默认选项),或者在环境变量的强制下编译 TensorFlow。如果在此过程中编译 TensorFlow,由于完整编译非常消耗内存,我们建议使用 -j 1 标志,该标志告诉 cargo 只使用一个任务,进而告诉 TensorFlow 仅使用一个任务进行构建。然而,如果您有大量内存,显然可以使用更高的值。

要包含特别不稳定的 API(目前是 expr 模块),请使用 --features tensorflow_unstable

目前,请参阅 示例 了解如何使用此绑定更详细的信息。

Tensor 最大显示

在打印或调试张量时,它将默认打印每个元素,这可以通过更改环境变量进行修改

TF_RUST_DISPLAY_MAX=5

如果值超过限制,将截断值

let values: Vec<u64> = (0..100000).collect();
let t = Tensor::new(&[2, 50000]).with_values(&values).unwrap();
dbg!(t);
t = Tensor<u64> {
    values: [
        [0, 1, 2, 3, 4, ...],
        ...
    ],
    dtype: uint64,
    shape: [2, 50000]
}

GPU 支持

要启用 GPU 支持,请使用 Cargo.toml 中的 tensorflow_gpu 功能

[dependencies]
tensorflow = { version = "0.21.0", features = ["tensorflow_gpu"] }

手动 TensorFlow 编译

如果您想针对未发布/不受支持的 TensorFlow 版本工作或使用针对您的机器优化的构建,请手动编译。

有关详细信息,请参阅 tensorflow-sys/README.md

常见问题解答 (FAQ)

为什么编译器说 API 的某些部分不存在?

API 特别不稳定的部分(目前是 expr 模块)被 tensorflow_unstable 功能门控,以防止意外使用。请参阅 http://doc.crates.io/manifest.html#the-features-section。(我们更喜欢使用 #[unstable] 属性,但它 尚不存在。)

我该如何...

首先尝试 文档,看看它是否回答了您的问题。如果没有,请查看示例文件夹。请注意,可能没有针对您具体问题的示例,但它可能通过演示其他内容来回答您的问题。

如果上述任何一项都没有帮助,您可以在 TensorFlow Rust Google Group 上提出您的问题。

贡献

开发者和用户欢迎加入 TensorFlow Rust Google Group

请阅读有关如何贡献代码的 贡献指南

这不是一个官方的 Google 产品。

RFC 是 带有 RFC 标签的问题。查看它们并发表评论。欢迎讨论。毕竟,这就是请求评论 (RFC) 的目的!

许可

本项目根据 Apache 2.0 许可证的条款进行许可。

依赖项

~0–1.3MB
~27K SLoC