Hello, I have a tensor of shape N * X * Y where N is the number of subjects. I want to average the upper and lower triangle for each matrix i in N. For example if subject 1 has the matrix:
tensor([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
Then the output should be:
tensor([[1, 3, 5],
[3, 5, 7],
[5, 7, 9]])
So, adding upper and lower triangle and dividing each value of two, the main diagonal remains same as you add each number with itself and divide by 2. I know I can loop through each subject, get the upper and lower triangle using torch.
triu
and torch.
tril
, add them together and take average and put them back in the array.
But I am looking for a faster method , specially without the loop.
Thank you