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 次瀏覽

開啟您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.