20个版本 (12个重大变更)

0.13.2 2024年5月3日
0.12.1 2024年2月1日
0.11.1 2023年12月4日
0.10.0 2023年10月24日
0.1.0 2022年7月27日

#348机器学习

Download history 2725/week @ 2024-05-03 2184/week @ 2024-05-10 2133/week @ 2024-05-17 3993/week @ 2024-05-24 2779/week @ 2024-05-31 5047/week @ 2024-06-07 2571/week @ 2024-06-14 1827/week @ 2024-06-21 2921/week @ 2024-06-28 2010/week @ 2024-07-05 1592/week @ 2024-07-12 1592/week @ 2024-07-19 1596/week @ 2024-07-26 3180/week @ 2024-08-02 1853/week @ 2024-08-09 1435/week @ 2024-08-16

每月8,286次下载
用于 22 个crate(8个直接使用)

MIT/Apache

1MB
16K SLoC

Burn Tensor

Burn Tensor库

Current Crates.io Version license

该库提供多个Tensor实现,隐藏在易于使用的API后面,支持反向模式自动微分。

特性

  • 灵活 ✨
  • CPU + GPU 🙏
  • 多线程 🚀
  • 直观易用 😌
  • 无全局状态 🚫
  • 多个后端 🦾
  • 反向模式自动微分 🔥

后端

目前实现了三个后端,并计划实现更多。

自动微分

自动微分作为另一个Tensor后端实现,没有任何全局状态。这是可能的,因为我们跟踪每个操作执行顺序,并且只在计算梯度时创建tape。为此,每个操作创建一个新节点,该节点指向其父节点。因此,创建tape只需要一个简单高效的图遍历算法。

    let x = AutodiffTensor::from_tensor(x_ndarray);
    let y = ADtodiffTensor::from_tensor(y_ndarray);

    let z = x.matmul(&y);

    let grads = z.backward();

    let x_grad = x.grad(&grads);
    let y_grad = y.grad(&grads);

Cuda

要使用CUDA运行,请设置 TORCH_CUDA_VERSION=cu121

备注

此crate可以独立使用,无需整个burn堆栈,并且仅用于较小的二进制文件选择后端。

功能标志

该包可以在不使用标准库的情况下使用(#![no_std])并通过禁用默认的std特性来使用alloc

  • std - 启用标准库。
  • burn-tensor-testgen - 启用生成张量测试的宏。

依赖关系

~3.5–5MB
~88K SLoC