Movatterモバイル変換


[0]ホーム

URL:


Skip to content
DEV Community
Log in Create account

DEV Community

Super Kai (Kazuya Ito)
Super Kai (Kazuya Ito)

Posted on • Edited on

diagonal in PyTorch

Buy Me a Coffee

*Memos:

diagonal() can extract the view of the 1D or more D tensor of zero or more elements on the diagonal from the 2D or more D tensor of zero or more elements as shown below:

*Memos:

  • diagonal() can be used withtorch or a tensor.
  • The 1st argument(input) withtorch or using a tensor(Required-Type:tensor ofint,float,complex orbool).
  • The 2nd argument with torch or the 1st argument with a tensor isoffset(Optional-Default:0-Type:int).
  • The 3rd argument with torch or the 2nd argument with a tensor isdim1(Optional-Default:0-Type:int).
  • The 4th argument with torch or the 3rd argument with a tensor isdim2(Optional-Default:1-Type:int).
importtorchmy_tensor=torch.tensor([[7,-4,5],[-6,-3,8],[9,1,-2]])torch.diagonal(input=my_tensor)my_tensor.diagonal()torch.diagonal(input=my_tensor,offset=0,dim1=0,dim2=1)torch.diagonal(input=my_tensor,offset=0,dim1=0,dim2=-1)torch.diagonal(input=my_tensor,offset=0,dim1=1,dim2=0)torch.diagonal(input=my_tensor,offset=0,dim1=1,dim2=-2)torch.diagonal(input=my_tensor,offset=0,dim1=-1,dim2=0)torch.diagonal(input=my_tensor,offset=0,dim1=-1,dim2=-2)torch.diagonal(input=my_tensor,offset=0,dim1=-2,dim2=1)torch.diagonal(input=my_tensor,offset=0,dim1=-2,dim2=-1)# tensor([7, -3, -2])torch.diagonal(input=my_tensor,offset=1,dim1=0,dim2=1)torch.diagonal(input=my_tensor,offset=1,dim1=0,dim2=-1)torch.diagonal(input=my_tensor,offset=1,dim1=-2,dim2=1)torch.diagonal(input=my_tensor,offset=1,dim1=-2,dim2=-1)torch.diagonal(input=my_tensor,offset=-1,dim1=1,dim2=0)torch.diagonal(input=my_tensor,offset=-1,dim1=1,dim2=-2)torch.diagonal(input=my_tensor,offset=-1,dim1=-1,dim2=0)torch.diagonal(input=my_tensor,offset=-1,dim1=-1,dim2=-2)# tensor([-4, 8])torch.diagonal(input=my_tensor,offset=1,dim1=1,dim2=0)torch.diagonal(input=my_tensor,offset=1,dim1=1,dim2=-2)torch.diagonal(input=my_tensor,offset=1,dim1=-1,dim2=0)torch.diagonal(input=my_tensor,offset=1,dim1=-1,dim2=-2)torch.diagonal(input=my_tensor,offset=-1,dim1=0,dim2=1)torch.diagonal(input=my_tensor,offset=-1,dim1=0,dim2=-1)torch.diagonal(input=my_tensor,offset=-1,dim1=-2,dim2=1)torch.diagonal(input=my_tensor,offset=-1,dim1=-2,dim2=-1)# tensor([-6, 1])torch.diagonal(input=my_tensor,offset=2,dim1=0,dim2=1)torch.diagonal(input=my_tensor,offset=2,dim1=0,dim2=-1)torch.diagonal(input=my_tensor,offset=2,dim1=-2,dim2=1)torch.diagonal(input=my_tensor,offset=2,dim1=-2,dim2=-1)torch.diagonal(input=my_tensor,offset=-2,dim1=1,dim2=0)torch.diagonal(input=my_tensor,offset=-2,dim1=1,dim2=-2)torch.diagonal(input=my_tensor,offset=-2,dim1=-1,dim2=0)torch.diagonal(input=my_tensor,offset=-2,dim1=-1,dim2=-2)# tensor([5])torch.diagonal(input=my_tensor,offset=2,dim1=1,dim2=0)torch.diagonal(input=my_tensor,offset=2,dim1=1,dim2=-2)torch.diagonal(input=my_tensor,offset=2,dim1=-1,dim2=0)torch.diagonal(input=my_tensor,offset=2,dim1=-1,dim2=-2)torch.diagonal(input=my_tensor,offset=-2,dim1=0,dim2=1)torch.diagonal(input=my_tensor,offset=-2,dim1=0,dim2=-1)torch.diagonal(input=my_tensor,offset=-2,dim1=-2,dim2=1)torch.diagonal(input=my_tensor,offset=-2,dim1=-2,dim2=-1)# tensor([9])my_tensor=torch.tensor([[7.,-4.,5.],[-6.,-3.,8.],[9.,1.,-2.]])torch.diagonal(input=my_tensor)# tensor([7., -3., -2.])my_tensor=torch.tensor([[7.+0.j,-4.+0.j,5.+0.j],[-6.+0.j,-3.+0.j,8.+0.j],[9.+0.j,1.+0.j,-2.+0.j]])torch.diagonal(input=my_tensor)# tensor([7.+0.j, -3.+0.j, -2.+0.j])my_tensor=torch.tensor([[False,True,True],[True,False,True],[True,True,False]])torch.diagonal(input=my_tensor)# tensor([False, False, False])my_tensor=torch.tensor([[[7,-4,5],[-6,-3,8],[9,1,-2]],[[3,-1,8],[0,1,6],[-7,4,-9]],[[6,-8,-9],[-4,5,0],[-3,-5,2]]])torch.diagonal(input=my_tensor)torch.diagonal(input=my_tensor,offset=0,dim1=0,dim2=1)torch.diagonal(input=my_tensor,offset=0,dim1=0,dim2=-2)torch.diagonal(input=my_tensor,offset=0,dim1=1,dim2=0)torch.diagonal(input=my_tensor,offset=0,dim1=1,dim2=-3)torch.diagonal(input=my_tensor,offset=0,dim1=-2,dim2=0)torch.diagonal(input=my_tensor,offset=0,dim1=-2,dim2=-3)torch.diagonal(input=my_tensor,offset=0,dim1=-3,dim2=1)torch.diagonal(input=my_tensor,offset=0,dim1=-3,dim2=-2)# tensor([[7, 0, -3],#         [-4, 1, -5],#         [5, 6, 2]])torch.diagonal(input=my_tensor,offset=0,dim1=0,dim2=2)torch.diagonal(input=my_tensor,offset=0,dim1=0,dim2=-1)torch.diagonal(input=my_tensor,offset=0,dim1=2,dim2=0)torch.diagonal(input=my_tensor,offset=0,dim1=2,dim2=-3)torch.diagonal(input=my_tensor,offset=0,dim1=-1,dim2=0)torch.diagonal(input=my_tensor,offset=0,dim1=-1,dim2=-3)torch.diagonal(input=my_tensor,offset=0,dim1=-3,dim2=2)torch.diagonal(input=my_tensor,offset=0,dim1=-3,dim2=-1)# tensor([[7, -1, -9],#         [-6, 1, 0],#         [9, 4, 2]])torch.diagonal(input=my_tensor,offset=0,dim1=1,dim2=2)torch.diagonal(input=my_tensor,offset=0,dim1=1,dim2=-1)torch.diagonal(input=my_tensor,offset=0,dim1=2,dim2=1)torch.diagonal(input=my_tensor,offset=0,dim1=2,dim2=-2)torch.diagonal(input=my_tensor,offset=0,dim1=-1,dim2=1)torch.diagonal(input=my_tensor,offset=0,dim1=-1,dim2=-2)torch.diagonal(input=my_tensor,offset=0,dim1=-2,dim2=2)torch.diagonal(input=my_tensor,offset=0,dim1=-2,dim2=-1)# tensor([[7, -3, -2],#         [3, 1, -9],#         [6, 5, 2]])torch.diagonal(input=my_tensor,offset=1,dim1=0,dim2=1)torch.diagonal(input=my_tensor,offset=1,dim1=0,dim2=-2)torch.diagonal(input=my_tensor,offset=1,dim1=-3,dim2=1)torch.diagonal(input=my_tensor,offset=1,dim1=-3,dim2=-2)torch.diagonal(input=my_tensor,offset=-1,dim1=1,dim2=0)torch.diagonal(input=my_tensor,offset=-1,dim1=1,dim2=-3)torch.diagonal(input=my_tensor,offset=-1,dim1=-2,dim2=0)torch.diagonal(input=my_tensor,offset=-1,dim1=-2,dim2=-3)# tensor([[-6, -7],#         [-3, 4],#         [8, -9]])torch.diagonal(input=my_tensor,offset=1,dim1=0,dim2=2)torch.diagonal(input=my_tensor,offset=1,dim1=0,dim2=-1)torch.diagonal(input=my_tensor,offset=1,dim1=-3,dim2=2)torch.diagonal(input=my_tensor,offset=1,dim1=-3,dim2=-1)torch.diagonal(input=my_tensor,offset=-1,dim1=2,dim2=0)torch.diagonal(input=my_tensor,offset=-1,dim1=2,dim2=-3)torch.diagonal(input=my_tensor,offset=-1,dim1=-1,dim2=0)torch.diagonal(input=my_tensor,offset=-1,dim1=-1,dim2=-3)# tensor([[-4, 8],#         [-3, 6],#         [1, -9]])torch.diagonal(input=my_tensor,offset=1,dim1=1,dim2=0)torch.diagonal(input=my_tensor,offset=1,dim1=1,dim2=-3)torch.diagonal(input=my_tensor,offset=1,dim1=-2,dim2=0)torch.diagonal(input=my_tensor,offset=1,dim1=-2,dim2=-3)torch.diagonal(input=my_tensor,offset=-1,dim1=0,dim2=1)torch.diagonal(input=my_tensor,offset=-1,dim1=0,dim2=-2)torch.diagonal(input=my_tensor,offset=-1,dim1=-3,dim2=1)torch.diagonal(input=my_tensor,offset=-1,dim1=-3,dim2=-2)# tensor([[3, -4],#         [-1, 5],#         [8, 0]])torch.diagonal(input=my_tensor,offset=1,dim1=1,dim2=2)torch.diagonal(input=my_tensor,offset=1,dim1=1,dim2=-1)torch.diagonal(input=my_tensor,offset=1,dim1=-2,dim2=2)torch.diagonal(input=my_tensor,offset=1,dim1=-2,dim2=-1)torch.diagonal(input=my_tensor,offset=-1,dim1=2,dim2=1)torch.diagonal(input=my_tensor,offset=-1,dim1=2,dim2=-2)torch.diagonal(input=my_tensor,offset=-1,dim1=-1,dim2=1)torch.diagonal(input=my_tensor,offset=-1,dim1=-1,dim2=-2)# tensor([[-4, 8],#         [-1, 6],#         [-8, 0]])torch.diagonal(input=my_tensor,offset=1,dim1=2,dim2=0)torch.diagonal(input=my_tensor,offset=1,dim1=2,dim2=-3)torch.diagonal(input=my_tensor,offset=1,dim1=-1,dim2=0)torch.diagonal(input=my_tensor,offset=1,dim1=-1,dim2=-3)torch.diagonal(input=my_tensor,offset=-1,dim1=0,dim2=2)torch.diagonal(input=my_tensor,offset=-1,dim1=0,dim2=-1)torch.diagonal(input=my_tensor,offset=-1,dim1=-3,dim2=2)torch.diagonal(input=my_tensor,offset=-1,dim1=-3,dim2=-1)# tensor([[3, -8],#         [0, 5],#         [-7, -5]])torch.diagonal(input=my_tensor,offset=1,dim1=2,dim2=1)torch.diagonal(input=my_tensor,offset=1,dim1=2,dim2=-2)torch.diagonal(input=my_tensor,offset=1,dim1=-1,dim2=1)torch.diagonal(input=my_tensor,offset=1,dim1=-1,dim2=-2)torch.diagonal(input=my_tensor,offset=-1,dim1=1,dim2=2)torch.diagonal(input=my_tensor,offset=-1,dim1=1,dim2=-1)torch.diagonal(input=my_tensor,offset=-1,dim1=-2,dim2=2)torch.diagonal(input=my_tensor,offset=-1,dim1=-2,dim2=-1)# tensor([[-6, 1],#         [0, 4],#         [-4, -5]])torch.diagonal(input=my_tensor,offset=2,dim1=0,dim2=1)torch.diagonal(input=my_tensor,offset=2,dim1=0,dim2=-2)torch.diagonal(input=my_tensor,offset=2,dim1=-3,dim2=1)torch.diagonal(input=my_tensor,offset=2,dim1=-3,dim2=-2)torch.diagonal(input=my_tensor,offset=-2,dim1=1,dim2=0)torch.diagonal(input=my_tensor,offset=-2,dim1=1,dim2=-3)torch.diagonal(input=my_tensor,offset=-2,dim1=-2,dim2=0)torch.diagonal(input=my_tensor,offset=-2,dim1=-2,dim2=-3)# tensor([[9],#         [1],#         [-2]])torch.diagonal(input=my_tensor,offset=2,dim1=0,dim2=2)torch.diagonal(input=my_tensor,offset=2,dim1=0,dim2=-1)torch.diagonal(input=my_tensor,offset=2,dim1=-3,dim2=2)torch.diagonal(input=my_tensor,offset=2,dim1=-3,dim2=-1)torch.diagonal(input=my_tensor,offset=-2,dim1=2,dim2=0)torch.diagonal(input=my_tensor,offset=-2,dim1=2,dim2=-3)torch.diagonal(input=my_tensor,offset=-2,dim1=-1,dim2=0)torch.diagonal(input=my_tensor,offset=-2,dim1=-1,dim2=-3)# tensor([[5],#         [8],#         [-2]])torch.diagonal(input=my_tensor,offset=2,dim1=1,dim2=0)torch.diagonal(input=my_tensor,offset=2,dim1=1,dim2=-3)torch.diagonal(input=my_tensor,offset=2,dim1=-2,dim2=0)torch.diagonal(input=my_tensor,offset=2,dim1=-2,dim2=-3)torch.diagonal(input=my_tensor,offset=-2,dim1=0,dim2=1)torch.diagonal(input=my_tensor,offset=-2,dim1=0,dim2=-2)torch.diagonal(input=my_tensor,offset=-2,dim1=-3,dim2=1)torch.diagonal(input=my_tensor,offset=-2,dim1=-3,dim2=-2)# tensor([[6],#         [-8],#         [-9]])torch.diagonal(input=my_tensor,offset=2,dim1=1,dim2=2)torch.diagonal(input=my_tensor,offset=2,dim1=1,dim2=-1)torch.diagonal(input=my_tensor,offset=2,dim1=-2,dim2=2)torch.diagonal(input=my_tensor,offset=2,dim1=-2,dim2=-1)torch.diagonal(input=my_tensor,offset=-2,dim1=2,dim2=1)torch.diagonal(input=my_tensor,offset=-2,dim1=2,dim2=-2)torch.diagonal(input=my_tensor,offset=-2,dim1=-1,dim2=1)torch.diagonal(input=my_tensor,offset=-2,dim1=-1,dim2=-2)# tensor([[5],#         [8],#         [-9]])torch.diagonal(input=my_tensor,offset=2,dim1=2,dim2=0)torch.diagonal(input=my_tensor,offset=2,dim1=2,dim2=-3)torch.diagonal(input=my_tensor,offset=2,dim1=-1,dim2=0)torch.diagonal(input=my_tensor,offset=2,dim1=-1,dim2=-3)torch.diagonal(input=my_tensor,offset=-2,dim1=0,dim2=2)torch.diagonal(input=my_tensor,offset=-2,dim1=0,dim2=-1)torch.diagonal(input=my_tensor,offset=-2,dim1=-3,dim2=2)torch.diagonal(input=my_tensor,offset=-2,dim1=-3,dim2=-1)# tensor([[6],#         [-4],#         [-3]])torch.diagonal(input=my_tensor,offset=2,dim1=2,dim2=1)torch.diagonal(input=my_tensor,offset=2,dim1=2,dim2=-2)torch.diagonal(input=my_tensor,offset=2,dim1=-1,dim2=1)torch.diagonal(input=my_tensor,offset=2,dim1=-1,dim2=-2)torch.diagonal(input=my_tensor,offset=-2,dim1=1,dim2=2)torch.diagonal(input=my_tensor,offset=-2,dim1=1,dim2=-1)torch.diagonal(input=my_tensor,offset=-2,dim1=-2,dim2=2)torch.diagonal(input=my_tensor,offset=-2,dim1=-2,dim2=-1)# tensor([[9],#         [-7],#         [-3]])
Enter fullscreen modeExit fullscreen mode

Top comments(0)

Subscribe
pic
Create template

Templates let you quickly answer FAQs or store snippets for re-use.

Dismiss

Are you sure you want to hide this comment? It will become hidden in your post, but will still be visible via the comment'spermalink.

For further actions, you may consider blocking this person and/orreporting abuse

I'm a web developer.Buy Me a Coffee: ko-fi.com/superkaiSO: stackoverflow.com/users/3247006/super-kai-kazuya-itoX(Twitter): twitter.com/superkai_kazuyaFB: facebook.com/superkai.kazuya
  • Joined

More fromSuper Kai (Kazuya Ito)

DEV Community

We're a place where coders share, stay up-to-date and grow their careers.

Log in Create account

[8]ページ先頭

©2009-2025 Movatter.jp