Skip to main content

cut2min-bucket

A PyTorch Batch Sampler that buckets by input length and cuts to min size in batch

PyPi Version GitHub license

This package provides 2 utilities:

  1. cut2min_bucket.DatasetWrapper to eliminate padding and cut to min size in batch
  2. cut2min_bucket.BucketBatchSampler a batch sampler that buckets by input length.

In addition, we provide a Distributed Data Parallel version of the batch sampler: cut2min_bucket.DistributedBucketBatchSampler.

A detailed motivation for this package can be found on my blog.

Simple example:

import cut2min_bucket
import torch
import numpy as np

X = []
for _ in range(10000):
    X.append(torch.tensor(np.random.randn(torch.randint(size=(), low=2, high=1000),)))

seqlens = torch.tensor([len(x) for x in X])

X = torch.nn.utils.rnn.pad_sequence(X, batch_first=True)
y = (torch.rand(10000)>0.5).int()

dataset = torch.utils.data.TensorDataset(X, y)

dataset = cut2min_bucket.DatasetWrapper(
    dataset, seqlens,
    index_or_key=0
)

batch_sampler = cut2min_bucket.BucketBatchSampler(
    dataset,
    seqlens,
    batch_size=8,
    n_partitions=5
)

dataloader = torch.utils.data.DataLoader(
    dataset,
    batch_sampler=batch_sampler,
    collate_fn=dataset.collate_fn,
)

next(iter(dataloader))

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cut2min_bucket-0.1.3.tar.gz (7.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cut2min_bucket-0.1.3-py3-none-any.whl (6.5 kB view details)

Uploaded Python 3

File details

Details for the file cut2min_bucket-0.1.3.tar.gz.

File metadata

  • Download URL: cut2min_bucket-0.1.3.tar.gz
  • Upload date:
  • Size: 7.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for cut2min_bucket-0.1.3.tar.gz
Algorithm Hash digest
SHA256 92c039ed45fdbcab29ce3d390a76623b70afed6c071bdff1eac3f758dae54095
MD5 86453eaede946f72b3117f6cc9672ebd
BLAKE2b-256 a331596dd32e1ffc0c13212bb508294dc2388278c583be3f2faecd879e04162f

See more details on using hashes here.

File details

Details for the file cut2min_bucket-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: cut2min_bucket-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 6.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for cut2min_bucket-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 1df4c7c3c00c74c2e28c27b89d308f9786b1d40f7c2c22b67c41217a29d40581
MD5 872be1c9144719002654cdbe665d3f22
BLAKE2b-256 269d5b56814174d6f7717c4b761ecf2e3742fdb4809200cc19efb9bc3fc0e474

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.3 This release

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

0.0.1

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page