# `RotatedMNIST`

### *class* capymoa.ocl.datasets.RotatedMNIST[[source]](https://github.com/adaptive-machine-learning/CapyMOA/blob/3e255b1/src/capymoa/ocl/datasets/_vision.py#L39)

Bases: `_TorchVisionDownload`, `_BuiltInRotatedDomainScenario`

Rotated MNIST where each task applies a fixed image rotation.

![RotatedMNIST task illustration.](_images/RotatedMNIST.jpg)

#### dataset_type[[source]](https://github.com/adaptive-machine-learning/CapyMOA/blob/3e255b1/src/capymoa/../../.venv/lib/python3.11/site-packages/torchvision/datasets/mnist.py#L20)

alias of `MNIST`

#### \_\_init_\_(num_tasks: [int](https://docs.python.org/3/builtins/functions.html#int) | [None](https://docs.python.org/3/builtins/constants.html#None) = None, rotations: [Sequence](https://docs.python.org/3/library/collections.abc.html#collections.abc.Sequence)[[float](https://docs.python.org/3/builtins/functions.html#float)] | [None](https://docs.python.org/3/builtins/constants.html#None) = None, shuffle_data: [bool](https://docs.python.org/3/builtins/functions.html#bool) = True, seed: [int](https://docs.python.org/3/builtins/functions.html#int) = 0, directory: [Path](https://docs.python.org/3/library/pathlib.html#pathlib.Path) | [None](https://docs.python.org/3/builtins/constants.html#None) = None, auto_download: [bool](https://docs.python.org/3/builtins/functions.html#bool) = True, train_transform: [Callable](https://docs.python.org/3/library/collections.abc.html#collections.abc.Callable)[[[Any](https://docs.python.org/3/library/typing.html#typing.Any)], [Tensor](https://docs.pytorch.org/docs/stable/tensors.html#torch.Tensor)] | [None](https://docs.python.org/3/builtins/constants.html#None) = None, test_transform: [Callable](https://docs.python.org/3/library/collections.abc.html#collections.abc.Callable)[[[Any](https://docs.python.org/3/library/typing.html#typing.Any)], [Tensor](https://docs.pytorch.org/docs/stable/tensors.html#torch.Tensor)] | [None](https://docs.python.org/3/builtins/constants.html#None) = None, normalize_features: [bool](https://docs.python.org/3/builtins/functions.html#bool) = False, preload_test: [bool](https://docs.python.org/3/builtins/functions.html#bool) = True, preload_train: [bool](https://docs.python.org/3/builtins/functions.html#bool) = False)[[source]](https://github.com/adaptive-machine-learning/CapyMOA/blob/3e255b1/src/capymoa/ocl/datasets/_base.py#L313)

#### test_loaders(batch_size: [int](https://docs.python.org/3/builtins/functions.html#int), \*\*kwargs: [Any](https://docs.python.org/3/library/typing.html#typing.Any)) → [Sequence](https://docs.python.org/3/library/collections.abc.html#collections.abc.Sequence)[[DataLoader](https://docs.pytorch.org/docs/stable/data.html#torch.utils.data.DataLoader)[[tuple](https://docs.python.org/3/builtins/stdtypes.html#tuple)[[Tensor](https://docs.pytorch.org/docs/stable/tensors.html#torch.Tensor), [Tensor](https://docs.pytorch.org/docs/stable/tensors.html#torch.Tensor)]]][[source]](https://github.com/adaptive-machine-learning/CapyMOA/blob/3e255b1/src/capymoa/ocl/datasets/_base.py#L258)

Get the training streams for the scenario.

* **Parameters:**
  * **batch_size** – Collects vectors in batches of this size.
  * **kwargs** – Additional keyword arguments to pass to the DataLoader.
* **Returns:**
  A data loader for each task.

#### train_loaders(batch_size: [int](https://docs.python.org/3/builtins/functions.html#int), shuffle: [bool](https://docs.python.org/3/builtins/functions.html#bool) = False, \*\*kwargs: [Any](https://docs.python.org/3/library/typing.html#typing.Any)) → [Sequence](https://docs.python.org/3/library/collections.abc.html#collections.abc.Sequence)[[DataLoader](https://docs.pytorch.org/docs/stable/data.html#torch.utils.data.DataLoader)[[tuple](https://docs.python.org/3/builtins/stdtypes.html#tuple)[[Tensor](https://docs.pytorch.org/docs/stable/tensors.html#torch.Tensor), [Tensor](https://docs.pytorch.org/docs/stable/tensors.html#torch.Tensor)]]][[source]](https://github.com/adaptive-machine-learning/CapyMOA/blob/3e255b1/src/capymoa/ocl/datasets/_base.py#L227)

Get the training streams for the scenario.

* The order of the tasks is fixed and does not change between iterations.
  The datasets themselves are shuffled in [`__init__()`](#capymoa.ocl.datasets.RotatedMNIST.__init__) if shuffle_data
  is set to True. This is because the order of data is important in
  online learning since the learner can only see each example once.

* **Parameters:**
  * **batch_size** – Collects vectors in batches of this size.
  * **kwargs** – Additional keyword arguments to pass to the DataLoader.
* **Returns:**
  A data loader for each task.

#### default_rotation_max *= 180.0*

#### default_task_count *: [int](https://docs.python.org/3/builtins/functions.html#int)* *= 5*

The default number of tasks in the dataset.

#### default_test_transform *: Callable[[Any], Tensor] | [None](https://docs.python.org/3/builtins/constants.html#None)* *= ToTensor()*

The default transform to apply to the dataset.

#### default_train_transform *: Callable[[Any], Tensor] | [None](https://docs.python.org/3/builtins/constants.html#None)* *= ToTensor()*

The default transform to apply to the dataset.

#### mean *: Sequence[[float](https://docs.python.org/3/builtins/functions.html#float)] | [None](https://docs.python.org/3/builtins/constants.html#None)* *= (0.1307,)*

The mean of the features in the dataset used for normalization.

#### num_classes *: [int](https://docs.python.org/3/builtins/functions.html#int)* *= 10*

The number of classes in the dataset.

#### schema *: [Schema](capymoa.stream.Schema.md#capymoa.stream.Schema)*

A schema describing the format of the data.

#### shape *: Sequence[[int](https://docs.python.org/3/builtins/functions.html#int)]* *= (1, 28, 28)*

The shape of each input example.

#### std *: Sequence[[float](https://docs.python.org/3/builtins/functions.html#float)] | [None](https://docs.python.org/3/builtins/constants.html#None)* *= (0.3081,)*

The standard deviation of the features in the dataset used for normalization.

#### stream *: [Stream](capymoa.stream.Stream.md#capymoa.stream.Stream)[[LabeledInstance](capymoa.core.LabeledInstance.md#capymoa.core.LabeledInstance)]*

Stream containing each task in sequence.

#### task_mask *: Tensor*

A mask for the output for each task of shape (num_tasks, num_classes)

#### task_schedule *: Sequence[[set](https://docs.python.org/3/builtins/stdtypes.html#set)[[int](https://docs.python.org/3/builtins/functions.html#int)]]*

A sequence of sets containing the classes for each task.

In online continual learning your learner may not have access to this
attribute. It is provided for evaluation and debugging.
