#tensorflow #backward #internal #macro #compatibility #guarantees #machine-learning

macro tensorflow-internal-macros

该软件包为 TensorFlow 的内部使用提供了宏。不提供向后兼容性保证。

3 个版本

0.0.3 2022 年 8 月 19 日
0.0.2 2022 年 4 月 13 日
0.0.1 2019 年 9 月 30 日

#879 in 过程宏

Download history 1155/week @ 2024-03-27 1071/week @ 2024-04-03 1765/week @ 2024-04-10 1063/week @ 2024-04-17 1252/week @ 2024-04-24 947/week @ 2024-05-01 1233/week @ 2024-05-08 1093/week @ 2024-05-15 1301/week @ 2024-05-22 1654/week @ 2024-05-29 1357/week @ 2024-06-05 1298/week @ 2024-06-12 963/week @ 2024-06-19 1088/week @ 2024-06-26 482/week @ 2024-07-03 946/week @ 2024-07-10

3,689 每月下载量
15 个库中使用(通过 tensorflow

Apache-2.0

14KB
355

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"

并将其添加到您的库根目录

extern crate tensorflow;

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

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

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

张量最大显示

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

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

常见问题解答

为什么编译器说 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 标签的问题。检查它们并发表评论。讨论是受欢迎的。毕竟,这就是请求评论的目的!

许可

本项目受 Apache 2.0 许可证 的条款约束。


lib.rs:

该软件包为 TensorFlow 的内部使用提供了宏。不提供向后兼容性保证。

依赖关系

~1.5MB
~34K SLoC