Функция randn_like
Функция randn_like создаёт тензор, форма которого совпадает с формой переданного тензора input, а элементы заполняются случайными числами, взятыми из стандартного нормального распределения. Первым параметром функция принимает тензор, по которому определяется форма, тип данных и устройство. Дополнительно можно явно указать тип данных dtype, устройство device и другие параметры.
Синтаксис
torch.randn_like(input, [dtype], [device], [requires_grad])
Пример
Создадим тензор и на его основе сгенерируем новый тензор со случайными значениями из стандартного нормального распределения:
import torch
t = torch.tensor([[1, 2, 3], [4, 5, 6]])
res = torch.randn_like(t)
print(res)
Результат выполнения кода (значения могут отличаться):
tensor([[-0.1123, 0.3145, -0.6789],
[ 1.2345, -0.5678, 0.9012]])
Пример
Укажем тип данных для нового тензора явно:
import torch
t = torch.tensor([1, 2, 3, 4, 5])
res = torch.randn_like(t, dtype=torch.float)
print(res)
Результат выполнения кода:
tensor([ 0.1234, -0.5678, 0.9012, -0.3456, 0.7890])
Пример
Создадим тензор на GPU (если доступен) с включённым вычислением градиента:
import torch
t = torch.tensor([1., 2., 3.], device='cuda')
res = torch.randn_like(t, requires_grad=True)
print(res)
Результат выполнения кода (значения могут отличаться):
tensor([-0.1234, 0.5678, -0.9012], device='cuda:0', requires_grad=True)
Смотрите также
-
функцию
rand_like,
которая создаёт тензор со случайными числами из равномерного распределения на основе формы другого тензора -
функцию
randn,
которая создаёт тензор со случайными числами из стандартного нормального распределения указанной формы -
функцию
rand,
которая создаёт тензор со случайными числами из равномерного распределения на интервале [0, 1) -
функцию
manual_seed,
которая устанавливает зерно для генерации случайных чисел