Функция zeros_like
Функция zeros_like создает новый тензор, все элементы которого равны нулю. Форма нового тензора совпадает с формой переданного на вход тензора. Первым параметром функция принимает исходный тензор. Вторым параметром можно передать тип данных элементов, а третьим - устройство для размещения тензора. По умолчанию тип данных и устройство копируются у исходного тензора.
Синтаксис
torch.zeros_like(input, [dtype], [device], [requires_grad])
Пример
Давайте создадим тензор и на его основе получим новый тензор, заполненный нулями:
import torch
t = torch.tensor([1, 2, 3, 4, 5])
res = torch.zeros_like(t)
print(res)
Результат выполнения кода:
tensor([0, 0, 0, 0, 0])
Пример
Давайте укажем явно тип данных для нового тензора:
import torch
t = torch.tensor([1, 2, 3, 4, 5])
res = torch.zeros_like(t, dtype=torch.float)
print(res)
Результат выполнения кода:
tensor([0., 0., 0., 0., 0.])
Пример
Давайте создадим тензор на GPU и на его основе получим нулевой тензор на том же устройстве:
import torch
if torch.cuda.is_available():
t = torch.tensor([1, 2, 3], device='cuda')
res = torch.zeros_like(t)
print(res.device)
Результат выполнения кода:
"cuda:0"
Пример
Давайте создадим нулевой тензор, который будет поддерживать вычисление градиентов:
import torch
t = torch.tensor([1., 2., 3.])
res = torch.zeros_like(t, requires_grad=True)
print(res.requires_grad)
Результат выполнения кода:
True
Смотрите также
-
функцию
zeros,
которая создает тензор, заполненный нулями, с заданной формой -
функцию
ones_like,
которая создает тензор, заполненный единицами, на основе формы другого тензора -
функцию
empty_like,
которая создает неинициализированный тензор на основе формы другого тензора -
функцию
full_like,
которая создает тензор, заполненный указанным значением, на основе формы другого тензора