Package: batchtensor
batchtensorOverviewbatchtensoris lightweight library built on top ofPyTorchto manipulate
nested data structure with PyTorch tensors.
This library provides functions for tensors where the first dimension is the batch dimension.
It also provides functions for tensors representing a batch of sequences where the first dimension
is the batch dimension and the second dimension is the sequence dimension.MotivationDocumentationInstallationContributingAPI stabilityLicenseMotivationLet's imagine you have a batch which is represented by a dictionary with three tensors, and you want
to take the first 2 items.batchtensorprovides the functionslice_along_batchthat allows to slide all the tensors:>>>importtorch>>>frombatchtensor.nestedimportslice_along_batch>>>batch={..."a":torch.tensor([[2,6],[0,3],[4,9],[8,1],[5,7]]),..."b":torch.tensor([4,3,2,1,0]),..."c":torch.tensor([1.0,2.0,3.0,4.0,5.0]),...}>>>slice_along_batch(batch,stop=2){'a': tensor([[2, 6], [0, 3]]), 'b': tensor([4, 3]), 'c': tensor([1., 2.])}Similarly, it is possible to split a batch in multiple batches by using the
functionsplit_along_batch:>>>importtorch>>>frombatchtensor.nestedimportsplit_along_batch>>>batch={..."a":torch.tensor([[2,6],[0,3],[4,9],[8,1],[5,7]]),..."b":torch.tensor([4,3,2,1,0]),..."c":torch.tensor([1.0,2.0,3.0,4.0,5.0]),...}>>>split_along_batch(batch,split_size_or_sections=2)({'a': tensor([[2, 6], [0, 3]]), 'b': tensor([4, 3]), 'c': tensor([1., 2.])},{'a': tensor([[4, 9], [8, 1]]), 'b': tensor([2, 1]), 'c': tensor([3., 4.])},{'a': tensor([[5, 7]]), 'b': tensor([0]), 'c': tensor([5.])})Please check the documentation to see all the implemented functions.Documentationlatest (stable): documentation from the latest stable
release.main (unstable): documentation associated to the
main branch of the repo. This documentation may contain a lot of work-in-progress/outdated/missing
parts.InstallationWe highly recommend installing
avirtual environment.batchtensorcan be installed from pip using the following command:pipinstallbatchtensorTo make the package as slim as possible, only the minimal packages required to usebatchtensorare
installed.
To include all the dependencies, you can use the following command:pipinstallbatchtensor[all]Please check theget started pageto see how
to install only some specific dependencies or other alternatives to install the library.
The following is the correspondingbatchtensorversions and tested dependencies.batchtensorcoolatorchpythonmain>=0.1,<0.4>=1.11,<3.0>=3.9,<3.130.0.1>=0.1,<0.4>=1.11,<3.0>=3.9,<3.13*indicates an optional dependencyContributingPlease check the instructions inCONTRIBUTING.md.Suggestions and CommunicationEveryone is welcome to contribute to the community.
If you have any questions or suggestions, you can
submitGithub Issues.
We will reply to you as soon as possible. Thank you very much.API stability:warning: Whilebatchtensoris in development stage, no API is guaranteed to be stable from one
release to the next.
In fact, it is very likely that the API will change multiple times before a stable 1.0.0 release.
In practice, this means that upgradingbatchtensorto a new version will possibly break any code
that was using the old version ofbatchtensor.Licensebatchtensoris licensed under BSD 3-Clause "New" or "Revised" license available
inLICENSEfile.