PyTorch: Для бинарной функции активации работает ли градиентный спуск?
Возникла мысль, что для одной схемы сетки в одном специальном слое будет удобна бинарная функция активации. И возникает вопрос, будет ли такое работать для градиентного спуска, т.к. у бинарной функции производная почти везде равна нулю?
Например вот такое:
class MySpecLayer(nn.Module):
def __init__(self):
super().__init__()
self.linear = nn.Linear(10, 5)
def forward(self, x):
return (self.linear(x) > 0).float()
Т.е. возвращается ноль или один, и это значение дальшей пойдет в другой слой.
Ответы (1 шт):
Автор решения: Step1709
→ Ссылка
Если нейросеть неглубокая, то можно использовать, если же глубокая, то может происходить затухание градиента, при обратном распространении ошибки, так как у вас, судя по коду сеть состоит из 1 слоя, то по идее бинарная функция активации не должна создавать проблем.