# tinker_cookbook.supervised.SupervisedDataset

## _class_ [**tinker_cookbook.supervised.SupervisedDataset**](https://github.com/thinking-machines-lab/tinker-cookbook/blob/main/tinker_cookbook/supervised/types.py#L16)()

Abstract base for datasets used in supervised learning.

Subclasses must implement `get_batch` and `__len__`. `set_epoch` may be overridden to shuffle data between epochs.

### [**get_batch**](https://github.com/thinking-machines-lab/tinker-cookbook/blob/main/tinker_cookbook/supervised/types.py#L23)( _index_)

Return a batch of training Datum objects at the given index.

**Parameters:**

- [**index**](https://github.com/thinking-machines-lab/tinker-cookbook/blob/main/tinker_cookbook/supervised/types.py#L23) ( _int_) – The batch index.

**Returns:** _list[tinker. [Datum](https://tinker-docs.thinkingmachines.ai/tinker/api-reference/types/datum/)]_ – The training datums for this batch.

### [**set_epoch**](https://github.com/thinking-machines-lab/tinker-cookbook/blob/main/tinker_cookbook/supervised/types.py#L38)( _seed_)

Notify the dataset that a new epoch is starting.

Implementations may use this to reshuffle data. The default emits a warning that shuffling is not implemented.

**Parameters:**

- [**seed**](https://github.com/thinking-machines-lab/tinker-cookbook/blob/main/tinker_cookbook/supervised/types.py#L38) ( _int_) – Epoch seed that can be used for deterministic shuffling. Default `0`.

## Referenced by

- [tinker_cookbook.supervised.ChatDatasetBuilder.__call__](https://tinker-docs.thinking-machines.ai/cookbook/api-reference/supervised/chatdatasetbuilder/#chatdatasetbuilder-call)
- [tinker_cookbook.supervised.FromConversationFileBuilder.__call__](https://tinker-docs.thinking-machines.ai/cookbook/api-reference/supervised/fromconversationfilebuilder/#fromconversationfilebuilder-call)
- [tinker_cookbook.supervised.StreamingSupervisedDatasetFromHFDataset](https://tinker-docs.thinking-machines.ai/cookbook/api-reference/supervised/streamingsuperviseddatasetfromhfdataset/)
- [tinker_cookbook.supervised.SupervisedDatasetBuilder.__call__](https://tinker-docs.thinking-machines.ai/cookbook/api-reference/supervised/superviseddatasetbuilder/#superviseddatasetbuilder-call)
- [tinker_cookbook.supervised.SupervisedDatasetFromHFDataset](https://tinker-docs.thinking-machines.ai/cookbook/api-reference/supervised/superviseddatasetfromhfdataset/)
