Например, из
lens = [3, 5, 4]
мы хотим получить
mask = [[1, 1, 1, 0, 0], [1, 1, 1, 1, 1], [1, 1, 1, 1, 0]]
Оба из которых torch.LongTensor с.
torch.LongTensor
torch.arange(max_len)[None, :] < lens[:, None]
Один из способов, который я нашел:
torch.arange(max_len).expand(len(lens), max_len) < lens.unsqueeze(1)
Пожалуйста, поделитесь, если есть лучшие способы!