/
Darkester
/
Solar
Обзор
Документация
Войти
/
Darkester
/
Solar
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
solar.py
32 строки
1 KB
Darkester
create solar.py
27 июн 2025, 06:09
27 июн 2025, 06:09
4304ba3
Код
Авторство
О чём код?
import torch import torch.nn as nn import math class Solar(nn.Module): """ Формула: Solar(x) = clip( γ * (GELU_approx(x) + β), L, U ) где: GELU_approx(x) = 0.5 * x * (1 + tanh( sqrt(2/pi) * (x + 0.044715 * x^3) )) γ, β — обучаемые параметры (масштаб + смещение) L, U — ограничени """ def __init__(self, lower_bound=0.0, upper_bound=6.0): super(Solar, self).__init__() self.lower_bound = lower_bound self.upper_bound = upper_bound self.gamma = nn.Parameter(torch.ones(1)) # масштаб self.beta = nn.Parameter(torch.zeros(1)) # сдвиг def forward(self, x): gelu_approx = 0.5 * x * (1 + torch.tanh( math.sqrt(2 / math.pi) * (x + 0.044715 * torch.pow(x, 3)) )) # масштаб + сдвиг solar = self.gamma * (gelu_approx + self.beta) # ограничение значений solar_clipped = torch.clamp(solar, self.lower_bound, self.upper_bound) return solar_clipped