You could do this with a mask
def tril_mask(value):
    n = value.size(-1)
    coords = value.new(n)
    torch.arange(n, out=coords)
    return coords <= coords.view(n, 1)

which is used as
>>> value = torch.arange(9).view(3,3)
>>> value[tril_mask(value)]
 0
 3
 4
 6
 7
 8
[torch.FloatTensor of size 6]