Функция F.mish
Функция F.mish применяет активацию Mish к каждому элементу входного тензора.
Функция вычисляется по формуле: mish(x) = x * tanh(softplus(x)), где softplus(x) = ln(1 + exp(x)).
Эта функция является гладкой, не монотонной и саморегулирующейся, что позволяет улучшить качество обучения глубоких нейронных сетей.
Параметры функции:
-
input- входной тензор произвольной формы; -
inplace- булевый параметр, определяет, выполнять ли операцию на месте (по умолчаниюFalse).
Синтаксис
torch.nn.functional.mish(input, inplace=False)
Пример
Давайте применим функцию mish к одномерному тензору:
import torch
import torch.nn.functional as F
t = torch.tensor([-2.0, -1.0, 0.0, 1.0, 2.0])
res = F.mish(t)
print(res)
Результат выполнения кода:
tensor([-0.2526, -0.3034, 0.0000, 0.8651, 1.9637])
Пример
Применим функцию mish к двумерному тензору:
import torch
import torch.nn.functional as F
t = torch.tensor([
[-1.5, 0.5],
[2.0, -0.5]
])
res = F.mish(t)
print(res)
Результат выполнения кода:
tensor([
[-0.4037, 0.3526],
[1.9640, -0.2176]
])
Пример
Используем функцию mish в составе нейронной сети:
import torch
import torch.nn as nn
import torch.nn.functional as F
class MyModel(nn.Module):
def __init__(self):
super().__init__()
self.fc1 = nn.Linear(10, 20)
self.fc2 = nn.Linear(20, 5)
def forward(self, x):
x = self.fc1(x)
x = F.mish(x)
x = self.fc2(x)
return x
model = MyModel()
t = torch.randn(4, 10)
res = model(t)
print(res.shape)
Результат выполнения кода:
torch.Size([4, 5])
Пример
Сравним значения функции mish для положительных и отрицательных чисел:
import torch
import torch.nn.functional as F
t_pos = torch.tensor([1.0, 2.0, 3.0])
t_neg = torch.tensor([-1.0, -2.0, -3.0])
pos_res = F.mish(t_pos)
neg_res = F.mish(t_neg)
print("Positive values:", pos_res)
print("Negative values:", neg_res)
Результат выполнения кода:
Positive values: tensor([0.8651, 1.9637, 2.9937])
Negative values: tensor([-0.3034, -0.1376, -0.0555])
Смотрите также
-
функцию
relu,
которая применяет активацию ReLU -
функцию
leaky_relu,
которая применяет активацию Leaky ReLU -
функцию
elu,
которая применяет активацию ELU -
функцию
silu,
которая применяет активацию SiLU (Swish)