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

Функция linalg.matrix_norm

Функция linalg.matrix_norm вычисляет матричную норму для входного тензора. В зависимости от указанного типа нормы, вычисляется норма Фробениуса, спектральная норма или другие виды матричных норм. Первый аргумент функции - входной тензор, второй - тип нормы. Третий аргумент определяет размерность, по которой вычисляется норма.

Синтаксис

torch.linalg.matrix_norm(input, ord='fro', dim=[-2, -1], keepdim=False, dtype=None)

Параметры функции:

  • input - входной тензор.
  • ord - тип нормы. По умолчанию 'fro' (норма Фробениуса). Также поддерживаются 'nuc' (ядерная норма) и целые числа.
  • dim - размерности для вычисления нормы. По умолчанию последние две размерности.
  • keepdim - сохранять ли размерность. По умолчанию False.
  • dtype - желаемый тип данных результата. По умолчанию None.

Пример

Вычислим норму Фробениуса для двумерной матрицы:

import torch t = torch.tensor([ [1, 2, 3], [4, 5, 6], ], dtype=torch.float) res = torch.linalg.matrix_norm(t) print(res)

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

tensor(9.5394)

Пример

Вычислим спектральную норму матрицы (наибольшее сингулярное число):

import torch t = torch.tensor([ [1, 2], [3, 4], ], dtype=torch.float) res = torch.linalg.matrix_norm(t, ord=2) print(res)

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

tensor(5.4650)

Пример

Вычислим ядерную норму матрицы (сумма сингулярных чисел):

import torch t = torch.tensor([ [1, 2, 3], [4, 5, 6], [7, 8, 9], ], dtype=torch.float) res = torch.linalg.matrix_norm(t, ord='nuc') print(res)

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

tensor(16.8481)

Пример

Вычислим норму Фробениуса с сохранением размерности:

import torch t = torch.tensor([ [1, 2], [3, 4], [5, 6], ], dtype=torch.float) res = torch.linalg.matrix_norm(t, keepdim=True) print(res) print(res.shape)

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

tensor([[9.5394]]) torch.Size([1, 1])

Пример

Вычислим норму для пакета матриц с явным указанием размерности:

import torch t = torch.tensor([ [[1, 2], [3, 4]], [[5, 6], [7, 8]], ], dtype=torch.float) res = torch.linalg.matrix_norm(t, dim=(-2, -1)) print(res)

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

tensor([5.4772, 13.1909])

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

  • функцию norm,
    которая вычисляет векторные и матричные нормы
  • функцию vector_norm,
    которая вычисляет векторные нормы
  • функцию svd,
    которая раскладывает матрицу на сингулярные числа
  • функцию det,
    которая вычисляет определитель матрицы
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить