Функция normalize
Функция normalize выполняет L2-нормализацию входного тензора вдоль указанного измерения. Первым параметром функция принимает тензор для нормализации. Вторым параметром p задается порядок нормы (по умолчанию 2). Третьим параметром dim указывается измерение, вдоль которого производится нормализация. Результатом является тензор, где каждый вектор вдоль указанной оси имеет единичную норму.
Синтаксис
torch.nn.functional.normalize(input, p=2, dim=1, eps=1e-12, out=None)
Пример
Давайте выполним L2-нормализацию двумерного тензора по строкам:
import torch
import torch.nn.functional as F
t = torch.tensor([
[1.0, 2.0, 3.0],
[4.0, 5.0, 6.0],
])
res = F.normalize(t, p=2, dim=1)
print(res)
Результат выполнения кода:
tensor([
[0.2673, 0.5345, 0.8018],
[0.4558, 0.5698, 0.6838],
])
Пример
Нормализуем тензор по столбцам (измерение 0):
import torch
import torch.nn.functional as F
t = torch.tensor([
[1.0, 2.0, 3.0],
[4.0, 5.0, 6.0],
])
res = F.normalize(t, p=2, dim=0)
print(res)
Результат выполнения кода:
tensor([
[0.2425, 0.3714, 0.4472],
[0.9701, 0.9285, 0.8944],
])
Пример
Используем L1-нормализацию для одномерного тензора:
import torch
import torch.nn.functional as F
t = torch.tensor([1.0, 2.0, 3.0, 4.0, 5.0])
res = F.normalize(t, p=1, dim=0)
print(res)
Результат выполнения кода:
tensor([0.0667, 0.1333, 0.2000, 0.2667, 0.3333])
Пример
Использование параметра eps для избежания деления на ноль:
import torch
import torch.nn.functional as F
t = torch.tensor([
[0.0, 0.0, 0.0],
[1.0, 2.0, 3.0],
])
res = F.normalize(t, p=2, dim=1, eps=1e-6)
print(res)
Результат выполнения кода:
tensor([
[0.0000, 0.0000, 0.0000],
[0.2673, 0.5345, 0.8018],
])
Смотрите также
-
функцию
cosine_similarity,
которая вычисляет косинусное сходство между векторами -
функцию
softmax,
которая преобразует значения в вероятности -
функцию
pairwise_distance,
которая вычисляет попарные расстояния между векторами -
функцию
pdist,
которая вычисляет попарные расстояния между строками тензора