Функция F.leaky_relu
Функция F.leaky_relu применяет функцию активации Leaky ReLU (Leaky Rectified Linear Unit) к каждому элементу входного тензора. В отличие от стандартной функции ReLU, которая обнуляет все отрицательные значения, Leaky ReLU пропускает отрицательные значения с небольшим коэффициентом, что позволяет избежать проблемы "умирающих нейронов". Первым параметром функция принимает входной тензор, вторым параметром negative_slope задаётся коэффициент для отрицательных значений (по умолчанию 1e-2).
Синтаксис
torch.nn.functional.leaky_relu(input, negative_slope=0.01, inplace=False)
Пример
Давайте применим функцию Leaky ReLU к тензору с отрицательными и положительными значениями:
import torch
import torch.nn.functional as F
t = torch.tensor([-3.0, -1.5, 0.0, 2.0, 4.5])
res = F.leaky_relu(t)
print(res)
Результат выполнения кода:
tensor([-0.0300, -0.0150, 0.0000, 2.0000, 4.5000])
Как видно из результата, отрицательные значения были умножены на коэффициент 0.01, а положительные остались без изменений.
Пример
Давайте изменим коэффициент отрицательного наклона на 0.2:
import torch
import torch.nn.functional as F
t = torch.tensor([-5.0, -2.0, 0.0, 3.0, 6.0])
res = F.leaky_relu(t, negative_slope=0.2)
print(res)
Результат выполнения кода:
tensor([-1.0000, -0.4000, 0.0000, 3.0000, 6.0000])
Пример
Рассмотрим применение функции к двумерному тензору:
import torch
import torch.nn.functional as F
t = torch.tensor([
[-2.0, -1.0, 0.0],
[1.0, 2.0, 3.0],
])
res = F.leaky_relu(t, negative_slope=0.1)
print(res)
Результат выполнения кода:
tensor([
[-0.2000, -0.1000, 0.0000],
[ 1.0000, 2.0000, 3.0000],
])