0

I have a matrix of shape (batch_size, N, N) and a masking tensor of shape (batch_size, N).

I want to put -infinity values only for the columns (and not rows) of the matrix, according to the given mask.

Codevan
  • 538
  • 3
  • 20

2 Answers2

1

Alternatively, you can use torch.Tensor.expand_as:

>>> x[m[...,None].expand_as(x)]
Ivan
  • 34,531
  • 8
  • 55
  • 100
0

The solution is via repeating the mask in the correct dimension:

repeated_mask[mask.unsqueeze(-1).repeat(1,1,mask.shape[-1])!=1] = 0
Codevan
  • 538
  • 3
  • 20