batchdist
This is a small PyTorch-based package which allows for efficient batched operations, e.g. for computing distances without having to slowly loop over all instance pairs of a batch of data.
After having encountered mulitple instances of torch modules/methods promising to handling batches while only returning a vector of pairwise results (see example below) instead of the full matrix, this package serves as a tool to wrap such methods in order to return full matrices (e.g. distance matrices) using fast, batched operations (without loops).
Example
First, let's define a custom distance function that only computes pair-wise distances for batches, so two batches of each 10 samples are converted to a distance vector of shape (10,).
>>> def dummy_distance(x,y):
"""
This is a dummy distance d which allows for a batch dimension
(say with n instances in a batch), but does not return the full
n x n distance matrix but only a n-dimensional vector of the
pair-wise distances d(x_i,y_i) for all i in (1,...,n).
"""
x_ = x.sum(axis=[1,2])
y_ = y.sum(axis=[1,2])
return x_ + y_
# batchdist wraps a torch module around this callable to compute
# the full n x n matrix with batched operations (no loops).
>>> import batchdist as bd
>>> batched = bd.BatchDistance(dummy_distance)
# generate data (two batches of 256 samples of dimension [4,3])
>>> x1 = torch.rand(256,4,3)
>>> x2 = torch.rand(256,4,3)
>>> out1 = batched(x1, x2) # distance matrix of shape [256,256]
For more details, consult the included examples.
Installation
With poetry:
$ poetry add batchdist
With pip:
$ pip install batchdist
Metadata
Release files for batchdist 0.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| batchdist-0.1.3.tar.gz | 5.4 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| batchdist-0.1.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 12.9 kB
Release files / batchdist-0.1.3.tar.gz
| Download URL | batchdist-0.1.3.tar.gz |
|---|---|
| Size | 5.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6934bb2fa93ef94c4b9eaa5c688c75c36f795f9abcf4c0d5d1626224b5b1e268
|
|
BLAKE2b-256 checksum How to use checksums |
0e11416cd818ec974da6c7a3b0e283be2d7983d11b4c5da2aa1fc51179e17ae9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.1.0b2 CPython/3.8.6 Darwin/19.6.0
|
Release files / batchdist-0.1.3-py3-none-any.whl
| Download URL | batchdist-0.1.3-py3-none-any.whl |
|---|---|
| Size | 7.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ed3f9a801d8181ef852fdf4b25244ae983b5c305a90ac74c263ce93d8d892895
|
|
BLAKE2b-256 checksum How to use checksums |
4fa0ba69e73ede282bef1637640951b0bd73f9985ba824027c2f16dca63871de
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.1.0b2 CPython/3.8.6 Darwin/19.6.0
|
Security for batchdist 0.1.3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.