Метод fill_
Метод fill_ заполняет все элементы тензора заданным значением.
Метод работает на месте (in-place) и не создает новый тензор,
а изменяет существующий. Это полезно для сброса или инициализации
тензоров перед дальнейшими вычислениями.
Значение может быть как скалярным числом, так и тензором с одним элементом.
Синтаксис
tensor.fill_(value)
Параметр value задает значение, которым будут заполнены все элементы тензора.
Метод возвращает сам тензор после изменения.
Пример
Давайте заполним тензор, состоящий из нулей, значением 7:
import torch
t = torch.zeros(3, 2)
t.fill_(7)
print(t)
Результат выполнения кода:
tensor([
[7., 7.],
[7., 7.],
[7., 7.],
])
Обратите внимание, что метод изменил исходный тензор и вернул его же.
Пример
Используем fill_ для обнуления тензора после вычислений:
import torch
t = torch.tensor([1, 2, 3, 4, 5])
t.fill_(0)
print(t)
Результат выполнения кода:
tensor([0, 0, 0, 0, 0])
Теперь все элементы тензора равны нулю.
Пример
Заполним тензор строковым значением (в тензорах допустимы только числа):
import torch
t = torch.zeros(2, 2, dtype=torch.float)
t.fill_(3.14)
print(t)
Результат выполнения кода:
tensor([
[3.1400, 3.1400],
[3.1400, 3.1400],
])
Метод принимает числа с плавающей точкой и заполняет ими тензор.