想了一个TwiceLog激活函数,相比Tanh但不会饱和,pytorch实现

版权声明:本文为博主的文章,未经博主禁止可以随意转载。 https://blog.csdn.net/ONE_SIX_MIX/article/details/88994272

不知是否有前人想过这个激活函数,我没找到。。。

做GAN的实验,发现很多实现都是在生成器最后一层使用Tanh函数,不过Tanh不是和Sigmod一样存在饱和问题吗?
然后想用不会饱和Log函数来实现。
TwiceLog曲线跟Tanh曲线类似,不过没有上下界

class TwiceLog(torch.jit.ScriptModule):
    __constants__ = ['scale']
    def __init__(self, scale=1.):
        super().__init__()
        self.scale = scale

    @torch.jit.script_method
    def forward(self, x):
        """
        :type x: torch.Tensor
        """
        x = torch.where(x != 0, torch.log(torch.abs(x)+1) * torch.sign(x), x)
        x = x * self.scale
        return x

猜你喜欢

转载自blog.csdn.net/ONE_SIX_MIX/article/details/88994272