РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
446 of 769 menu

Функция cosine_similarity

Функция cosine_similarity вычисляет косинусное сходство между двумя тензорами вдоль указанной размерности. Косинусное сходство измеряет косинус угла между двумя ненулевыми векторами и возвращает значение в диапазоне от -1 до 1, где 1 означает полное совпадение направления, -1 - противоположное направление, а 0 - ортогональность. Первый и второй параметры функции принимают тензоры x1 и x2, третий параметр задает размерность для вычисления сходства.

Синтаксис

torch.nn.functional.cosine_similarity(x1, x2, dim=1, eps=1e-8)

Пример

Давайте вычислим косинусное сходство между двумя векторами:

import torch import torch.nn.functional as F t1 = torch.tensor([1.0, 2.0, 3.0]) t2 = torch.tensor([4.0, 5.0, 6.0]) res = F.cosine_similarity(t1, t2, dim=0) print(res)

Результат выполнения кода:

tensor(0.9746)

Пример

Вычислим косинусное сходство между двумя матрицами вдоль размерности 1 (по строкам):

import torch import torch.nn.functional as F t1 = torch.tensor([ [1.0, 2.0, 3.0], [4.0, 5.0, 6.0], ]) t2 = torch.tensor([ [7.0, 8.0, 9.0], [1.0, 1.0, 1.0], ]) res = F.cosine_similarity(t1, t2, dim=1) print(res)

Результат выполнения кода:

tensor([0.9594, 0.9636])

Пример

Используем параметр eps для предотвращения деления на ноль при нулевой длине векторов:

import torch import torch.nn.functional as F t1 = torch.zeros(3) t2 = torch.ones(3) res = F.cosine_similarity(t1, t2, dim=0, eps=1e-6) print(res)

Результат выполнения кода:

tensor(0.)

Смотрите также

  • функцию normalize,
    которая выполняет нормализацию тензора по заданной размерности
  • функцию pairwise_distance,
    которая вычисляет попарное расстояние между векторами
  • функцию pdist,
    которая вычисляет расстояние между строками тензора
  • функцию cosine_embedding_loss,
    которая реализует функцию потерь на основе косинусного сходства
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить