Тип complex64
Тип complex64 в PyTorch используется для представления комплексных чисел,
где каждая компонента (вещественная и мнимая часть) хранится как 32-битное
число с плавающей точкой (соответствует float32). Этот тип данных
подходит для большинства задач обработки сигналов, квантовых вычислений и
спектрального анализа, когда требуется хорошее соотношение точности и
потребления памяти. Для создания тензора с типом complex64 укажите
параметр dtype=torch.complex64 в функциях создания тензоров.
Синтаксис
torch.tensor(data, dtype=torch.complex64)
Пример
Давайте создадим тензор типа complex64 из списка комплексных чисел:
import torch
t = torch.tensor([1+2j, 3+4j, 5+6j], dtype=torch.complex64)
print(t)
Результат выполнения кода:
tensor([1.+2.j, 3.+4.j, 5.+6.j])
Пример
Создадим комплексный тензор из вещественных частей с помощью функции torch.complex:
import torch
real = torch.tensor([1.0, 2.0, 3.0])
imag = torch.tensor([0.5, 1.5, 2.5])
t = torch.complex(real, imag)
print(t)
Результат выполнения кода:
tensor([1.0000+0.5000j, 2.0000+1.5000j, 3.0000+2.5000j])
Пример
Проверим тип данных и размер комплексного тензора в памяти:
import torch
t = torch.tensor([1+2j, 3+4j], dtype=torch.complex64)
print(t.dtype)
print(t.element_size())
Результат выполнения кода:
torch.complex64
8
Обратите внимание, что каждый элемент типа complex64 занимает 8 байт
(4 байта на вещественную часть и 4 байта на мнимую).
Пример
Выполним арифметическую операцию над комплексными тензорами:
import torch
t1 = torch.tensor([1+2j, 3+4j], dtype=torch.complex64)
t2 = torch.tensor([5+6j, 7+8j], dtype=torch.complex64)
res = t1 + t2
print(res)
Результат выполнения кода:
tensor([ 6.+8.j, 10.+12.j])
Смотрите также
-
тип
complex128,
представляющий комплексные числа с двойной точностью -
тип
float32,
используемый для вещественных частей комплексных чисел -
тип
float64,
представляющий вещественные числа с двойной точностью -
функцию
promote_types,
определяющую результирующий тип для смешанных операций