РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
150 of 769 menu

Тип complex128

Тип complex128 в PyTorch представляет комплексные числа с плавающей запятой двойной точности (64 бита для действительной и 64 бита для мнимой части). Этот тип данных соответствует NumPy-типу complex128 и обеспечивает высокую точность при выполнении вычислений с комплексными числами. Комплексные числа удобно использовать в задачах цифровой обработки сигналов, квантовых вычислениях и при работе с преобразованиями Фурье.

Для создания тензора с типом complex128 необходимо передать параметр dtype=torch.complex128 в функцию создания тензора. Также можно использовать краткую запись torch.cdouble, которая является псевдонимом для torch.complex128.

Синтаксис

torch.tensor(data, dtype=torch.complex128) torch.complex(real, imag, dtype=torch.complex128) tensor.to(dtype=torch.complex128)

Пример

Создадим тензор комплексных чисел из списка и укажем тип complex128:

import torch t = torch.tensor([1+2j, 3+4j, 5+6j], dtype=torch.complex128) print(t) print(t.dtype)

Результат выполнения кода:

tensor([1.+2.j, 3.+4.j, 5.+6.j], dtype=torch.complex128) torch.complex128

Пример

Создадим комплексный тензор с помощью функции complex, передав отдельно действительную и мнимую части:

import torch real = torch.tensor([1.0, 2.0, 3.0]) imag = torch.tensor([4.0, 5.0, 6.0]) t = torch.complex(real, imag) print(t)

Результат выполнения кода:

tensor([1.+4.j, 2.+5.j, 3.+6.j])

Пример

Преобразуем существующий тензор в тип complex128 с помощью метода to:

import torch t = torch.tensor([1, 2, 3, 4, 5], dtype=torch.float32) print("Исходный тип:", t.dtype) t = t.to(dtype=torch.complex128) print("Новый тип:", t.dtype) print(t)

Результат выполнения кода:

Исходный тип: torch.float32 Новый тип: torch.complex128 tensor([1.+0.j, 2.+0.j, 3.+0.j, 4.+0.j, 5.+0.j], dtype=torch.complex128)

Пример

Выполним арифметические операции с комплексными числами в формате complex128:

import torch t1 = torch.tensor([1+2j, 3+4j], dtype=torch.complex128) t2 = torch.tensor([5+6j, 7+8j], dtype=torch.complex128) res_sum = t1 + t2 res_mul = t1 * t2 res_conj = torch.conj(t1) print("Сумма:", res_sum) print("Произведение:", res_mul) print("Сопряжённое:", res_conj)

Результат выполнения кода:

Сумма: tensor([ 6.+8.j, 10.+12.j], dtype=torch.complex128) Произведение: tensor([ -7.+16.j, -11.+52.j], dtype=torch.complex128) Сопряжённое: tensor([1.-2.j, 3.-4.j], dtype=torch.complex128)

Пример

Получим доступ к действительной и мнимой частям комплексного тензора:

import torch t = torch.tensor([1+2j, 3+4j, 5+6j], dtype=torch.complex128) real_part = t.real imag_part = t.imag print("Действительная часть:", real_part) print("Мнимая часть:", imag_part) print("Тип действительной части:", real_part.dtype)

Результат выполнения кода:

Действительная часть: tensor([1., 3., 5.], dtype=torch.float64) Мнимая часть: tensor([2., 4., 6.], dtype=torch.float64) Тип действительной части: torch.float64

Смотрите также

  • тип complex64,
    который представляет комплексные числа одинарной точности
  • тип float64,
    который представляет вещественные числа двойной точности
  • функцию promote_types,
    которая определяет результирующий тип при операции с двумя типами
  • функцию can_cast,
    которая проверяет возможность безопасного приведения типов
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить