RandomWindowSlice¶
- class torcheeg.transforms.RandomWindowSlice(window_size: int = 120, series_dim: int = -1, p: float = 0.5, apply_to_baseline: bool = False)[source][source]¶
Randomly applies a slice transformation with a given probability, where the original time series is sliced by a window, and the sliced data is scaled to the original size. It is worth noting that the random position where each channel slice starts is the same.
transform = RandomWindowSlice() transform(eeg=torch.randn(32, 128))['eeg'].shape >>> (32, 128) transform = RandomWindowSlice(window_size=100) transform(eeg=torch.randn(1, 32, 128))['eeg'].shape >>> (1, 32, 128) transform = RandomWindowSlice(p=1.0, series_dim=0) transform(eeg=torch.randn(128, 9, 9))['eeg'].shape >>> (128, 9, 9)
- Parameters:
window_size (int) – The window size of the slice, the original signal will be sliced to the window_size size, and then adaptively scaled to the input shape.
series_dim (int) – Dimension of the time series in the input tensor. (default:
-1
)p (float) – Probability of applying random mask on EEG signal samples. Should be between 0.0 and 1.0, where 0.0 means no mask is applied to every sample and 1.0 means that masks are applied to every sample. (default:
0.5
)apply_to_baseline – (bool): Whether to act on the baseline signal at the same time, if the baseline is passed in when calling. (default:
False
)
- __call__(*args, eeg: Tensor, baseline: Tensor | None = None, **kwargs) Dict[str, Tensor] [source][source]¶
- Parameters:
eeg (torch.Tensor) – The input EEG signal.
baseline (torch.Tensor, optional) – The corresponding baseline signal, if apply_to_baseline is set to True and baseline is passed, the baseline signal will be transformed with the same way as the experimental signal.
- Returns:
The output EEG signal after applying a random window slicing.
- Return type:
torch.Tensor