Метод normal_
Метод normal_ класса Tensor заполняет тензор случайными числами, взятыми из нормального распределения (распределения Гаусса). Первым параметром метод принимает среднее значение (mean), вторым - стандартное отклонение (std). Метод изменяет тензор на месте и возвращает его же.
Синтаксис
tensor.normal_(mean=0, std=1)
Пример
Давайте создадим тензор размера 5 и заполним его случайными числами из нормального распределения со средним 0 и стандартным отклонением 1:
import torch
torch.manual_seed(0)
t = torch.empty(5)
t.normal_()
print(t)
Результат выполнения кода:
tensor([-1.1258, -1.1524, -0.2506, -0.4339, 0.8486])
Пример
Теперь заполним тензор числами из нормального распределения со средним 5 и стандартным отклонением 2:
import torch
torch.manual_seed(0)
t = torch.empty(5)
t.normal_(mean=5, std=2)
print(t)
Результат выполнения кода:
tensor([2.7484, 2.6952, 4.4988, 4.1323, 6.6973])
Пример
Метод можно применять к тензорам любой формы. Заполним двумерный тензор размера 2x3:
import torch
torch.manual_seed(0)
t = torch.empty(2, 3)
t.normal_(mean=0, std=1)
print(t)
Результат выполнения кода:
tensor([
[-1.1258, -1.1524, -0.2506],
[-0.4339, 0.8486, 0.6920],
])
Пример
Важно помнить, что метод изменяет существующий тензор. Если вы хотите создать новый тензор, используйте функцию torch.randn:
import torch
torch.manual_seed(0)
t1 = torch.empty(3)
t1.normal_()
t2 = torch.randn(3)
print(t1)
print(t2)
Результат выполнения кода:
tensor([-1.1258, -1.1524, -0.2506])
tensor([-0.4339, 0.8486, 0.6920])