DEV Community

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

Posted on

atleast_3d in PyTorch

Buy Me a Coffee

*Memos:

atleast_3d() can get the view of the one or more 3D or more D tensors of zero or more elements by only changing one or more 0D, 1D or 2D tensors to one or more 3D tensors from the one or more 0D or more D tensors of zero or more elements as shown below:

*Memos:

  • atleast_3d() can be used with torch but not with a tensor.
  • The 1st or more arguments with torch are *tensors(Required-Type:tensor of int, float, complex or bool or tuple or list of tensor of int, float, complex or bool): *Memos:
    • If setting more than one tensors, a tuple of tensors is returned otherwise a tensor is returned.
    • Don't use any keyword like *tensors=, tensor or input.
  • Setting no arguments returns an empty tuple.
import torch

tensor0 = torch.tensor(2) # 0D tensor

torch.atleast_3d(tensor0)
# tensor([[[2]]])

tensor0 = torch.tensor(2) # 0D tensor
tensor1 = torch.tensor([2, 7, 4]) # 1D tensor
tensor2 = torch.tensor([[2, 7, 4], [8, 3, 2]]) # 2D tensor
tensor3 = torch.tensor([[[2, 7, 4], [8, 3, 2]], # 3D tensor
                        [[5, 0, 8], [3, 6, 1]]])
tensor4 = torch.tensor([[[[2, 7, 4], [8, 3, 2]], # 4D tensor
                         [[5, 0, 8], [3, 6, 1]]],
                        [[[9, 4, 7], [1, 0, 5]],
                         [[6, 7, 4], [2, 1, 9]]]])
torch.atleast_3d(tensor0, tensor1, tensor2, tensor3, tensor4)
torch.atleast_3d((tensor0, tensor1, tensor2, tensor3, tensor4))
# (tensor([[[2]]]),
#  tensor([[[2], [7], [4]]]),
#  tensor([[[2], [7], [4]],
#          [[8], [3], [2]]]),
#  tensor([[[2, 7, 4], [8, 3, 2]],
#          [[5, 0, 8], [3, 6, 1]]]),
#  tensor([[[[2, 7, 4], [8, 3, 2]],
#           [[5, 0, 8], [3, 6, 1]]],
#          [[[9, 4, 7], [1, 0, 5]],
#           [[6, 7, 4], [2, 1, 9]]]]))

tensor0 = torch.tensor(2) # 0D tensor
tensor1 = torch.tensor([2, 7, 4]) # 1D tensor
tensor2 = torch.tensor([[2., 7., 4.], # 2D tensor
                        [8., 3., 2.]])
tensor3 = torch.tensor([[[2.+0.j, 7.+0.j, 4.+0.j], # 3D tensor
                         [8.+0.j, 3.+0.j, 2.+0.j]],
                        [[5.+0.j, 0.+0.j, 8.+0.j],
                         [3.+0.j, 6.+0.j, 1.+0.j]]])
tensor4 = torch.tensor([[[[True, False, True], [False, True, False]],
                         [[True, False, True], [False, True, False]]],
                        [[[True, False, True], [False, True, False]],
                         [[True, False, True], [False, True, False]]]])
                       # 4D tensor
torch.atleast_3d(tensor0, tensor1, tensor2, tensor3, tensor4)
# (tensor([[[2]]]),
#  tensor([[[2], [7], [4]]]),
#  tensor([[[2.], [7.], [4.]],
#          [[8.], [3.], [2.]]]),
#  tensor([[[2.+0.j, 7.+0.j, 4.+0.j],
#           [8.+0.j, 3.+0.j, 2.+0.j]],
#          [[5.+0.j, 0.+0.j, 8.+0.j],
#           [3.+0.j, 6.+0.j, 1.+0.j]]]),
#  tensor([[[[True, False, True], [False, True, False]],
#           [[True, False, True], [False, True, False]]],
#          [[[True, False, True], [False, True, False]],

torch.atleast_3d()
# ()
Enter fullscreen mode Exit fullscreen mode

Top comments (0)