square() and pow() in PyTorch

*My post explains float_power().

square() can get the 0D or more D tensor of squared zero or more elements, getting the 0D or more D tensor of zero or more elements as shown below:

*Memos:

  • square() can be used with torch or a tensor.
  • The 1st argument(input) with torch or using a tensor(Required-Type:tensor of int, float, complex or bool).
  • There is out argument with torch(Optional-Type:tensor):
    *Memos:

    • out= must be used.
    • My post explains out argument.
import torch my_tensor = torch.tensor(-3) torch.square(input=my_tensor)
my_tensor.square()
# tensor(9)

my_tensor = torch.tensor([-3, 1, -2, 3, 5, -5, 0, -4]) torch.square(input=my_tensor)
# tensor([9, 1, 4, 9, 25, 25, 0, 16])

my_tensor = torch.tensor([[-3, 1, -2, 3], [5, -5, 0, -4]])
torch.square(input=my_tensor)
# tensor([[9, 1, 4, 9],
# [25, 25, 0, 16]])

my_tensor = torch.tensor([[[-3, 1], [-2, 3]], [[5, -5], [0, -4]]])
torch.square(input=my_tensor)
# tensor([[[9, 1], [4, 9]],
# [[25, 25], [0, 16]]])

my_tensor = torch.tensor([[[-3., 1.], [-2., 3.]], [[5., -5.], [0., -4.]]])
torch.square(input=my_tensor)
# tensor([[[9., 1.], [4., 9.]],
# [[25., 25.], [0., 16.]]])

my_tensor = torch.tensor([[[-3.+0.j, 1.+0.j], [-2.+0.j, 3.+0.j]], [[5.+0.j, -5.+0.j], [0.+0.j, -4.+0.j]]])
torch.square(input=my_tensor)
# tensor([[[9.-0.j, 1.+0.j], [4.-0.j, 9.+0.j]],
# [[25.+0.j, 25.-0.j], [0.+0.j, 16.-0.j]]])

my_tensor = torch.tensor([[[True, False], [True, False]], [[False, True], [False, True]]])
torch.square(input=my_tensor)
# tensor([[[1, 0], [1, 0]],
# [[0, 1], [0, 1]]])
Enter fullscreen mode
Exit fullscreen mode

pow() can get the 0D or more D tensor of zero or more powers from two of the 0D or more D tensors of zero or more elements or the 0D or more D tensor of zero or more elements and a scalar as shown below:

*Memos:

  • pow() can be used with torch or a tensor.
  • The 1st argument(input) with torch(Type:tensor or scalar of int, float or complex) or using a tensor(Type:tensor of int, float or complex)(Required). *torch must use a scalar without input=.
  • The 2nd argument with torch or the 1st argument with a tensor is exponent(Required-Type:tensor or scalar of int, float or complex). *A negative scalar cannot be used.
  • There is out argument with torch(Optional-Type:tensor):
    *Memos:

    • out= must be used.
    • My post explains out argument.
  • The combination of a scalar(input or a tensor) and a scalar(exponent) cannot be used.
  • The combination of a tensor(input(bool) or a tensor(bool) and a scalar(exponent(bool) works.
import torch tensor1 = torch.tensor(-3)
tensor2 = torch.tensor([-4, -3, -2, -1, 0, 1, 2, 3]) torch.pow(input=tensor1, exponent=tensor2)
tensor1.pow(exponent=tensor2)
# tensor([0, 0, 0, 0, 1, -3, 9, -27])

torch.pow(-3, exponent=tensor2)
# tensor([0, 0, 0, 0, 1, -3, 9, -27])

torch.pow(input=tensor1, exponent=3)
# tensor(-27)

tensor1 = torch.tensor([-3, 1, -2, 3, 5, -5, 0, -4])
tensor2 = torch.tensor([-4, -3, -2, -1, 0, 1, 2, 3]) torch.pow(input=tensor1, exponent=tensor2)
# tensor([0, 1, 0, 0, 1, -5, 0, -64])

torch.pow(-3, exponent=tensor2)
# tensor([0, 0, 0, 0, 1, -3, 9, -27])

torch.pow(input=tensor1, exponent=3)
# tensor([-27, 1, -8, 27, 125, -125, 0, -64])

tensor1 = torch.tensor([[-3, 1, -2, 3], [5, -5, 0, -4]])
tensor2 = torch.tensor([0, 1, 2, 3]) torch.pow(input=tensor1, exponent=tensor2)
# tensor([[1, 1, 4, 27], [1, -5, 0, -64]])

torch.pow(-3, exponent=tensor2)
# tensor([1, -3, 9, -27])

torch.pow(input=tensor1, exponent=3)
# tensor([[-27, 1, -8, 27], [125, -125, 0, -64]])

tensor1 = torch.tensor([[[-3, 1], [-2, 3]], [[5, -5], [0, -4]]])
tensor2 = torch.tensor([2, 3]) torch.pow(input=tensor1, exponent=tensor2)
# tensor([[[9, 1], [4, 27]],
# [[25, -125], [0, -64]]])

torch.pow(-3, exponent=tensor2)
# tensor([9, -27])

torch.pow(input=tensor1, exponent=3)
# tensor([[[-27, 1], [-8, 27]],
# [[125, -125], [0, -64]]])

tensor1 = torch.tensor([[[-3., 1.], [-2., 3.]], [[5., -5.], [0., -4.]]])
tensor2 = torch.tensor([2., 3.]) torch.pow(input=tensor1, exponent=tensor2)
# tensor([[[9., 1.], [4., 27.]],
# [[25., -125.], [0., -64.]]])

torch.pow(-3., exponent=tensor2)
# tensor([9., -27.])

torch.pow(input=tensor1, exponent=3.)
# tensor([[[-27., 1.], [-8., 27.]],
# [[125., -125.], [0., -64.]]])

tensor1 = torch.tensor([[[-3.+0.j, 1.+0.j], [-2.+0.j, 3.+0.j]], [[5.+0.j, -5.+0.j], [0.+0.j, -4.+0.j]]])
tensor2 = torch.tensor([2.+0.j, 3.+0.j]) torch.pow(input=tensor1, exponent=tensor2)
# tensor([[[9.0000+1.5736e-06j, 1.0000+0.0000e+00j],
# [4.0000+6.9938e-07j, 27.0000+0.0000e+00j]],
# [[25.0000+0.0000e+00j, -125.0000-2.9812e-06j],
# [0.0000-0.0000e+00j, -64.0000-1.5264e-06j]]])

torch.pow(-3.+0.j, exponent=tensor2)
# tensor([9.0000+1.5736e-06j, -27.0000-6.4394e-07j])

torch.pow(input=tensor1, exponent=3.+0.j)
# tensor([[[-27.+0.j, 1.+0.j],
# [-8.+0.j, 27.+0.j]],
# [[125.+0.j, -125.+0.j],
# [0.+0.j, -64.+0.j]]])

my_tensor = torch.tensor([[[True, False], [True, False]], [[False, True], [False, True]]])
torch.pow(input=my_tensor, exponent=True)
# tensor([[[True, False], [True, False]],
# [[False, True], [False, True]]])
Enter fullscreen mode
Exit fullscreen mode

Discover more from Coursity

Subscribe to get the latest posts sent to your email.

Leave a Comment

Your email address will not be published. Required fields are marked *

Discover more from Coursity

Subscribe now to keep reading and get access to the full archive.

Continue reading

Scroll to Top
311 west monroe street.