Chainer:自定义乙状结肠激活功能

时间:2019-06-23 11:22:16

标签: python neural-network autoencoder chainer

我想用自定义坡度参数k实现以下Sigmoid函数。

y = f(x)= 1/ ( 1+exp(-1*k*x))
gradient gy = k * f(x)*(1-f(x))

我想在我的自动编码器中使用它。如何在Chainer中实现呢?

2 个答案:

答案 0 :(得分:0)

激活功能应该是Chainer.FunctionNodeFunctionNode docs)的子类。链接器库提供的​​Swish函数就是一个例子。您可以观察其来源here并对其进行克隆(或其他任何功能,例如tanh),以对其前进和后退操作声明进行必要的更改,以使其符合您的需求。

答案 1 :(得分:0)

如果k是常量(即超参数),则F.sigmoid(k * x)应该可以正常工作。

如果k是应该以与其他权重相同的方式学习的参数,则您可能希望将L.PReLU之类的链接作为子类,并像其他链接一样使用它,例如L.LinearL.Convolution2D。您仍然可以像上面的简单表达式一样实现链接的forward方法。