Issue
How do I fill the diagonal with a value in torch? In numpy you can do:
a = np.zeros((3, 3), int)
np.fill_diagonal(a, 5)
array([[5, 0, 0],
[0, 5, 0],
[0, 0, 5]])
I know that torch.diag()
returns the diagonal, but how to use this as a mask to assign new values is beyond me. I haven't been able to find the answer here or in the PyTorch documentation.
Solution
One way to do it:
>>> import torch
>>> n = 3
>>> t = torch.zeros((n,n))
>>> t[torch.eye(n).byte()] = 5
>>> t
5 0 0
0 5 0
0 0 5
[torch.FloatTensor of size 3x3]
Answered By - nicoco
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.