10 个重大版本

新功能 0.13.0 2024 年 8 月 24 日
0.12.0 2024 年 7 月 30 日
0.11.0 2024 年 7 月 5 日
0.6.0 2024 年 3 月 31 日
0.1.0 2023 年 12 月 31 日

#517 in 机器学习

Download history 151/week @ 2024-05-04 310/week @ 2024-05-11 355/week @ 2024-05-18 405/week @ 2024-05-25 177/week @ 2024-06-01 135/week @ 2024-06-08 151/week @ 2024-06-15 150/week @ 2024-06-22 238/week @ 2024-06-29 224/week @ 2024-07-06 241/week @ 2024-07-13 183/week @ 2024-07-20 371/week @ 2024-07-27 268/week @ 2024-08-03 254/week @ 2024-08-10 218/week @ 2024-08-17

1,137 个月下载量
用于 9 个 crate (7 个直接使用)

MIT/Apache

315KB
7K SLoC

rten-tensor

rten-tensor 是 RTen 机器学习运行时的基础库,提供多维数组。它与 ndarray 类似,但针对 RTen 库进行了优化。


lib.rs:

rten_tensor 提供多维数组,在机器学习领域中通常被称为 张量

每个张量都是数据和布局的组合。数据可以拥有、借用或可变借用。这与 1D 数组的 Vec<T>&[T]&mut [T] 相似。布局确定维数的数量(即 )、每个维度的尺寸以及步长(给定维度上连续索引之间的差距)。

关键类型和特性

所有张量的基类型为 [TensorBase]。通常不直接使用,而是通过类型别名,根据张量维数(即 )在编译时或运行时是否已知,以及张量是否拥有、借用或可变借用其数据来使用。

拥有(如 Vec<T> 借用(如 &[T] 可变借用
静态 [NdTensor] [NdTensorView] [NdTensorViewMut]
动态 [Tensor] [TensorView] [TensorViewMut]

所有张量都实现了[布局]特征,该特征提供了查询张量形状、维度数和步长的方法。张量视图提供了各种方法来索引、迭代、切片和转换它们。[AsView]特征为拥有和可变借用张量提供了访问这些方法的方式。在概念上,它与Deref允许在&[T]上访问Vec<T>的方法类似。导入特征的推荐方式是通过预导入模块

use rten_tensor::prelude::*;
use rten_tensor::NdTensor;

let tensor = NdTensor::from([[1, 2], [3, 4]]);

let transposed_elems: Vec<_> = tensor.transposed().iter().copied().collect();
assert_eq!(transposed_elems, [1, 3, 2, 4]);

依赖关系