Метод add_ класса Tensor
Метод add_ класса Tensor выполняет поэлементное прибавление к тензору числа или другого тензора. Этот метод изменяет исходный тензор на месте, что означает, что он не создает новый тензор, а модифицирует уже существующий. Название метода заканчивается на нижнее подчеркивание, что является соглашением в PyTorch для операций, изменяющих объект на месте. Метод принимает один обязательный параметр - значение, которое нужно прибавить, и несколько необязательных параметров для управления вычислениями.
Синтаксис
tensor.add_(other, *, alpha=1)
Пример
Давайте создадим тензор и прибавим к нему число 5 на месте:
import torch
t = torch.tensor([1, 2, 3, 4, 5])
t.add_(5)
print(t)
Результат выполнения кода:
tensor([ 6, 7, 8, 9, 10])
Пример
Теперь давайте прибавим к тензору другой тензор на месте. Это позволяет складывать тензоры одинаковой формы:
import torch
t1 = torch.tensor([1, 2, 3, 4, 5])
t2 = torch.tensor([5, 4, 3, 2, 1])
t1.add_(t2)
print(t1)
Результат выполнения кода:
tensor([6, 6, 6, 6, 6])
Пример
Метод add_ также поддерживает параметр alpha, который позволяет умножить второе слагаемое на коэффициент перед сложением:
import torch
t = torch.tensor([1, 2, 3, 4, 5])
t.add_(2, alpha=3)
print(t)
Результат выполнения кода:
tensor([ 7, 8, 9, 10, 11])
Пример
Важно помнить, что метод add_ изменяет тензор на месте, поэтому он не возвращает новый объект. Возвращается сам изменённый тензор:
import torch
t = torch.tensor([1, 2, 3, 4, 5])
res = t.add_(10)
print(res is t)
Результат выполнения кода:
True
Смотрите также
-
метод
mul_,
который выполняет поэлементное умножение тензора на значение с изменением на месте -
метод
zero_,
который заполняет все элементы тензора нулями на месте -
метод
fill_,
который заполняет все элементы тензора указанным значением на месте -
метод
copy_,
который копирует элементы из другого тензора в текущий на месте