# Rotate

### *class* deepinv.transform.Rotate(\*args, limits=360.0, multiples=1.0, positive=False, interpolation_mode=None, \*\*kwargs)

Bases: [`Transform`](https://deepinv.org/api/stubs/deepinv.transform.Transform.html.md#deepinv.transform.Transform)

2D Rotations.

Generates `n_trans` randomly rotated versions of 2D images with zero padding (without replacement).

Picks integer angles between -limits and limits, by default -360 to 360. Set `positive=True` to clip to positive degrees.
For exact pixel rotations (0, 90, 180, 270 etc.), set `multiples=90`.

By default, output will be cropped/padded to input shape. Set `constant_shape=False` to let output shape differ from input shape.

See [`deepinv.transform.Transform`](https://deepinv.org/api/stubs/deepinv.transform.Transform.html.md#deepinv.transform.Transform) for further details and examples.

* **Parameters:**
  * **limits** ([*float*](https://docs.python.org/3.12/library/functions.html#float)) – images are rotated in the range of angles (-limits, limits).
  * **multiples** ([*float*](https://docs.python.org/3.12/library/functions.html#float)) – angles are selected uniformly from $\pm$ multiples of `multiples`. Default to 1 (i.e integers)
    When multiples is a multiple of 90, no interpolation is performed.
  * **positive** ([*bool*](https://docs.python.org/3.12/library/functions.html#bool)) – if True, only consider positive angles.
  * **interpolation_mode** ([*str*](https://docs.python.org/3.12/library/stdtypes.html#str) *,* *torchvision.transforms.InterpolationMode*) – interpolation mode or equivalent string used for rotation,
    defaults to `nearest`. See `torchvision.transforms.InterpolationMode` for options.
  * **n_trans** ([*int*](https://docs.python.org/3.12/library/functions.html#int)) – number of transformed versions generated per input image.
  * **rng** ([*torch.Generator*](https://docs.pytorch.org/docs/stable/generated/torch.Generator.html#torch.Generator)) – random number generator, if `None`, use [`torch.Generator`](https://docs.pytorch.org/docs/stable/generated/torch.Generator.html#torch.Generator), defaults to `None`

<a id="sphx-glr-backref-deepinv-transform-rotate"></a>

## Examples using `Rotate`:

<div class="sphx-glr-thumbnails">
<!-- thumbnail-parent-div-open --><div class="sphx-glr-thumbcontainer" tooltip="This example demonstrates various geometric image transformations implemented in deepinv that can be used in Equivariant Imaging (EI) for self-supervised learning:">![](auto_examples/self-supervised-learning/images/thumb/sphx_glr_demo_ei_transforms_thumb.png)

[Image transformations for Equivariant Imaging](https://deepinv.org/auto_examples/self-supervised-learning/demo_ei_transforms.html.md)

  <div class="sphx-glr-thumbnail-title">Image transformations for Equivariant Imaging</div>
</div><div class="sphx-glr-thumbcontainer" tooltip="This example shows you how to train a reconstruction network for an MRI inverse problem on a fully self-supervised way, i.e., using measurement data only.">![](auto_examples/self-supervised-learning/images/thumb/sphx_glr_demo_equivariant_imaging_thumb.png)

[Self-supervised learning with Equivariant Imaging for MRI.](https://deepinv.org/auto_examples/self-supervised-learning/demo_equivariant_imaging.html.md)

  <div class="sphx-glr-thumbnail-title">Self-supervised learning with Equivariant Imaging for MRI.</div>
</div><div class="sphx-glr-thumbcontainer" tooltip="Equivariant splitting consists in minimizing a self-supervised loss to train a reconstruction model using measurement data only sechaud26Equivariant.">![](auto_examples/self-supervised-learning/images/thumb/sphx_glr_demo_equivariant_splitting_thumb.png)

[Self-supervised learning with Equivariant Splitting](https://deepinv.org/auto_examples/self-supervised-learning/demo_equivariant_splitting.html.md)

  <div class="sphx-glr-thumbnail-title">Self-supervised learning with Equivariant Splitting</div>
</div><div class="sphx-glr-thumbcontainer" tooltip="We demonstrate the use of our deepinv.transform module for use in solving imaging problems. These can be used for:">![](auto_examples/transforms-equivariance/images/thumb/sphx_glr_demo_transforms_thumb.png)

[Image transforms for equivariance & augmentations](https://deepinv.org/auto_examples/transforms-equivariance/demo_transforms.html.md)

  <div class="sphx-glr-thumbnail-title">Image transforms for equivariance & augmentations</div>
</div>
<!-- thumbnail-parent-div-close --></div>
