class documentation

Class for iterating over the elements of an iterable with a dynamic batch size to achieve a desired content size.

The batch sizes emitted when iterating over this object are dynamically scaled such that the total content size of the batch is as close as possible to a specified target size.

This batcher does not require backpressure feedback because it calculates the total size of the iterable object before batching.

This class is often used in conjunction with a ProgressBar to keep the user appraised on the status of a long-running task.

Example usage:

import fiftyone.core.utils as fou

elements = range(int(1e7))

batcher = fou.ContentSizeBatcher(
    elements,
    target_size=2**20,
    progress=True
)

with batcher:
    for batch in batcher:
        print("batch size: %d" % len(batch))
Parameters
iterablean iterable to batch over. If None, the result of next() will be a batch size instead of a batch, and is an infinite iterator.
target_sizethe target batch bson content size, in bytes
progresswhether to render a progress bar tracking the consumption of the batches (True/False), use the default value fiftyone.config.show_progress_bars (None), or a progress callback function to invoke instead
totalthe length of iterable. Only applicable when progress=True. If not provided, it is computed via len(iterable), if possible
transform_fna transform function to apply to each item of the batch
Method __init__ Undocumented
Method __iter__ Undocumented
Method __next__ Undocumented
Instance Variable max_batch_size Undocumented
Instance Variable target_size Undocumented
Instance Variable _last_batch_size Undocumented
Instance Variable _next_element Undocumented
Instance Variable _size_calculation_fn Undocumented

Inherited from BaseBatcher:

Method __enter__ Undocumented
Method __exit__ Undocumented
Instance Variable iterable Undocumented
Instance Variable return_views Undocumented
Instance Variable _in_context Undocumented
Instance Variable _iter Undocumented
Instance Variable _last_offset Undocumented
Instance Variable _num_samples Undocumented
Instance Variable _pb Undocumented
Instance Variable _render_progress Undocumented
Instance Variable _transform_fn Undocumented
def __init__(self, iterable, size_calculation_fn=None, target_size=2 ** 20, max_batch_size=None, progress=False, total=None, transform_fn=None): (source)
def __iter__(self): (source)
def __next__(self): (source)
max_batch_size = (source)

Undocumented

target_size: 1048576 = (source)

Undocumented

_next_element = (source)

Undocumented

_size_calculation_fn = (source)

Undocumented