Функция relu6
Функция F.relu6 из модуля torch.nn.functional применяет
активационную функцию ReLU6 к каждому элементу входного тензора.
Эта функция является вариантом стандартного ReLU, но с ограничением
максимального выходного значения на уровне 6. Формула вычисления:
min(max(0, x), 6). Первым параметром функция принимает тензор
входных данных. Вторым параметром можно передать значение inplace,
которое определяет, будет ли операция выполнена с изменением исходного
тензора.
Синтаксис
torch.nn.functional.relu6(input, inplace=False)
Пример
Давайте применим ReLU6 к тензору с положительными и отрицательными числами:
import torch
import torch.nn.functional as F
t = torch.tensor([-2.0, -1.0, 0.0, 1.0, 2.0, 5.0, 7.0, 10.0])
res = F.relu6(t)
print(res)
Результат выполнения кода:
tensor([0., 0., 0., 1., 2., 5., 6., 6.])
Как видно из примера, отрицательные значения превратились в ноль, значения от нуля до шести остались без изменений, а значения больше шести были ограничены на уровне 6.
Пример
Давайте используем параметр inplace для изменения исходного тензора:
import torch
import torch.nn.functional as F
t = torch.tensor([1.0, 3.0, 5.0, 7.0, 9.0])
F.relu6(t, inplace=True)
print(t)
Результат выполнения кода:
tensor([1., 3., 5., 6., 6.])
Пример
Применим ReLU6 к двумерному тензору для наглядной демонстрации:
import torch
import torch.nn.functional as F
t = torch.tensor([
[-5.0, -2.0, 0.0],
[2.0, 4.0, 8.0],
[6.0, 7.0, -1.0]
])
res = F.relu6(t)
print(res)
Результат выполнения кода:
tensor([
[0., 0., 0.],
[2., 4., 6.],
[6., 6., 0.]
])
Смотрите также
-
функцию
relu,
которая применяет классическую активацию ReLU без ограничения сверху -
функцию
hardtanh,
которая ограничивает значения в диапазоне [-1, 1] или заданном интервале -
функцию
leaky_relu,
которая для отрицательных значений использует небольшой наклон -
функцию
silu,
которая применяет сглаженную активацию Swish