DEV Community

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

Posted on

atleast_1d in PyTorch

Buy Me a Coffee

*Memos:

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

*Memos:

  • atleast_1d() 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_1d(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_1d(tensor0, tensor1, tensor2, tensor3, tensor4)
torch.atleast_1d((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_1d(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]],
#           [[True, False, True], [False, True, False]]]]))

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

Top comments (0)