用于处理可变长度深度嵌套序列的PyTorch扩展
项目描述
FoldedTensor: PyTorch扩展,用于处理深度嵌套的可变长度序列
foldedtensor
是一个PyTorch扩展,提供对包含深度嵌套可变大小序列的张量的高效处理。它允许根据序列长度的内部结构来展开/折叠(或展开/折叠)数据维度。当处理可以以不同方式分割的数据时,该库特别有用,并允许您避免选择固定的表示。
安装
可以使用pip安装库
pip install foldedtensor
特性
- 支持任意数量的嵌套维度
- 处理已填充张量时无计算开销
- 基于存储的内部长度动态重新填充(或重新折叠)数据
- 每次张量重新折叠时自动生成和更新掩码
- C++优化代码,用于快速从Python列表加载数据和折叠
- 数据表示的灵活性,便于在需要时切换到不同的布局
示例
在最简单的情况下,foldedtensor
可以用于将嵌套Python列表转换为PyTorch张量
from foldedtensor import as_folded_tensor
ft = as_folded_tensor(
[
[0, 1, 2],
[3],
],
)
# FoldedTensor([[0, 1, 2],
# [3, 0, 0]])
您也可以在创建时指定名称和平铺/非平铺维度
import torch
from foldedtensor import as_folded_tensor
# Creating a folded tensor from a nested list
# There are 2 samples, the first with 5 lines, the second with 1 line.
# Each line contain between 1 and 2 words.
ft = as_folded_tensor(
[
[[1], [], [], [], [2, 3]],
[[4, 3]],
],
data_dims=("samples", "words"),
full_names=("samples", "lines", "words"),
dtype=torch.long,
)
print(ft)
# FoldedTensor([[1, 2, 3],
# [4, 3, 0]])
创建后,您可以通过折叠来改变张量的形状
# Refold on the lines and words dims (flatten the samples dim)
print(ft.refold(("lines", "words")))
# FoldedTensor([[1, 0],
# [0, 0],
# [0, 0],
# [0, 0],
# [2, 3],
# [4, 3]])
# Refold on the words dim only: flatten everything
print(ft.refold(("words",)))
# FoldedTensor([1, 2, 3, 4, 3])
张量可以进一步与标准PyTorch操作一起使用
# Working with PyTorch operations
embedder = torch.nn.Embedding(10, 16)
embedding = embedder(ft.refold(("words",)))
print(embedding.shape)
# torch.Size([5, 16]) # 5 words total, 16 dims
refolded_embedding = embedding.refold(("samples", "words"))
print(refolded_embedding.shape)
# torch.Size([2, 5, 16]) # 2 samples, 5 words max, 16 dims
基准测试
在此处查看与各种替代方案的比较:基准测试文档。
与替代方案的比较
与其他的锯齿或嵌套张量实现不同,FoldedTensor不会对嵌套数据进行特定结构的约束,也不需要填充所有维度。这在使用可以按数据转换的不同方式排列的数据时,为用户提供更大的灵活性。此外,C++优化确保了高性能,使其非常适合高效处理深层嵌套张量。
以下是与其他常见处理可变长度嵌套序列实现的比较
特性 | 嵌套张量 | 掩码张量 | 平铺张量 |
---|---|---|---|
内部数据结构 | 平铺 | 填充 | 任意 |
最大嵌套级别 | 1 | 1 | ∞ |
从嵌套Python列表生成 | 否 | 否 | 是 |
布局转换 | 到填充 | 否 | 任何 |
无填充的归约操作 | 是 | 否 | 否 |
项目详情
关闭
foldedtensor-0.3.5.tar.gz 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d53c09fd076ba88896b88915ba4c9dcd2b99a092ab33cbb9f6309861cacdf304 |
|
MD5 | 4694840757b959e0091e3c264d0f5aec |
|
BLAKE2b-256 | 0f77d24fd67a10a9efcb9f671eb76598215b372e9c239703da3cb3935d826c7d |
关闭
foldedtensor-0.3.5-cp312-cp312-win_amd64.whl 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 07a7306a501820147c14d6ea561571ed27014ba2736f8b25e0a31befbf93d591 |
|
MD5 | 69ac8a652c8fc294635e1b11bc5b9e22 |
|
BLAKE2b-256 | 8e78dd945afda9912c25f59858593402cd0207eda218d7bd32cd06f931cafa24 |
关闭
哈希值 用于 foldedtensor-0.3.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 5bcf77019f273daa263165ebf4d8ad10a405f27b3a35065affb20da514fc59f2 |
|
MD5 | 36a7ff4665dfd8747cfcfaa79de6019d |
|
BLAKE2b-256 | 2dba2d14dbd0d57c2f53709d461158c7602a45ecce914566f3cb2f231dd06813 |
关闭
哈希值 用于 foldedtensor-0.3.5-cp312-cp312-macosx_11_0_arm64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 1c8c473e5be655b817800da0acb719c6439bdd972c8d09a8332de7a013f7e429 |
|
MD5 | 3541a492f78bdc2ab8902ae01e44b481 |
|
BLAKE2b-256 | 1d4f84d78ac4a4a9fa0aaa9e7083f44f932578734bbca0c0fed40a60ffb7e9d7 |
关闭
哈希值 用于 foldedtensor-0.3.5-cp312-cp312-macosx_10_9_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 51ee0f94f59ae6a10f5ed0b832a1a0cb269dac7e496c9277ca073839ed5c377d |
|
MD5 | 9afadd560b40d76eec62d1f0c5a2fe30 |
|
BLAKE2b-256 | 4cf48b01106c7d18ed7c8ac620d2775c2874eb1e722fda02254f7aea7eef05e3 |
关闭
哈希值 用于 foldedtensor-0.3.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 46c29a22d43fdc44f6e5f68f86a841ca22c8b7fcf84148e2b06186e08f17596f |
|
MD5 | f0f93fb656e09fdbb31e320a142ae7d0 |
|
BLAKE2b-256 | bf79c22809cb7b43b3a685c9e63ae95f1d17fff3714cae18356d881057dd3959 |
关闭
哈希值 用于 foldedtensor-0.3.5-cp311-cp311-macosx_11_0_arm64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b41b559792b3336c5eec345197715d7de27b4e4dfffc29673a7603fe05492e1c |
|
MD5 | 62bf6442246aa0667392fc0ddb3d29bf |
|
BLAKE2b-256 | 207c22b17bd38c1b8a90c3afcb9d38c7f23ec42814a0e8cc8b4117b4e282c17a |
关闭
哈希值 用于 foldedtensor-0.3.5-cp311-cp311-macosx_10_9_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 9d74caaf4f1992d1d05ddd82f19de82d829c49c6e5120554844c9619ce10ab64 |
|
MD5 | 617fd1874adcbc6310d3368b4ef29713 |
|
BLAKE2b-256 | 456dd04a397de0c9f55c0590051c9abc9365f74f210b5d51f9938bd369b75c01 |
关闭
哈希值 用于 foldedtensor-0.3.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 89ea9a24b8a67e0ddd8d37578367eeb809b9d83dde8a2b9e6e2b01d1290ecb43 |
|
MD5 | 734799093e981c9c4fd6e454c4b04a28 |
|
BLAKE2b-256 | fb668371d82b6b3ac29705fffcb24884de97e2a0b3bb192ea33cd557ab93db4d |
关闭
哈希值 用于 foldedtensor-0.3.5-cp310-cp310-macosx_11_0_arm64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | cacb506377f381c7fbe9f7015fa0425941d180cd41d8f54ab9fe7ddda6d4bd84 |
|
MD5 | 8d31f097cff975308189b1fb734576d7 |
|
BLAKE2b-256 | 091fbb472f08915b23647d3835b57bf9f7191f7102217339689254fd740eeb71 |
关闭
哈希值 用于 foldedtensor-0.3.5-cp310-cp310-macosx_10_9_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 53aa70fa00670fa8d093f6bed15d48b16787cc463d432d1f7d0c1face68f2ff7 |
|
MD5 | 54a0c876e958e36cde69191a5519680d |
|
BLAKE2b-256 | 58b7ffad3f13dc4c802fc9a4424df6925503f1d89710b42a512f17a81e48e807 |
关闭
哈希值 用于 foldedtensor-0.3.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7d4162492c8a35e230e61c7adda219719b3797d7c0a16efcbbbbde83e1b2a905 |
|
MD5 | 3655e057b7de3bb59ca3b0872cf4edf4 |
|
BLAKE2b-256 | 520e48a61b2ced61feaabce36b59ec31c02a628a3386612e21ce97c5a1fe7e48 |
关闭
哈希值 for foldedtensor-0.3.5-cp39-cp39-macosx_11_0_arm64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d498072cddf34da0ad3edd6eb908618cb536068a6021ad937d097c13025241f4 |
|
MD5 | 5ef81cedfab77d16a81d480600731e59 |
|
BLAKE2b-256 | 3645598e1eaf6fe49122080d45874957e9fb5c5592cb20396511e23f09d68baa |
关闭
哈希值 for foldedtensor-0.3.5-cp39-cp39-macosx_10_9_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 781b8c145459a2d3cd5f43dbc4b469aad55626f21475853397fb6608217beafe |
|
MD5 | 47b0ab29a5bbb990c10fe314dbe5fe5d |
|
BLAKE2b-256 | 22712655d64c94b2ee96f019ff01bbf9413dd8a67b3bad3570e936ee6cb91863 |
关闭
哈希值 for foldedtensor-0.3.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b2239b18d398f6708378fff65ad0b307ae276120d939aede3d3a419047801232 |
|
MD5 | b95ee17defa16137119dc8e4ecbe1166 |
|
BLAKE2b-256 | adf83696d8dbd2faad8bdcafebb128820fe545bd7d99637df920fc74c893706e |
关闭
哈希值 for foldedtensor-0.3.5-cp38-cp38-macosx_11_0_arm64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | aad0c26c2f86765cc4f400fc9e7d04c6f9ed59f32506821941925b1172e65c32 |
|
MD5 | 5d3926112f3da9e624c925c8b715067d |
|
BLAKE2b-256 | 5a5c180df1f1b270a5c3c3f8a61618ec75601b12b8f31db4cad631e2172e3c0d |
关闭
哈希值 for foldedtensor-0.3.5-cp38-cp38-macosx_10_9_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f8c66a3c701263293f892d14662a1373b94157cb4e5bd44c42f7650cd4d01ff9 |
|
MD5 | 3559fed1086b057843e1aa93e590acb5 |
|
BLAKE2b-256 | d5d528f88c90d8d573a0ab6a77137e50849e94b95b52f0c00a81f9acd9e1b31c |
关闭
哈希值 for foldedtensor-0.3.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 4b0254ee39ecea79571c9c246c9c98d36a4861857c724c72c30a8e7f26bb6373 |
|
MD5 | c11ea1a6665e66f8568b67a02127ff4f |
|
BLAKE2b-256 | fbf32bfb2df3d1672b3176ebe7b297f2bf2fb925aefa60c1b42f91d999887040 |
关闭
哈希值 for foldedtensor-0.3.5-cp37-cp37m-macosx_10_9_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d009ca99e4ad64c26ab9e11d52b0536c45d8e793760b37ba297dd0a11b19c11c |
|
MD5 | 765c3dc985b6f4405b53aa4a173b90b6 |
|
BLAKE2b-256 | 1c262c8b315378044ae4eeecef2569280e40286049541df2c20e9cc3274dfd9b |