def METHOD_NAME(self):
    """
    Returns the encoded full weight matrix. Must be called after
    the encode function.
    """
    # fully connected case
    if "k_h" not in self.__dict__:
        return (
            self.centroids[self.assignments]
            .reshape(-1, self.out_features, self.block_size)
            .permute(1, 0, 2)
            .flatten(1, 2)
        )
    # convolutional case
    else:
        return (
            self.centroids[self.assignments]
            .reshape(-1, self.out_channels, self.block_size)
            .permute(1, 0, 2)
            .reshape(self.out_channels, self.in_channels, self.k_h, self.k_w)
        )