def forward(self, x: torch.Tensor) -> torch.Tensor:
        """
        Forward pass through the embedder. We are simply tracking the positions of the ablation mask so no gradients
        are required.

        :param x: Input data corresponding to the ablation mask
        :return: The embedded input
        """
        if self.proj is not None:
            with torch.no_grad():
                x = self.proj(x).flatten(2).transpose(1, 2)
            return x
        raise ValueError("Projection layer not yet created.")

        Forward pass through the embedder. We are simply tracking the positions of the ablation mask so no gradients
        are required.

        :param x: Input data corresponding to the ablation mask
        :return: The embedded input
        
art/estimators/certification/derandomized_smoothing/vision_transformers/pytorch.py