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

Метод long

Метод long преобразует тензор к типу данных torch.int64 (длинное целое со знаком). Этот метод полезен, когда требуется явное приведение типа для операций, ожидающих целочисленные значения, например, для индексации или работы с функциями, требующими целочисленные тензоры. Метод создает новый тензор с указанным типом, не изменяя исходный.

Синтаксис

t.long()

Метод не принимает параметров и возвращает новый тензор с типом torch.int64.

Пример

Давайте создадим тензор с вещественными числами и преобразуем его в целочисленный тип:

import torch t = torch.tensor([1.2, 2.8, 3.5, 4.1]) res = t.long() print(res)

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

tensor([1, 2, 3, 4])

Как видно из примера, дробная часть отбрасывается (приведение к целому выполняется путем усечения).

Пример

Давайте создадим тензор с типом данных float32 и явно преобразуем его в int64:

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

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

"Исходный тип: torch.float32" "Новый тип: torch.int64" tensor([1, 2, 3])

Метод long всегда возвращает тензор с типом torch.int64, независимо от исходного типа данных.

Пример

Рассмотрим использование метода long для индексации другого тензора. Индексы должны быть целочисленными:

import torch # Исходный тензор для индексации data = torch.tensor([10, 20, 30, 40, 50]) # Тензор с индексами (вещественные числа) indices = torch.tensor([1.0, 3.0, 0.0]) # Преобразуем индексы в целочисленный тип int_indices = indices.long() res = data[int_indices] print(res)

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

tensor([20, 40, 10])

Без преобразования типов индексация вещественным тензором вызовет ошибку. Метод long решает эту проблему, обеспечивая корректную работу с индексами.

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

  • метод int,
    который преобразует тензор к типу torch.int32
  • метод float,
    который преобразует тензор к типу torch.float32
  • метод double,
    который преобразует тензор к типу torch.float64
  • метод type,
    который позволяет выполнить преобразование к любому типу PyTorch
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить