我想用自定义斜率参数k。
实现以下sigmoid函数y = f(x)= 1/ ( 1+exp(-1*k*x))
gradient gy = k * f(x)*(1-f(x))
我想在自动编码器中使用它。我如何在Chainer中实现?
如果k
是常数(即超参数(,则F.sigmoid(k * x)
应该只能工作。
如果 k
是一个应与其他权重相同的参数,则可能需要为l.prelu之类的链接子类,并像其他链接一样使用它,例如L.Linear
和L.Convolution2D
。您仍然可以像上述简单表达式一样实现链接的forward
方法。
激活函数应为 Chainer.FunctionNode
的子类(functionNode docs(。一个例子是Chainer库提供的SWISH函数。您可以在此处观察其源,并克隆它(或任何其他功能(例如Tanh((,以对其前进和向后操作声明进行必要的更改,以满足您的需求。