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

Метод numpy

Метод numpy преобразует тензор PyTorch в массив NumPy. Важной особенностью является то, что при преобразовании данные не копируются - тензор и массив разделяют одну область памяти. Это означает, что изменения в массиве отразятся на тензоре, и наоборот. Метод не принимает параметров.

Синтаксис

t.numpy()

Пример

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

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

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

[1 2 3 4 5]

Пример

Метод numpy работает и с многомерными тензорами:

import torch import numpy as np t = torch.tensor([[1, 2, 3], [4, 5, 6]]) arr = t.numpy() print(arr)

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

[[1 2 3] [4 5 6]]

Пример

Так как данные не копируются, изменение массива меняет тензор:

import torch import numpy as np t = torch.tensor([1, 2, 3, 4, 5]) arr = t.numpy() arr[0] = 100 print(t)

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

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

Пример

Аналогично, изменение тензора меняет массив:

import torch import numpy as np t = torch.tensor([1, 2, 3, 4, 5]) arr = t.numpy() t[1] = 200 print(arr)

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

[ 1 200 3 4 5]

Пример

Следует помнить, что метод numpy работает только с тензорами, расположенными на CPU. Для тензоров на GPU необходимо сначала переместить их на CPU методом cpu:

import torch import numpy as np t = torch.tensor([1, 2, 3, 4, 5]).cuda() arr = t.cpu().numpy() print(arr)

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

[1 2 3 4 5]

Пример

Если тензор требует вычисления градиента, метод numpy вызовет ошибку. Для преобразования сначала нужно отключить отслеживание градиента с помощью метода detach:

import torch import numpy as np t = torch.tensor([1., 2., 3.], requires_grad=True) arr = t.detach().numpy() print(arr)

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

[1. 2. 3.]

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

  • метод tolist,
    который преобразует тензор в список Python
  • метод item,
    который извлекает скалярное значение из тензора
  • функцию from_numpy,
    которая создает тензор из массива NumPy
  • метод cpu,
    который перемещает тензор на CPU
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить