Функция fmax
Функция fmax сравнивает два тензора поэлементно и возвращает новый тензор, содержащий максимальные значения из каждой пары элементов. В отличие от функции maximum, fmax игнорирует значения NaN: если один из элементов равен NaN, то в результат записывается значение второго элемента. Если оба элемента равны NaN, результат будет NaN. Первым параметром передаётся первый тензор, вторым - второй тензор. Тензоры должны быть приводимы к одной форме.
Синтаксис
torch.fmax(input, other)
Пример
Давайте сравним два тензора с положительными числами:
import torch
t1 = torch.tensor([1, 5, 3, 9])
t2 = torch.tensor([4, 2, 6, 7])
res = torch.fmax(t1, t2)
print(res)
Результат выполнения кода:
tensor([4, 5, 6, 9])
Пример
Теперь рассмотрим случай, когда в одном из тензоров присутствует значение NaN:
import torch
t1 = torch.tensor([1.0, float('nan'), 3.0])
t2 = torch.tensor([4.0, 2.0, float('nan')])
res = torch.fmax(t1, t2)
print(res)
Результат выполнения кода:
tensor([4., 2., 3.])
Как видно, NaN был проигнорирован, и в результат записались значения из второго и первого тензора соответственно.
Пример
Сравнение двумерных тензоров:
import torch
t1 = torch.tensor([
[1, 8, 3],
[7, 2, 9]
])
t2 = torch.tensor([
[5, 2, 6],
[4, 9, 1]
])
res = torch.fmax(t1, t2)
print(res)
Результат выполнения кода:
tensor([
[5, 8, 6],
[7, 9, 9]
])
Смотрите также
-
функцию
maximum,
которая аналогично сравнивает тензоры, но не игнорируетNaN -
функцию
fmin,
которая выполняет поэлементное минимизирование с игнорированиемNaN -
функцию
min,
которая возвращает минимальное значение среди всех элементов тензора -
функцию
max,
которая возвращает максимальное значение среди всех элементов тензора