Будет ли обратное распространение работать, как и ожидалось, при использовании этого кода как CNISH? - PullRequest
0 голосов
/ 13 апреля 2019

Я хотел бы использовать swish (как слой) в CNN.

Я не уверен, что это правильный способ реализации такой функции активации.

Будет ли обратное распространение работать с этим кодом правильно?

class Swish(nn.Module):
    def forward(self,x):
        return x * F.sigmoid(x)

Соответствующую информацию о том, какой язык программирования я использую, можно найти в тегах.

1 Ответ

0 голосов
/ 14 апреля 2019

Да, это будет работать из коробки.

Я не понимаю, почему вы бы сделали его объектом, хотя такая функция была бы более простой и удобочитаемой ИМО (и она лучше отражала бы ее функциональную природу):

def swish(x):
    return x * torch.nn.functional.sigmoid(x)

Вам не нужно torch.nn.Module, если вы не используете parameters (например, обучаемые torch.nn.Linear веса, CNN или другие).

...