Python PyTorch 中的 torch.polar() 方法
给定绝对值和角度,我们可以使用 **torch.polar()** 方法在 PyTorch 中构造一个复数。绝对值和角度必须是 **float** 或 **double** 类型。绝对值和角度必须是相同的数据类型。
如果 **abs** 是 **float** 类型,则 **angle** 也必须是 **float** 类型。
如果输入是 **torch.float32**,则构造的复数张量必须是 **torch.complex64**。
如果输入是 **torch.float64**,则复数张量必须是 **torch.complex128**。
语法
torch.polar(abs, angle)
参数
**abs** – 复数张量的绝对长度。
**angle** – 复数张量的角度。
步骤
我们可以使用以下步骤来构造具有给定 **abs** 和 **angle** 的复数张量:
导入所需的库。在以下所有示例中,所需的 Python 库是 **torch**。确保您已安装它。
import torch
定义两个 torch 张量:**abs** 和 **angle**。两个张量中的元素数量必须相同。
abs = torch.tensor([3, 2.5], dtype=torch.float32) angle = torch.tensor([np.pi / 2, np.pi / 4], dtype=torch.float32)
使用给定的 **abs** 和 **angle** 构造一个复数张量。
z = torch.polar(abs, angle)
打印计算出的复数张量。
print("Complex Number:
", z)
打印复数张量的 dtype。
print("dtype of Complex number:",z.dtype)
示例 1
import torch import numpy as np # define the absolute value and angle of the complex tensor abs = torch.tensor([1], dtype=torch.float32) angle = torch.tensor([np.pi / 4], dtype=torch.float32) # print absolute value and angle print("abs:", abs) print("angle:", angle) z = torch.polar(abs, angle) print("Complex number:
",z) print("dtype of complex number:
", z.dtype)
输出
abs: tensor([1.]) angle: tensor([0.7854]) Complex number: tensor([0.7071+0.7071j]) dtype of complex number: torch.complex64
在上面的示例中,我们使用给定的张量绝对长度和角度构造了一个 **dtype=torch.complex64** 的复数张量。
示例 2
import torch import numpy as np abs = torch.tensor([3, 2.5], dtype=torch.float32) angle = torch.tensor([np.pi / 2, np.pi / 4], dtype=torch.float32) z = torch.polar(abs, angle) print(z)
输出
tensor([-1.3113e-07+3.0000j, 1.7678e+00+1.7678j])
示例 3
import torch import numpy as np abs = torch.tensor([1.6, 2.3], dtype=torch.float64) angle = torch.tensor([np.pi / 3, 5 * np.pi / 2], dtype=torch.float64) z = torch.polar(abs, angle) print(z)
输出
tensor([8.0000e-01+1.3856j, 7.0417e-16+2.3000j], dtype=torch.complex128)
广告