Автор оригинала: Pankaj Kumar.
В этой статье мы посмотрим на использование Pytorch torich.max () функция.
Как вы можете ожидать, это очень простая функция, но интересно, у него больше, чем вы себе представляете.
Давайте посмотрим на использование этой функции, используя несколько простых примеров.
Примечание : На момент написания пищевой версии Pytorch используется Pytorch 1.5.0
Pytorch Torch.max () – основной синтаксис
Использовать pytorch torich.max ()
, первый импорт Факел
Отказ
import torch
Теперь эта функция возвращает максимум среди элементов в тензоре.
Поведение по умолчанию Pytorch Torch.max ()
Поведение по умолчанию для возврата одного элемента и индекса, соответствующий глобальному максимальному элементу.
max_element = torch.max(input_tensor)
Вот пример:
p = torch.randn([2, 3]) print(p) max_element = torch.max(p) print(max_element)
Выход
tensor([[-0.0665, 2.7976, 0.9753], [ 0.0688, -1.0376, 1.4443]]) tensor(2.7976)
Действительно, это дает нам глобальный максимальный элемент в тензоре!
Используйте Torch.max () вдоль измерения
Тем не менее, вы можете получить максимум по определенному измерению, как тензор, а не один элемент.
Чтобы указать размерность ( ось – в numpy
), есть еще один дополнительный аргумент ключевых слов, называемый смущать
Это представляет направление, которое мы принимаем для максимума.
Это возвращает кортеж, Max_Elements
и max_indices
Отказ
Max_Elements
-> Все максимальные элементы тензора.
max_indices
-> Индексы, соответствующие максимальным элементам.
max_elements, max_indices = torch.max(input_tensor, dim)
Это вернет тензор, который имеет максимальные элементы вдоль измерения тусклый
Отказ
Давайте теперь посмотрим на некоторые примеры.
p = torch.randn([2, 3]) print(p) # Get the maximum along dim = 0 (axis = 0) max_elements, max_idxs = torch.max(p, dim=0) print(max_elements) print(max_idxs)
Выход
tensor([[-0.0665, 2.7976, 0.9753], [ 0.0688, -1.0376, 1.4443]]) tensor([0.0688, 2.7976, 1.4443]) tensor([1, 0, 1])
Как видите, мы находим максимум вдоль размерности 0 (максимум по столбцам).
Кроме того, мы получаем индексы, соответствующие элементам. Например, 0,0688
Имеет индекс 1
вдоль столбца 0.
Точно так же, если вы хотите найти максимум вдоль рядов, используйте dim = 1
Отказ
# Get the maximum along dim = 1 (axis = 1) max_elements, max_idxs = torch.max(p, dim=1) print(max_elements) print(max_idxs)
Выход
tensor([2.7976, 1.4443]) tensor([1, 2])
Действительно, мы получаем максимальные элементы вдоль строки, а соответствующий индекс (вдоль строки).
Использование Torch.max () для сравнения
Мы также можем использовать torich.max ()
Чтобы получить максимальные значения между двумя тензорами.
output_tensor = torch.max(a, b)
Здесь А
и B
должны иметь одинаковые размеры или должны быть «вещательные» тензорами.
Вот простой пример для сравнения двух тензоров, имеющих одинаковые размеры.
p = torch.randn([2, 3]) q = torch.randn([2, 3]) print("p =", p) print("q =",q) # Compare elements of p and q and get the maximum max_elements = torch.max(p, q) print(max_elements)
Выход
p = tensor([[-0.0665, 2.7976, 0.9753], [ 0.0688, -1.0376, 1.4443]]) q = tensor([[-0.0678, 0.2042, 0.8254], [-0.1530, 0.0581, -0.3694]]) tensor([[-0.0665, 2.7976, 0.9753], [ 0.0688, 0.0581, 1.4443]])
Действительно, мы получаем выходной тензор, имеющий максимальные элементы между P
и Q
Отказ
Заключение
В этой статье мы узнали об использовании функции Torch.max (), чтобы узнать максимальный элемент тензора.
Мы также использовали эту функцию для сравнения двух тензоров и получить максимум среди них.
Для подобных статей пройдите через наш контент на наших учебных пособиях Pytorch! Оставайтесь настроиться на большее время!
Рекомендации
- Официальная документация Pytorch на Torch.max ()