【问题标题】:Chainer: custome sigmoid activation functionChainer:自定义 sigmoid 激活函数
【发布时间】:2019-06-23 11:22:16
【问题描述】:

我想用自定义斜率参数 k 实现以下 sigmoid 函数。

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

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

【问题讨论】:

    标签: python neural-network autoencoder chainer


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      激活函数应该是Chainer.FunctionNode (FunctionNode docs) 的子类。一个例子是chainer库提供的Swish函数。您可以观察其源代码here 并对其进行克隆(或任何其他函数,例如tanh),以对其前向和后向操作声明进行必要的更改,以满足您的需求。

      【讨论】:

        猜你喜欢
        • 2018-04-15
        • 2021-03-23
        • 2020-12-05
        • 2018-09-30
        • 2018-08-14
        • 2015-11-09
        • 2019-10-31
        • 1970-01-01
        • 2021-10-29
        相关资源
        最近更新 更多