PCA
Bases: IntensityTransform
Apply PCA to reduce the channel dimension.
Reshapes a \((C, I, J, K)\) image to \((N, I \cdot J \cdot K)\), performs PCA, and reshapes back to \((\text{num\_components}, I, J, K)\).
This is useful for visualizing high-dimensional feature maps (e.g., neural network embeddings) as RGB images.
The implementation uses torch.pca_lowrank, so no
external dependencies are needed.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
num_components
|
int
|
Number of principal components to keep. |
3
|
whiten
|
bool
|
If |
True
|
normalize
|
bool
|
If |
True
|
values_range
|
tuple[float, float]
|
Linear mapping range for normalization to \([0, 1]\). The default \((-2.3, 2.3)\) covers \(\approx 99\%\) of a standard normal distribution. |
(-2.3, 2.3)
|
clip
|
bool
|
If |
True
|
**kwargs
|
Any
|
See |
{}
|
Examples:
Source code in src/torchio/transforms/intensity/pca.py
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 | |
invertible
property
Whether this transform can be inverted.
forward(data)
Apply the transform.
The output type always matches the input type.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
data
|
Any
|
Input data to transform. |
required |
Source code in src/torchio/transforms/transform.py
inverse(params)
Return a transform that undoes this one.
Override in invertible subclasses. The returned transform, when applied, reverses the effect of the forward pass with the given parameters.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
params
|
dict[str, Any]
|
The parameters recorded in the forward pass. |
required |
Returns:
| Type | Description |
|---|---|
Transform
|
A new |
Source code in src/torchio/transforms/transform.py
to_hydra()
Export as a Hydra-compatible config dict.
Returns a dict with _target_ set to the fully qualified
class name and only non-default field values included.
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Dict suitable for |
Source code in src/torchio/transforms/transform.py
make_params(batch)
apply_transform(batch, params)
Apply PCA to each selected image.