2024-05-16 19:20:12 发布
网友
我想用一个自定义的斜率参数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
F.sigmoid(k * x)
如果k是一个应该以与其他权重相同的方式学习的参数,那么您可能希望像L.PReLU这样的链接子类化,并像其他链接一样使用它,例如L.Linear和L.Convolution2D。您仍然可以像上面的简单表达式一样实现链接的forward方法
L.Linear
L.Convolution2D
forward
激活函数应该是Chainer.FunctionNode(FunctionNode docs)的子类。chainer库提供的Swish函数就是一个例子。您可以观察它的源代码here并克隆它(或任何其他函数,如tanh),以对其向前和向后操作声明进行必要的更改,使其符合您的需要
Chainer.FunctionNode
如果
k
是常量(即超参数),F.sigmoid(k * x)
应该可以正常工作如果
k
是一个应该以与其他权重相同的方式学习的参数,那么您可能希望像L.PReLU这样的链接子类化,并像其他链接一样使用它,例如L.Linear
和L.Convolution2D
。您仍然可以像上面的简单表达式一样实现链接的forward
方法激活函数应该是
Chainer.FunctionNode
(FunctionNode docs)的子类。chainer库提供的Swish函数就是一个例子。您可以观察它的源代码here并克隆它(或任何其他函数,如tanh),以对其向前和向后操作声明进行必要的更改,使其符合您的需要相关问题 更多 >
编程相关推荐