Класс Tanh
Класс Tanh из модуля torch.nn реализует функцию активации гиперболического тангенса.
Она преобразует входные значения в диапазон от -1 до 1.
Класс принимает входной тензор произвольной формы и применяет к каждому элементу функцию tanh.
Обычно используется в скрытых слоях нейронных сетей.
Синтаксис
torch.nn.Tanh()
Класс не требует параметров при инициализации.
Пример
Создадим объект класса Tanh и применим его к тензору:
import torch
import torch.nn as nn
tanh = nn.Tanh()
t = torch.tensor([-2.0, -1.0, 0.0, 1.0, 2.0])
res = tanh(t)
print(res)
Результат выполнения кода:
tensor([-0.9640, -0.7616, 0.0000, 0.7616, 0.9640])
Пример
Применим Tanh в составе последовательной модели Sequential:
import torch
import torch.nn as nn
model = nn.Sequential(
nn.Linear(10, 5),
nn.Tanh(),
nn.Linear(5, 1)
)
t = torch.randn(3, 10)
res = model(t)
print(res.shape)
Результат выполнения кода:
torch.Size([3, 1])
Пример
Сравним работу Tanh и функции sigmoid на одних и тех же данных:
import torch
import torch.nn as nn
tanh = nn.Tanh()
sigmoid = nn.Sigmoid()
t = torch.tensor([-3.0, -1.0, 0.0, 1.0, 3.0])
res_tanh = tanh(t)
res_sigmoid = sigmoid(t)
print("Tanh:", res_tanh)
print("Sigmoid:", res_sigmoid)
Результат выполнения кода:
Tanh: tensor([-0.9951, -0.7616, 0.0000, 0.7616, 0.9951])
Sigmoid: tensor([0.0474, 0.2689, 0.5000, 0.7311, 0.9526])