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)

更新于:2022年1月27日

402 次浏览

开启您的职业生涯

完成课程获得认证

开始学习
广告