Функция F.relu
Функция F.relu (Rectified Linear Unit) применяет функцию активации к каждому элементу входного тензора. Она заменяет все отрицательные значения на ноль, а положительные оставляет без изменений. Функция широко используется в скрытых слоях нейронных сетей благодаря своей простоте и эффективности. Первым параметром функция принимает входной тензор, вторым параметром можно указать значение, на которое заменяются отрицательные элементы (по умолчанию 0), третьим параметром передаётся значение, которое подставляется вместо отрицательных элементов для вычисления градиента.
Синтаксис
torch.nn.functional.relu(input, inplace=False)
Пример
Давайте применим функцию relu к тензору с отрицательными и положительными числами:
import torch
import torch.nn.functional as F
t = torch.tensor([-3.0, -1.0, 0.0, 2.0, 5.0])
res = F.relu(t)
print(res)
Результат выполнения кода:
tensor([0., 0., 0., 2., 5.])
Пример
Давайте применим функцию relu к двумерному тензору:
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.relu(t)
print(res)
Результат выполнения кода:
tensor([
[0., 2., 0.],
[4., 0., 6.],
])
Пример
Давайте применим функцию relu с параметром inplace=True, который изменяет исходный тензор:
import torch
import torch.nn.functional as F
t = torch.tensor([-2.0, 0.0, 3.0])
F.relu(t, inplace=True)
print(t)
Результат выполнения кода:
tensor([0., 0., 3.])
Смотрите также
-
функцию
relu6,
которая ограничивает выходные значения сверху числом 6 -
функцию
leaky_relu,
которая не обнуляет отрицательные значения, а умножает их на небольшой коэффициент -
функцию
elu,
которая для отрицательных значений использует экспоненциальную функцию -
функцию
selu,
которая является масштабированной версией ELU с самонормализацией