Transform Reshape#
reshape
#
| CLASS | DESCRIPTION |
|---|---|
ReshapeTransformer |
Reshape data to target shape while preserving batch dimension. |
FlattenTransformer |
Flatten multi-dimensional data to 2D while preserving batch dimension. |
Classes#
ReshapeTransformer(target_shape: tuple[int, ...], input_shape: tuple[int, ...] | None = None)
#
Bases: Transformer
Reshape data to target shape while preserving batch dimension.
Reshapes input tensors from shape (batch_size, ...) to
(batch_size, *target_shape). Useful for converting between different
data formats while maintaining the batch structure.
| PARAMETER | DESCRIPTION |
|---|---|
target_shape
|
Target shape for the data (excluding batch dimension).
TYPE:
|
input_shape
|
Original input shape (excluding batch dimension) for inverse transformation. Required if inverse_transform will be used.
TYPE:
|
| ATTRIBUTE | DESCRIPTION |
|---|---|
target_shape |
The target shape for forward transformation.
TYPE:
|
input_shape |
The original shape for inverse transformation.
TYPE:
|
Examples:
Reshape flat vectors to 2D
>>> import torch
>>> from spectre.transform import ReshapeTransformer
>>> reshaper = ReshapeTransformer(target_shape=(5, 2))
>>> X = torch.randn(100, 10)
>>> X_reshaped = reshaper.transform(X)
>>> X_reshaped.shape
torch.Size([100, 5, 2])
Reshape with inverse (e.g., flatten to image and back)
>>> reshaper = ReshapeTransformer(target_shape=(28, 28), input_shape=(784,))
>>> X = torch.randn(32, 784) # Flattened images
>>> X_images = reshaper.transform(X)
>>> X_images.shape
torch.Size([32, 28, 28])
>>> X_reconstructed = reshaper.inverse_transform(X_images)
>>> X_reconstructed.shape
torch.Size([32, 784])
>>> torch.allclose(X, X_reconstructed)
True
| METHOD | DESCRIPTION |
|---|---|
transform |
Reshape input data to target shape. |
inverse_transform |
Reshape data back to original shape. |
Source code in spectre/transform/reshape.py
Functions#
transform(X: torch.Tensor) -> torch.Tensor
#
Reshape input data to target shape.
| PARAMETER | DESCRIPTION |
|---|---|
X
|
Input data of shape (batch_size, ...).
TYPE:
|
| RETURNS | DESCRIPTION |
|---|---|
Tensor
|
Reshaped data of shape (batch_size, |
Source code in spectre/transform/reshape.py
inverse_transform(X: torch.Tensor) -> torch.Tensor
#
Reshape data back to original shape.
| PARAMETER | DESCRIPTION |
|---|---|
X
|
Reshaped data of shape (batch_size,
TYPE:
|
| RETURNS | DESCRIPTION |
|---|---|
Tensor
|
Data in original shape (batch_size, |
| RAISES | DESCRIPTION |
|---|---|
ValueError
|
If input_shape was not provided at initialization. |
Source code in spectre/transform/reshape.py
FlattenTransformer(input_shape: tuple[int, ...] | None = None)
#
Bases: Transformer
Flatten multi-dimensional data to 2D while preserving batch dimension.
Flattens input tensors from shape (batch_size, d1, d2, ..., dn) to (batch_size, d1 * d2 * ... * dn). Commonly used to convert image data to vectors for linear models.
| PARAMETER | DESCRIPTION |
|---|---|
input_shape
|
Original input shape (excluding batch dimension) for inverse transformation. Required if inverse_transform will be used.
TYPE:
|
| ATTRIBUTE | DESCRIPTION |
|---|---|
input_shape |
The original shape for inverse transformation.
TYPE:
|
Examples:
Flatten image tensors
>>> import torch
>>> from spectre.transform import FlattenTransformer
>>> flattener = FlattenTransformer()
>>> X = torch.randn(32, 28, 28) # Batch of 28x28 images
>>> X_flat = flattener.transform(X)
>>> X_flat.shape
torch.Size([32, 784])
Flatten with inverse transformation
>>> flattener = FlattenTransformer(input_shape=(28, 28))
>>> X_reconstructed = flattener.inverse_transform(X_flat)
>>> X_reconstructed.shape
torch.Size([32, 28, 28])
>>> torch.allclose(X, X_reconstructed)
True
Flatten 3D data (e.g., RGB images)
>>> X = torch.randn(16, 3, 32, 32) # Batch of 3x32x32 RGB images
>>> flattener = FlattenTransformer(input_shape=(3, 32, 32))
>>> X_flat = flattener.transform(X)
>>> X_flat.shape
torch.Size([16, 3072])
| METHOD | DESCRIPTION |
|---|---|
transform |
Flatten input data to 2D. |
inverse_transform |
Reshape flattened data back to original shape. |
Source code in spectre/transform/reshape.py
Functions#
transform(X: torch.Tensor) -> torch.Tensor
#
Flatten input data to 2D.
| PARAMETER | DESCRIPTION |
|---|---|
X
|
Input data of shape (batch_size, d1, d2, ..., dn).
TYPE:
|
| RETURNS | DESCRIPTION |
|---|---|
Tensor
|
Flattened data of shape (batch_size, d1 * d2 * ... * dn). |
Source code in spectre/transform/reshape.py
inverse_transform(X: torch.Tensor) -> torch.Tensor
#
Reshape flattened data back to original shape.
| PARAMETER | DESCRIPTION |
|---|---|
X
|
Flattened data of shape (batch_size, n_features).
TYPE:
|
| RETURNS | DESCRIPTION |
|---|---|
Tensor
|
Data in original shape (batch_size, |
| RAISES | DESCRIPTION |
|---|---|
ValueError
|
If input_shape was not provided at initialization. |