#tensor #contraction #array #index #iterator #indices #dimension

斯彭索

一个张量(n维数组)网络,迭代和收缩(使用自动抽象索引匹配)库

3 个不稳定版本

0.3.0 2024年7月12日
0.2.0 2024年5月24日
0.1.1 2024年5月20日
0.1.0 2024年5月20日

算法 中排名第 1049

每月下载量 39

MIT/Apache 和可能 LGPL-3.0+

350KB
9K SLoC

logo

Documentation crates.io Build Status

斯彭索

斯彭索是一个用于处理任意维度数组(通常称为张量)的 Rust 库。它提供了稀疏(斯彭索)和稠密(丹索)张量。

它支持任何类型的元素,并提供沿指定维度(称为纤维)的迭代器


lib.rs:

包含用于处理任意秩张量的所有工具,包括符号、数值和参数化。

它包括对米氏度量的特殊支持以及添加任何自定义对角(基于符号)度量的方式。

所有张量类型都使用张量结构类型,要么是最小的 VecSlot,要么是一个更完整(但计算量稍大的)HistoryStructure。然后添加数据,以创建参数化或完全数值张量。如果没有添加数据,则某些 TensorStructure 行为类似于符号张量:即 HistoryStructureSymbolicTensor

有两种主要的数据张量类型,DenseTensorSparseTensor。它们各自实现了不同类型的数据存储。

所有类型的张量都可以使用 Contract 特性进行收缩。这可以手动完成,也可以使用 TensorNetwork 并指定一个收缩算法。

定义了几个枚举类型,以便能够存储异构张量。具体包括:

依赖关系

~5–18MB
~297K SLoC