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

Функция as_tensor

Функция as_tensor преобразует переданные данные в тензор PyTorch. В отличие от функции tensor, она старается не создавать новую копию данных, если это возможно. Первым параметром функция принимает список, кортеж, массив NumPy или другой тензор. Вторым параметром можно указать тип данных элементов.

Синтаксис

torch.as_tensor(data, [dtype])

Пример

Давайте преобразуем список чисел 1, 2, 3, 4, 5 в тензор:

import torch t = torch.as_tensor([1, 2, 3, 4, 5]) print(t)

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

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

Пример

Давайте создадим тензор из массива NumPy с типом float:

import torch import numpy as np arr = np.array([1, 2, 3, 4, 5]) t = torch.as_tensor(arr, dtype=torch.float) print(t)

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

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

Пример

Важная особенность as_tensor - она не копирует данные, если переданный объект уже является тензором. Проверим это:

import torch t1 = torch.tensor([1, 2, 3]) t2 = torch.as_tensor(t1) print(t1 is t2) print(t1.data_ptr() == t2.data_ptr())

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

True True

Как видите, оба тензора указывают на одни и те же данные в памяти.

Пример

При создании тензора из массива NumPy данные также не копируются, а используются напрямую:

import torch import numpy as np arr = np.array([1, 2, 3, 4]) t = torch.as_tensor(arr) arr[0] = 99 print(t)

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

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

Изменение исходного массива привело к изменению тензора, так как данные общие.

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

  • функцию tensor,
    которая создаёт тензор с принудительным копированием данных
  • функцию from_numpy,
    которая создаёт тензор из массива NumPy без копирования
  • функцию asarray,
    которая является аналогом as_tensor из мира NumPy
  • функцию zeros,
    которая создаёт тензор, заполненный нулями
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить