Template Class StatefulDataset

Inheritance Relationships

Base Type

Class Documentation

template<typename Self, typename Batch = std::vector<Example<>>, typename BatchRequest = size_t>
class torch::data::datasets::StatefulDataset : public torch::data::datasets::BatchDataset<Self, optional<Batch>, BatchRequest>

A stateful dataset is a dataset that maintains some internal state, which will be reset() at the beginning of each epoch.

Subclasses can override the reset() method to configure this behavior. Further, the return type of a stateful dataset’s get_batch() method is always an optional. When the stateful dataset wants to indicate to the dataloader that its epoch has ended, it should return an empty optional. The dataloader knows to modify its implementation based on whether the dataset is stateless or stateful.

Note that when subclassing a from StatefulDataset<Self, T>, the return type of get_batch(), which the subclass must override, will be optional<T> (i.e. the type specified in the StatefulDataset specialization is automatically boxed into an optional for the dataset’s BatchType).

Public Functions

void reset() = 0

Resets internal state of the dataset.

void save(serialize::OutputArchive &archive) const = 0

Saves the statefulDataset’s state to OutputArchive.

void load(serialize::InputArchive &archive) = 0

Deserializes the statefulDataset’s state from the archive.


Access comprehensive developer documentation for PyTorch

View Docs


Get in-depth tutorials for beginners and advanced developers

View Tutorials


Find development resources and get your questions answered

View Resources