def project(cls, X, alpha, k):
     return sparsemax(X, dim=-1, k=k)
Exemplo n.º 2
0
def test_sparsemax():
    x = 0.5 * torch.randn(4, 6, dtype=torch.float32)
    p1 = sparsemax(x, 1)
    p2 = sparsemax_bisect(x)
    assert torch.sum((p1 - p2) ** 2) < 1e-7
Exemplo n.º 3
0
    def forward(self, probs, dim: int = -1):
        logits = torch.log(probs + _EPS)
        if self._add_gumbel_noise:
            logits = self._gumbel_noise(logits=logits)

        return sparsemax(logits, dim=dim)