mrpro.phantoms.coils.repeat
- mrpro.phantoms.coils.repeat(tensor: Tensor | List[Tensor], pattern: str, **axes_lengths) Tensor [source]
einops.repeat allows reordering elements and repeating them in arbitrary combinations. This operation includes functionality of repeat, tile, broadcast functions.
Examples for repeat operation:
```python # a grayscale image (of shape height x width) >>> image = np.random.randn(30, 40)
# change it to RGB format by repeating in each channel >>> repeat(image, ‘h w -> h w c’, c=3).shape (30, 40, 3)
# repeat image 2 times along height (vertical axis) >>> repeat(image, ‘h w -> (repeat h) w’, repeat=2).shape (60, 40)
# repeat image 2 time along height and 3 times along width >>> repeat(image, ‘h w -> (h2 h) (w3 w)’, h2=2, w3=3).shape (60, 120)
# convert each pixel to a small square 2x2. Upsample image by 2x >>> repeat(image, ‘h w -> (h h2) (w w2)’, h2=2, w2=2).shape (60, 80)
# pixelate image first by downsampling by 2x, then upsampling >>> downsampled = reduce(image, ‘(h h2) (w w2) -> h w’, ‘mean’, h2=2, w2=2) >>> repeat(downsampled, ‘h w -> (h h2) (w w2)’, h2=2, w2=2).shape (30, 40)
When composing axes, C-order enumeration used (consecutive elements have different last axis) Find more examples in einops tutorial.
- Parameters:
tensor – tensor of any supported library (e.g. numpy.ndarray, tensorflow, pytorch). list of tensors is also accepted, those should be of the same type and shape
pattern – string, rearrangement pattern
axes_lengths – any additional specifications for dimensions
- Returns:
Tensor of the same type as input. If possible, a view to the original tensor is returned.